sth.cpp

来自「速达开源ERP系统」· C++ 代码 · 共 187 行

CPP
187
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sth.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmSth *frmSth;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSth::GetFieldValue(int FieldIndex)
{
    AnsiString S;
    S = ReadFieldValue(comServer,FieldIndex);
    return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        seSthCode->Text     = "";
        seSthName->Text     = "";
        memSthDesc->Text    = "";
        scSthDeptCode->Text = "";
        scSthDeptCode->ItemIndex=-1;
        seSthAddr->Text     = "";
        seSthTel->Text      = "";
        seSthZip->Text      = "";
        seSthLinkMan->Text  = "";
        chkSthOwn->Checked  = false;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSth::GetDataFromComObject()
{
    seSthCode->Text     =   GetFieldValue(fiSthCode);
    sgSth->LocateGrid(1,GetFieldValue(fiSthCode));
    seSthName->Text     =   GetFieldValue(fiSthName);
    memSthDesc->Text    =   GetFieldValue(fiSthDesc);
    scSthDeptCode->LocateKey(GetFieldValue(fiSthDeptCode));
    scSthDeptCode->Text=scSthDeptCode->ItemData[0];
    seSthAddr->Text     =   GetFieldValue(fiSthAddr);
    seSthTel->Text      =   GetFieldValue(fiSthTel);
    seSthZip->Text      =   GetFieldValue(fiSthZip);
    seSthLinkMan->Text  =   GetFieldValue(fiSthLinkman);
    chkSthOwn->Checked  =   (GetFieldValue(fiSthOwn) == "1");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::SendDataToComObject()
{
    WriteFieldValue(comServer,fiSthCode, seSthCode->Text);
    WriteFieldValue(comServer,fiSthName, seSthName->Text);
    WriteFieldValue(comServer,fiSthDesc, memSthDesc->Text);
    WriteFieldValue(comServer,fiSthDeptCode, scSthDeptCode->ItemData[1]);
    WriteFieldValue(comServer,fiSthAddr, seSthAddr->Text);
    WriteFieldValue(comServer,fiSthTel, seSthTel->Text);
    WriteFieldValue(comServer,fiSthZip, seSthZip->Text);
    WriteFieldValue(comServer,fiSthLinkman, seSthLinkMan->Text);
    WriteFieldValue(comServer,fiSthOwn, chkSthOwn->Checked ? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::WaitUserInput()
{
    seSthCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSth::GetDataToGrid()
{
    AnsiString  s;
    s = "\t" + GetFieldValue(fiSthCode) +
        "\t" + GetFieldValue(fiSthName) +
        "\t" + GetFieldValue(fiSthLinkman);
    return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if (mAction ==  0)
    {
        sgSth->AddItem(ItemStr);
    }
    else if(mAction == 1)
    {
        int i = sgSth->Row;
        sgSth->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)
    {
        sgSth->RemoveItem(sgSth->Row);
    }
}
//---------------------------------------------------------------------------

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

void __fastcall TfrmSth::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false,sgSth,sgSth->Name);
//    ClientGroup->AddComponent(2,false,false,false,seSthCode,seSthCode->Name);
    FillComboBox(scSthDeptCode,"select DeptName memo,DeptCode from sdDept where DeptEnd=1 order by deptcode","memo","DeptCode");
}
//---------------------------------------------------------------------------

__fastcall TfrmSth::TfrmSth(TComponent* Owner)
    : TRecBaseForm(Owner,euSdSth,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
/*
    AnsiString FormIniFile = "D:\Test.Ini";
    WriteGridWidth(Name,sgSth,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgSth,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::FormShow(TObject *Sender)
{

    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmSth::sgSthClick(TObject *Sender)
{
    int ARow=sgSth->Row;
    if (ARow  > 0)
         comServer->LocateByKey(WideString(sgSth->TextMatrix[ARow][1]));
    if (!comServer->Eof)
         GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSth::RefreshUpdateData(int MsgSrc,int MsgType)
{
  if(MsgSrc==euSdDept)
  {
   if(ShowUpdateMessage(MsgSrc,MsgType))
    FillComboBox(scSthDeptCode,"select DeptName memo,DeptCode from sdDept where DeptEnd=1 order by deptcode","memo","DeptCode");
  }
}
//---------------------------------------------------------------------------


void __fastcall TfrmSth::seSthCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seSthCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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