client.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 536 行 · 第 1/2 页
CPP
536 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Client.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "DateEdit"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmClient *frmClient;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TfrmClient::TfrmClient(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
// AutoCtl=seClientCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
seClientCode->Text ="";
seClientName->Text ="";
seClientDesc->Text ="";
scClientType->ItemIndex =-1;
chkClientCancel->Checked =false;
seClientLegalMan->Text ="";
seClientLinkMan->Text ="";
seClientAddr->Text ="";
seClientZip->Text ="";
seClientTel->Text ="";
seClientFax->Text ="";
seClientEmail->Text ="";
seClientCurrency->Text="";
scClientTradeCode->ItemIndex=-1;
scClientTaxCode->ItemIndex=-1;
seClientTaxNo->Text ="";
scClientSmodeCode->ItemIndex=-1;
lbClientAreaCode->Caption="";
cbClientCreditCode->ItemIndex=-1;
lbClientFreq->Caption ="0";
deClientCreateDate->Text =g_sdCurDate;
lbClientCancelDate->Caption ="";
lbClientArAmt->Caption ="0";
seClientArAmt->Text ="0";
seClientCreditTerm->Text ="30";
deClientLtDate->Caption ="";
lbClientLtAmt->Caption ="0";
deClientLrDate->Caption ="";
lbClientLrAmt->Caption ="0";
scClientSpt->ItemIndex =-1;
deClientSysDate->Caption =g_sdCurDate;
lbClientLmDays->Caption ="0";
scCurrentUser->LocateKey(g_sdUserCode);
seArAcct->Text = "";
sePreAcct->Text = "";
}
ClientInfo->ActivePage =BaseInfo ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::GetDataFromComObject()
{
WideString S;
seClientCode->Text =GetFieldValue("ClientCode");
seClientCurrency->LocateKey(GetFieldValue("ClientCurrency"));
seClientName->Text =GetFieldValue("ClientName");
seClientDesc->Text =GetFieldValue("ClientDesc");
scClientType->LocateKey(GetFieldValue("ClientType"));
chkClientCancel->Checked =GetFieldValue("ClientCancel")=="1";
seClientLegalMan->Text =GetFieldValue("ClientLegalman");
seClientLinkMan->Text =GetFieldValue("ClientLinkman");
seClientAddr->Text =GetFieldValue("ClientAddr");
seClientZip->Text =GetFieldValue("ClientZip");
seClientTel->Text =GetFieldValue("ClientTel");
seClientFax->Text =GetFieldValue("ClientFax");
seClientEmail->Text =GetFieldValue("ClientEmail");
scClientTradeCode->LocateKey(GetFieldValue("ClientTrade"));
scCurrentUser->LocateKey(GetFieldValue("ClientSaler"));
scClientTaxCode->LocateKey(GetFieldValue("ClientTaxCode"));
seClientTaxNo->Text =GetFieldValue("ClientTaxNo");
scClientSmodeCode->LocateKey(GetFieldValue("ClientSmode"));
lbClientAreaCode->Caption =GetFieldValue("ClientArea");
cbClientCreditCode->LocateKey(GetFieldValue("ClientCredit"));
lbClientFreq->Caption =GetFieldValue("ClientFreq");
deClientCreateDate->Text =GetFieldValue("ClientCreateDate");
lbClientCancelDate->Caption =GetFieldValue("ClientCancelDate");
lbClientArAmt->Caption =GetFieldValue("ClientArAmt");
seClientArAmt->Text =GetFieldValue("ClientArAmt");
seClientCreditTerm->Text =GetFieldValue("ClientCreditTerm");
deClientLtDate->Caption =GetFieldValue("ClientLtDate");
lbClientLtAmt->Caption =GetFieldValue("ClientLtAmt");
deClientLrDate->Caption =GetFieldValue("ClientLrDate");
lbClientLrAmt->Caption =GetFieldValue("ClientLrAmt");
scClientSpt->LocateKey(GetFieldValue("ClientSpt"));
deClientSysDate->Caption =GetFieldValue("ClientSysDate");
lbClientLmDays->Caption =GetFieldValue("ClientLmDays");
seArAcct->LocateKey(GetFieldValue("ClientArAcct"));
sePreAcct->LocateKey(GetFieldValue("ClientPreAcct"));
TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::SendDataToComObject()
{
AnsiString m;
SetFieldValue("ClientCode", seClientCode->Text );
SetFieldValue("ClientName", seClientName->Text );
SetFieldValue("ClientType", scClientType->ItemData[cbItem2]);
// 如果是增加状态
if( CurrentState == caAddDetail)
{
m=tvClient->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
SetFieldValue("ClientArea",WideString(m));
}
SetFieldValue("ClientDesc", seClientDesc->Text );
SetFieldValue("ClientCancel", chkClientCancel->Checked?"1":"0" );
SetFieldValue("ClientLegalman", seClientLegalMan->Text );
SetFieldValue("ClientLinkman", seClientLinkMan->Text );
SetFieldValue("ClientAddr", seClientAddr->Text );
SetFieldValue("ClientZip", seClientZip->Text );
SetFieldValue("ClientTel", seClientTel->Text );
SetFieldValue("ClientFax", seClientFax->Text );
SetFieldValue("ClientEmail", seClientEmail->Text );
SetFieldValue("ClientTrade", scClientTradeCode->ItemData[cbItem2]);
SetFieldValue("ClientSaler", scCurrentUser->ItemData[cbItem2]);
SetFieldValue("ClientTaxCode", scClientTaxCode->ItemData[cbItem2]);
if(!scClientTaxCode->Text.IsEmpty()&&seClientTaxNo->Text.IsEmpty())
throw Exception("税务号不能为空");
SetFieldValue("ClientTaxNo", seClientTaxNo->Text );
SetFieldValue("ClientSmode", scClientSmodeCode->ItemData[cbItem2]);
SetFieldValue("ClientCredit", cbClientCreditCode->ItemData[cbItem2]);
SetFieldValue("ClientFreq", lbClientFreq->Caption );
SetFieldValue("ClientCreateDate",deClientCreateDate->Text);
SetFieldValue("ClientCancelDate",lbClientCancelDate->Caption);
SetFieldValue("ClientArAmt", seClientArAmt->Text );
SetFieldValue("ClientCreditTerm",seClientCreditTerm->Text );
SetFieldValue("ClientLtDate", deClientLtDate->Caption);
SetFieldValue("ClientLtAmt", lbClientLtAmt->Caption );
SetFieldValue("ClientLrDate", g_sdCurDate);
SetFieldValue("ClientLrAmt", lbClientLrAmt->Caption );
SetFieldValue("ClientSpt", scClientSpt->ItemData[cbItem2]);
SetFieldValue("ClientLmDays", lbClientLmDays->Caption );
SetFieldValue("ClientArAcct", seArAcct->ItemData[cbItem2]);
SetFieldValue("ClientPreAcct", sePreAcct->ItemData[cbItem2]);
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::WaitUserInput()
{
// if(seClientCode->Enabled)
// seClientCode->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::RefreshGridData(int mAction)
{
AnsiString TempText;
TTreeNode *TempNode;
if ( !tvClient->Selected ) return ;
// 新增
if (mAction == 0 )
{
if ( tvClient->Selected->StateIndex == 1)
{
ShowMessage("当前选择的不是分类节点,不能进行增加操作.");
return;
}
TempText = "(" + GetFieldValue("ClientCode")
+ ")" + GetFieldValue("ClientName");
TempNode = tvClient->Selected;
TempNode = tvClient->Items->AddChild(TempNode,TempText);
TempNode->StateIndex = 1;
TempNode->Text = TempText;
}
// 修改
else if(mAction == 1)
{
if ( tvClient->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行修改操作.");
return;
}
TempNode=tvClient->Selected;
TempNode->StateIndex = 1;
TempNode->Text = "(" + GetFieldValue("ClientCode") + ")" + GetFieldValue("ClientName");
}
// 删除
else if(mAction == 2)
{
if (tvClient->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行删除操作.");
return;
}
tvClient->Items->Delete(tvClient->Selected);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::FillTreeWithPtype()
{
TTreeNode *TempNode[7];
int mLevel;
TComResultSet *RsArea=new TComResultSet(Handle,g_ClientHandle);
tvClient->Items->Clear();
TempNode[0]=tvClient->Items->Add(NULL,"所有的客户");
try{
RsArea->Open("select AreaCode,AreaName,AreaLevel from sdArea order by AreaCode","AreaCode");
RsArea->MoveFirst();
while( RsArea->Eof == 0 )
{
mLevel=RsArea->FieldByName("AreaLevel").ToInt();
TempNode[mLevel] = tvClient->Items->AddChild(TempNode[mLevel-1],"(" + RsArea->FieldByName("AreaCode") + ")" +RsArea->FieldByName("AreaName"));
TempNode[mLevel]->StateIndex = 0;
RsArea->MoveNext();
}
RsArea->Close();
delete RsArea;
if (tvClient->Items->Count > 0)
tvClient->FullExpand();
}
catch(...)
{
throw Exception("在插入地区资料时出错!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::FillGridWithData()
{
FillTreeWithPtype();
TTreeNode *TempNode;
try
{
comServer->MoveFirst();
while (comServer->Eof == 0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?