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