⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 navarrow.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "NavArrow.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmNavArrow *frmNavArrow;
AnsiString OldNavArrowModule;
//---------------------------------------------------------------------------
__fastcall TfrmNavArrow::TfrmNavArrow(TComponent* Owner)
    : TRecBaseForm(Owner,euSdNavArrow,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmNavArrow::GetFieldValue(int FieldIndex)
{
    return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::SetFieldValue(int FieldIndex,AnsiString FieldValue)
{
    WriteFieldValue(comServer,FieldIndex,FieldValue);
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
       seNavArrowCode->Text      = "";
       scNavArrowStyle->ItemIndex= 0;
       scNavArrowDir->ItemIndex  = 0;
       scNavArrow3D->ItemIndex   = 0;
       seNavArrowX1->Text        = "0";
       seNavArrowY1->Text        = "0";
       seNavArrowX2->Text        = "0";
       seNavArrowY2->Text        = "0";
       seNavArrowAngle->Text     = "0";
       seNavArrowColor->Text     = "";
       rbNavArrowVisible1->Checked= true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::GetDataFromComObject()
{
    seNavArrowCode->Text      = GetFieldValue(fiNavArrowCode);

    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgNavArrow->LocateGrid(0,GetFieldValue(fiNavArrowCode));

    scNavArrowStyle->LocateKey(GetFieldValue(fiNavArrowStyle));
    scNavArrowDir->LocateKey(GetFieldValue(fiNavArrowDir));
    scNavArrow3D->LocateKey(GetFieldValue(fiNavArrow3D));
    seNavArrowX1->Text=GetFieldValue(fiNavArrowX1);
    seNavArrowY1->Text=GetFieldValue(fiNavArrowY1);
    seNavArrowX2->Text=GetFieldValue(fiNavArrowX2);
    seNavArrowY2->Text=GetFieldValue(fiNavArrowY2);
    seNavArrowAngle->Text=GetFieldValue(fiNavArrowAngle);
    seNavArrowColor->Text=GetFieldValue(fiNavArrowColor);
    rbNavArrowVisible1->Checked=GetFieldValue(fiNavArrowVisible)=="1";
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::SendDataToComObject()
{
    SetFieldValue(fiNavArrowModule,scNavArrowModule->ItemData[1]);
    SetFieldValue(fiNavArrowCode,seNavArrowCode->Text);
    SetFieldValue(fiNavArrowStyle,scNavArrowStyle->ItemData[1]);
    SetFieldValue(fiNavArrowDir,scNavArrowDir->ItemData[1]);
    SetFieldValue(fiNavArrow3D,scNavArrow3D->ItemData[1]);
    SetFieldValue(fiNavArrowX1,seNavArrowX1->Text);
    SetFieldValue(fiNavArrowY1,seNavArrowY1->Text);
    SetFieldValue(fiNavArrowX2,seNavArrowX2->Text);
    SetFieldValue(fiNavArrowY2,seNavArrowY2->Text);
    SetFieldValue(fiNavArrowAngle,seNavArrowAngle->Text);
    SetFieldValue(fiNavArrowColor,seNavArrowColor->Text);
    SetFieldValue(fiNavArrowVisible,rbNavArrowVisible1->Checked ? "1":"0");
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::WaitUserInput()
{
    if(seNavArrowCode->Enabled)
       seNavArrowCode->SetFocus();
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmNavArrow::GetDataToGrid()
{
    AnsiString  tempS;
    tempS = GetFieldValue(fiNavArrowCode);
    if(GetFieldValue(fiNavArrowStyle)=="1")
       tempS=tempS + "\t" + "横向";
    else
       tempS=tempS + "\t" + "竖向";
    if(GetFieldValue(fiNavArrowDir)=="0")
       tempS=tempS + "\t" + "无箭头";
    else if(GetFieldValue(fiNavArrowDir)=="1")
       tempS=tempS + "\t" + "左边";
    else if(GetFieldValue(fiNavArrowDir)=="2")
       tempS=tempS + "\t" + "右边";
    else if(GetFieldValue(fiNavArrowDir)=="3")
       tempS=tempS + "\t" + "上边";
    else if(GetFieldValue(fiNavArrowDir)=="4")
       tempS=tempS + "\t" + "下边";
    else if(GetFieldValue(fiNavArrowDir)=="2")
       tempS=tempS + "\t" + "左右";
    else
       tempS=tempS + "\t" + "上下";
    return(tempS);
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if(mAction == 0)
    {
       sgNavArrow->AddItem(ItemStr);
       sgNavArrow->Row=sgNavArrow->RowCount-1;
    }
    else if(mAction == 1)
    {
       int i = sgNavArrow->Row;
       sgNavArrow->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)
    {
       sgNavArrow->RemoveItem(sgNavArrow->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgNavArrow->RowCount = 1;
    while(comServer->Eof == 0)
    {
       ItemStr = GetDataToGrid();
       sgNavArrow->AddItem(ItemStr);
       comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false,scNavArrowModule,scNavArrowModule->Name);
    ClientGroup->AddComponent(2,true,true,false,sgNavArrow,sgNavArrow->Name);
    FillComboBox(scNavArrowModule,"SELECT ModuleCode,memo=ModuleCode+space(6-Len(ModuleCode))+ModuleCaption from sdModule where ModuleLevel=1 order by ModuleCode","memo","ModuleCode");

    scNavArrowStyle->ClearAll();
    scNavArrowStyle->AddItems("1-横向","1");
    scNavArrowStyle->AddItems("2-竖向","2");

    scNavArrowDir->ClearAll();
    scNavArrowDir->AddItems("0-无箭头","0");
    scNavArrowDir->AddItems("1-左边","1");
    scNavArrowDir->AddItems("2-右边","2");
    scNavArrowDir->AddItems("3-上边","3");
    scNavArrowDir->AddItems("4-下边","4");
    scNavArrowDir->AddItems("5-左右","5");
    scNavArrowDir->AddItems("6-上下","6");

    scNavArrow3D->ClearAll();
    scNavArrow3D->AddItems("0-平面","0");
    scNavArrow3D->AddItems("1-3D","1");
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
/*
    AnsiString FormIniFile = "D:\Test.Ini";
    WriteGridWidth(Name,sgNavArrow,FormIniFile);
*/
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgNavArrow,FormIniFile);
*/
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::FormShow(TObject *Sender)
{
    ClearControl(false);
    if(scNavArrowModule->ItemIndex!=-1)
       scNavArrowModuleClick(this);
    scNavArrowModule->SetFocus();
}
//---------------------------------------------------------------------------


void __fastcall TfrmNavArrow::scNavArrowModuleClick(TObject *Sender)
{
    WideString s;
    if(scNavArrowModule->ItemIndex==-1)
    {
       MessageDlg("模块的ID号不存在!",mtWarning,TMsgDlgButtons()<<mbOK,0);
       scNavArrowModule->LocateKey(OldNavArrowModule);
    }
    else
    {
       s=scNavArrowModule->ItemData[1];
       if(OldNavArrowModule==s)
          return;
       OldNavArrowModule=scNavArrowModule->ItemData[1];
       s = "NavArrowModule = '" + s + "'";
       comServer->FilterString = s;
       comServer->Query();
       FillGridWithData();
       comServer->MoveFirst();
       GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmNavArrow::sgNavArrowClick(TObject *Sender)
{
    int ARow=sgNavArrow->Row;
    if(ARow > 0)
       comServer->LocateByKey(WideString(scNavArrowModule->ItemData[1]+sgNavArrow->TextMatrix[ARow][0]));
    if(!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -