📄 client.cpp
字号:
//---------------------------------------------------------------------------
#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;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmClient::GetFieldValue(int FieldIndex)
{
WideString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
__fastcall TfrmClient::TfrmClient(TComponent* Owner)
: TRecBaseForm(Owner,euSdClient,"")
{
// 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;
scClientSalerCode->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";
seClientCreditTerm->Text ="30";
deClientLtDate->Caption ="";
lbClientLtAmt->Caption ="0";
deClientLrDate->Caption ="";
lbClientLrAmt->Caption ="0";
scClientSpt->ItemIndex =-1;
deClientSysDate->Caption =g_sdCurDate;
lbClientLmDays->Caption ="0";
}
ClientInfo->ActivePage =BaseInfo;
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::GetDataFromComObject()
{
WideString S;
seClientCode->Text =GetFieldValue(fiClientCode);
seClientCurrency->LocateKey(GetFieldValue(fiClientCurrency));
seClientName->Text =GetFieldValue(fiClientName);
seClientDesc->Text =GetFieldValue(fiClientDesc);
scClientType->LocateKey(GetFieldValue(fiClientType));
chkClientCancel->Checked =GetFieldValue(fiClientCancel)=="1";
seClientLegalMan->Text =GetFieldValue(fiClientLegalman);
seClientLinkMan->Text =GetFieldValue(fiClientLinkman);
seClientAddr->Text =GetFieldValue(fiClientAddr);
seClientZip->Text =GetFieldValue(fiClientZip);
seClientTel->Text =GetFieldValue(fiClientTel);
seClientFax->Text =GetFieldValue(fiClientFax);
seClientEmail->Text =GetFieldValue(fiClientEmail);
scClientTradeCode->LocateKey(GetFieldValue(fiClientTrade));
scClientSalerCode->LocateKey(GetFieldValue(fiClientSaler));
scClientTaxCode->LocateKey(GetFieldValue(fiClientTaxCode));
seClientTaxNo->Text =GetFieldValue(fiClientTaxNo);
scClientSmodeCode->LocateKey(GetFieldValue(fiClientSmode));
lbClientAreaCode->Caption =GetFieldValue(fiClientArea);
cbClientCreditCode->LocateKey(GetFieldValue(fiClientCredit));
lbClientFreq->Caption =GetFieldValue(fiClientFreq);
deClientCreateDate->Text =GetFieldValue(fiClientCreateDate);
lbClientCancelDate->Caption =GetFieldValue(fiClientCancelDate);
lbClientArAmt->Caption =GetFieldValue(fiClientArAmt);
seClientCreditTerm->Text =GetFieldValue(fiClientCreditTerm);
deClientLtDate->Caption =GetFieldValue(fiClientLtDate);
lbClientLtAmt->Caption =GetFieldValue(fiClientLtAmt);
deClientLrDate->Caption =GetFieldValue(fiClientLrDate);
lbClientLrAmt->Caption =GetFieldValue(fiClientLrAmt);
scClientSpt->LocateKey(GetFieldValue(fiClientSpt));
deClientSysDate->Caption =GetFieldValue(fiClientSysDate);
lbClientLmDays->Caption =GetFieldValue(fiClientLmDays);
TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::SendDataToComObject()
{
AnsiString m;
WriteFieldValue(comServer,fiClientCode, seClientCode->Text );
WriteFieldValue(comServer,fiClientName, seClientName->Text );
WriteFieldValue(comServer,fiClientType, scClientType->ItemData[cbItem2]);
// 如果是增加状态
if( CurrentState == caAddDetail)
{
m=tvClient->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
WriteFieldValue(comServer,fiClientArea,WideString(m));
}
WriteFieldValue(comServer,fiClientDesc, seClientDesc->Text );
WriteFieldValue(comServer,fiClientCancel, chkClientCancel->Checked?"1":"0" );
WriteFieldValue(comServer,fiClientLegalman, seClientLegalMan->Text );
WriteFieldValue(comServer,fiClientLinkman, seClientLinkMan->Text );
WriteFieldValue(comServer,fiClientAddr, seClientAddr->Text );
WriteFieldValue(comServer,fiClientZip, seClientZip->Text );
WriteFieldValue(comServer,fiClientTel, seClientTel->Text );
WriteFieldValue(comServer,fiClientFax, seClientFax->Text );
WriteFieldValue(comServer,fiClientEmail, seClientEmail->Text );
WriteFieldValue(comServer,fiClientTrade, scClientTradeCode->ItemData[cbItem2]);
WriteFieldValue(comServer,fiClientSaler, scClientSalerCode->ItemData[cbItem2]);
WriteFieldValue(comServer,fiClientTaxCode, scClientTaxCode->ItemData[cbItem2]);
if(!scClientTaxCode->Text.IsEmpty()&&seClientTaxNo->Text.IsEmpty())
throw Exception("税务号不能为空");
WriteFieldValue(comServer,fiClientTaxNo, seClientTaxNo->Text );
WriteFieldValue(comServer,fiClientSmode, scClientSmodeCode->ItemData[cbItem2]);
WriteFieldValue(comServer,fiClientCredit, cbClientCreditCode->ItemData[cbItem2]);
// WriteFieldValue(comServer,fiClientFreq, lbClientFreq->Caption );
WriteFieldValue(comServer,fiClientCreateDate,deClientCreateDate->Text);
WriteFieldValue(comServer,fiClientCancelDate,lbClientCancelDate->Caption);
// WriteFieldValue(comServer,fiClientArAmt, seClientArAmt->Text );
WriteFieldValue(comServer,fiClientCreditTerm,seClientCreditTerm->Text );
// WriteFieldValue(comServer,fiClientLtDate, deClientLtDate->e));
// WriteFieldValue(comServer,fiClientLtAmt, lbClientLtAmt->Caption );
// WriteFieldValue(comServer,fiClientLrDate, g_sdCurDate);
// WriteFieldValue(comServer,fiClientLrAmt, lbClientLrAmt->Caption );
WriteFieldValue(comServer,fiClientSpt, scClientSpt->ItemData[cbItem2]);
// WriteFieldValue(comServer,fiClientLmDays, lbClientLmDays->Caption );
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::WaitUserInput()
{
if(seClientCode->Enabled)
seClientCode->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClient::RefreshGridData(int mAction)
{
AnsiString TempText;
TTreeNode *TempNode;
// 新增
if (mAction == 0)
{
if(tvClient->Selected)
{
if (tvClient->Selected->StateIndex == 1)
{
ShowMessage("当前选择的不是分类节点,不能进行增加操作.");
return;
}
TempText = "(" + GetFieldValue(fiClientCode)
+ ")" + GetFieldValue(fiClientName);
TempNode = tvClient->Selected;
TempNode = tvClient->Items->AddChild(TempNode,TempText);
TempNode->StateIndex = 1;
TempNode->Text = TempText;
}
}
// 修改
else if(mAction == 1)
{
if(tvClient->Selected)
{
if (tvClient->Selected->StateIndex == 0)
{
ShowMessage("当前选择的是分类节点,不能进行修改操作.");
return;
}
TempNode=tvClient->Selected;
TempNode->StateIndex = 1;
TempNode->Text = "(" + GetFieldValue(fiClientCode) + ")" + GetFieldValue(fiClientName);
}
}
// 删除
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=NewResultSet();
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;
TempNode[mLevel]->Text= "(" + RsArea->FieldByName("AreaCode") + ")"+RsArea->FieldByName("AreaName");
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)
{
AnsiString s,m;
s = GetFieldValue(fiClientArea);
for(int i = 1 ; i < tvClient->Items->Count ; i ++)
{
m = tvClient->Items->Item[i]->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -