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 + -
显示快捷键?