producter.cpp

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

CPP
208
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Producter.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"
TfrmProducter *frmProducter;
//---------------------------------------------------------------------------
__fastcall TfrmProducter::TfrmProducter(TComponent* Owner)
    : TRecBaseForm(Owner,euSdProducter,"")
{
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmProducter::GetFieldValue(int FieldIndex)
{
    return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------

void __fastcall TfrmProducter::SetFieldValue(int iFieldIndex,AnsiString sFieldValue)
{
    WriteFieldValue(comServer,iFieldIndex,sFieldValue);
}
//---------------------------------------------------------------------------

void __fastcall TfrmProducter::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      scProducterCode->ItemIndex  =   -1;
      seProducterName->Text       =   "";
      seProducterTel->Text        =   "";
      seProducterBeepPage->Text   =   "";
      cbProducterCheck->Checked   =   false;
      cbProducterStop->Checked    =   false;
      cbProducterCancel->Checked  =   false;
      cbProducterClose->Checked   =   false;
      cbProducterPost->Checked    =   false;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmProducter::GetDataFromComObject()
{
    //定位关键字
    scProducterCode->LocateKey(GetFieldValue(fiProducterCode));
    seProducterName->Text=scProducterCode->ItemData[2];
    //取关键字对应的名称
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgProducter->LocateGrid(0,GetFieldValue(fiProducterCode));
    seProducterTel->Text        =   GetFieldValue(fiProducterTel);
    seProducterBeepPage->Text   =   GetFieldValue(fiProducterBeepPage);
    cbProducterCheck->Checked   =   (GetFieldValue(fiProducterCheck)=="1");
    cbProducterStop->Checked    =   (GetFieldValue(fiProducterStop) =="1");
    cbProducterCancel->Checked  =   (GetFieldValue(fiProducterCancel)=="1");
    cbProducterClose->Checked   =   (GetFieldValue(fiProducterClose)=="1");
    cbProducterPost->Checked    =   (GetFieldValue(fiProducterPost)=="1");
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::SendDataToComObject()
{
    SetFieldValue(fiProducterCode,scProducterCode->ItemData[cbItem2]);
    SetFieldValue(fiProducterTel,seProducterTel->Text);
    SetFieldValue(fiProducterBeepPage,seProducterBeepPage->Text);
    SetFieldValue(fiProducterCheck,cbProducterCheck->Checked ? "1":"0");
    SetFieldValue(fiProducterStop,cbProducterStop->Checked ? "1":"0");
    SetFieldValue(fiProducterCancel,cbProducterCancel->Checked ? "1":"0");
    SetFieldValue(fiProducterClose,cbProducterClose->Checked ? "1":"0");
    SetFieldValue(fiProducterPost,cbProducterPost->Checked ? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::WaitUserInput()
{
    if(scProducterCode->Enabled)
       scProducterCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmProducter::GetItemStringToGrid()
{
    AnsiString  s_ItemStr;
    s_ItemStr = GetFieldValue(fiProducterCode)+
                "\t" + GetFieldValue(fiProducterTel)+
                "\t" + GetFieldValue(fiProducterBeepPage);
    return s_ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::RefreshGridData(int mAction)
{

    AnsiString ItemStr=GetItemStringToGrid();
    if(mAction == 0)    //Add
    {
      sgProducter->AddItem(ItemStr);
      sgProducter->Row=sgProducter->RowCount-1;
    }
    else if(mAction == 1)//Edit
    {
      sgProducter->ChangeItem(ItemStr,sgProducter->Row);
    }
    else if(mAction == 2)//Del
    {
      sgProducter->RemoveItem(sgProducter->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgProducter->RowCount = 1;
    while(comServer->Eof == 0)
    {
       ItemStr = GetItemStringToGrid();
       sgProducter->AddItem(ItemStr);
       comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false, sgProducter,sgProducter->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,true,true, scProducterCode,scProducterCode->Name);
    ClientGroup->AddComponent(2,true,true,true, seProducterName,seProducterName->Name);
    FillComboBox(scProducterCode,"select memo=UserCode+space(1)+'('+UserName+')',UserCode,UserName from sdUser order by UserCode",
                "memo","UserCode","UserName");
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::RefreshUpdateData(int MsgSrc,int MsgType)
{
    try
    {
       if(MsgSrc==euSdUser)
       {
          if(ShowUpdateMessage(MsgSrc,MsgType)){
             StartWaitForm("正在刷新引用数据!");
             FillComboBox(scProducterCode,"select UserName=UserCode+space(1)+'('+UserName+')',UserCode from sdUser order by UserCode",
                       "UserName","UserCode");
             EndWaitForm();
          }
       }
    }
    __finally
    {
       //AddCode;
    }
}
//---------------------------------------------------------------------

void __fastcall TfrmProducter::FormShow(TObject *Sender)
{
    if(comServer->RecordCount>0)
    {
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
    }
    else
    {
      ClearControl(false);
      sgProducter->RowCount=1;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgSth,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
/*
    AnsiString FormIniFile = "D:\Test.Ini";
    WriteGridWidth(Name,sgSth,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmProducter::sgProducterClick(TObject *Sender)
{
    int ARow;
    ARow=sgProducter->Row;
    if(ARow > 0)
      comServer->LocateByKey(WideString(sgProducter->TextMatrix[ARow][0]));
    if(!comServer->Eof)
      GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmProducter::scProducterCodeClick(TObject *Sender)
{
    if(scProducterCode->ItemIndex!=-1)
       seProducterName->Text=scProducterCode->ItemData[2];
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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