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