mprocess.cpp

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

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

TfrmMprocess *frmMprocess;
//---------------------------------------------------------------------------
__fastcall TfrmMprocess::TfrmMprocess(TComponent* Owner)
        : TRecBaseForm(Owner,euSdProcess,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMprocess::GetFieldValue(int FieldIndex)
{
     return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::SetFieldValue(int FieldIndex,AnsiString Value)
{
     WriteFieldValue(comServer,FieldIndex,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::InitEditControl()
{
     PageControl1->ActivePage=BaseInfo;
     //
     ClientGroup->AddComponent(2,false,false,true,PageControl1,PageControl1->Name);
     ClientGroup->AddComponent(2,true,true,false,sgProcess,sgProcess->Name);
     ClientGroup->AddComponent(2,true,true,true,seProcessWxAmt,seProcessWxAmt->Name);
     //
     FillComboBox(scProcessWc,"Select WcCode,WcName FROM sdWc order by WcCode","WcName","WcCode");
     FillComboBox(scProcessLoc,"Select LocCode,LocName FROM sdLoc where LocType=2 order by LocCode","LocName","LocCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::RefreshUpdateData(int MsgSrc,int MsgType)
{
    try
    {
       switch(MsgSrc)
       {
         case euSdWc:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
              FillComboBox(scProcessWc,"Select WcCode,WcName FROM sdWc order by WcCode","WcName","WcCode");
	           EndWaitForm();
	           break;
           }
         case euSdLoc:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
              FillComboBox(scProcessLoc,"Select LocCode,LocName FROM sdLoc where LocType=2 order by LocCode","LocName","LocCode");
	           EndWaitForm();
	           break;
           }
         default:
           break;
       }
    }
    __finally
    {
       //AddCode;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::ClearControl(bool BringToNext)
{
      if(!BringToNext)
      {
          seProcessCode->Text="";
          seProcessName->Text="";
          cheChkFlg->Checked=false;
          cheWxFlg->Checked=false;
          scProcessWc->Text="";
          scProcessLoc->Text="";
          deProcessEdate->Text=g_sdCurDate;
          deProcessIdate->Text="";
          scProcessState->ItemIndex=0;
          scProcessType->ItemIndex=0;
          seProcessWxAmt->Text="0";
          memProcessDesc->Text="";
          seProcessQlt->Text="0";
          seProcessSlt->Text="0";
          seProcessRlt->Text="0";
          seProcessWlt->Text="0";
          seProcessMlt->Text="0";
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::GetDataFromComObject()
{
    seProcessCode->Text=GetFieldValue(fiProcessCode);
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgProcess->LocateGrid(0,GetFieldValue(fiProcessCode));
    seProcessName->Text=GetFieldValue(fiProcessName);
    cheChkFlg->Checked=GetFieldValue(fiProcessChkFlg)=="1";
    cheWxFlg->Checked=GetFieldValue(fiProcessWxFlg)=="1";

    scProcessWc->LocateKey(GetFieldValue(fiProcessWc));
    scProcessLoc->LocateKey(GetFieldValue(fiProcessLoc));

    deProcessEdate->Text=GetFieldValue(fiProcessEdate);
    deProcessIdate->Text=GetFieldValue(fiProcessIdate);
    scProcessState->ItemIndex=StrToInt(GetFieldValue(fiProcessState))-1;
    scProcessType->ItemIndex=StrToInt(GetFieldValue(fiProcessType))-1;
    seProcessWxAmt->Text=GetFieldValue(fiProcessWxAmt);
    memProcessDesc->Text=GetFieldValue(fiProcessDesc);
    seProcessQlt->Text=GetFieldValue(fiProcessQlt);
    seProcessSlt->Text=GetFieldValue(fiProcessSlt);
    seProcessRlt->Text=GetFieldValue(fiProcessRlt);
    seProcessWlt->Text=GetFieldValue(fiProcessWlt);
    seProcessMlt->Text=GetFieldValue(fiProcessMlt);
 }
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::SendDataToComObject()
{
     SetFieldValue(fiProcessCode,seProcessCode->Text);
     SetFieldValue(fiProcessName,seProcessName->Text);
     SetFieldValue(fiProcessChkFlg,cheChkFlg->Checked ? "1":"0");
     SetFieldValue(fiProcessWxFlg,cheWxFlg->Checked ? "1":"0");
     SetFieldValue(fiProcessWc,scProcessWc->ItemData[cbItem2]);
     SetFieldValue(fiProcessLoc,scProcessLoc->ItemData[cbItem2]);
     SetFieldValue(fiProcessEdate,deProcessEdate->Text);
     SetFieldValue(fiProcessIdate,deProcessIdate->Text);
     SetFieldValue(fiProcessState,IntToStr(scProcessState->ItemIndex+1));
     SetFieldValue(fiProcessType,IntToStr(scProcessType->ItemIndex+1));
     SetFieldValue(fiProcessWxAmt,seProcessWxAmt->Text);
     SetFieldValue(fiProcessUser,g_sdUserCode);
     SetFieldValue(fiProcessDesc,memProcessDesc->Text);
     SetFieldValue(fiProcessQlt,seProcessQlt->Text);
     SetFieldValue(fiProcessSlt,seProcessSlt->Text);
     SetFieldValue(fiProcessRlt,seProcessRlt->Text);
     SetFieldValue(fiProcessWlt,seProcessWlt->Text);
     SetFieldValue(fiProcessMlt,seProcessMlt->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::WaitUserInput()
{
    PageControl1->ActivePage=BaseInfo;
    if(seProcessCode->Enabled)
       seProcessCode->SetFocus();
    if(cheWxFlg->Checked)
       seProcessWxAmt->Enabled=true;
    else
       seProcessWxAmt->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::RefreshGridData(int mAction)
{
    int i;
    AnsiString m_ItemStr;
    m_ItemStr=GetDataToGrid();
    switch(mAction)
    {
      case 0:   //Add
        sgProcess->AddItem(m_ItemStr);
        sgProcess->Row=sgProcess->RowCount-1;
        break;
      case 1:  //Edit
        sgProcess->ChangeItem(m_ItemStr,sgProcess->Row);
        break;
      case 2:  //Del
        sgProcess->RemoveItem(sgProcess->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::FillGridWithData()
{
    AnsiString m_ItemStr;
    comServer->MoveFirst();
    sgProcess->RowCount = 1;
    while(comServer->Eof == 0)
    {
        m_ItemStr =GetDataToGrid();
        sgProcess->AddItem(m_ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMprocess::GetDataToGrid()
{
     AnsiString tempS;
     tempS = GetFieldValue(fiProcessCode)+
             "\t" +GetFieldValue(fiProcessName)+
             "\t" +GetFieldValue(fiProcessWlt);
     return(tempS);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::FormShow(TObject *Sender)
{
    if(comServer->RecordCount>0)
    {
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
    }
    else
    {
      ClearControl(false);
      sgProcess->RowCount=1;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
    WriteGridWidth(Name,sgProcess,FormIniFile);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMprocess::FormCreate(TObject *Sender)
{
    FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgProcess,FormIniFile);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMprocess::sgProcessClick(TObject *Sender)
{
     int ARow;
     ARow=sgProcess->Row;
     if (ARow > 0)
        comServer->LocateByKey(sgProcess->TextMatrix[ARow][0]);
     if (!comServer->Eof)
        GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMprocess::cheWxFlgClick(TObject *Sender)
{
    if(CurrentState==caNormal)
       return;
    if(cheWxFlg->Checked)
       seProcessWxAmt->Enabled=true;
    else
       seProcessWxAmt->Enabled=false;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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