fbbsub.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 666 行 · 第 1/2 页

CPP
666
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "FbbSub.h"
#include "Fbb.h"
#include "RecBaseForm.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "StdBaseForm"
#pragma link "RecBaseForm"
#pragma resource "*.dfm"

TfrmFbbSub *frmFbbSub;
//---------------------------------------------------------------------------
__fastcall TfrmFbbSub::TfrmFbbSub(TComponent* Owner)
   : TStdBaseForm(Owner)
{
    FFbbVerify="";
    FRetState="Cancel";
    InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::ClearControl()
{
   //-----------
   seFbbNo->Text=FMaxFbbNo;
   deFbbDate->Text=deFbbDate->InitDate;
   rbtFbbDir1->Checked=true;
     rbtFbbDir2->Checked=false;
     lbFbbDir1->Font->Color=clRed;
     lbFbbDir2->ParentFont=true;
   scFbbSettleMode->ItemIndex=-1;
   seFbbSettleNo->Text="";
   seFbbCurrency->LocateKey(FFbbCurrency);
   seFbbAmt->Text="0";
   seFbbCc->ItemIndex=-1;
   scFbbUser->LocateKey(g_sdUserCode);
   seFbbZy->ItemIndex=-1;

         seFbbExpense->ItemIndex=-1;

         seFbbClient->ItemIndex=-1;

         seFbbSupply->ItemIndex=-1;

         seFbbDept->ItemIndex=-1;

         seFbbDeptE->ItemIndex=-1;
         seFbbEmployee->ItemIndex=-1;

         seFbbFromCacT->ItemIndex=-1;

         seFbbFromCacR->ItemIndex=-1;
         seFbbFromCurrency->ItemIndex=-1;
         seFbbFromRate->Text="0.00";
         seFbbFromAmt->Text="0.00";

}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::SetcomServer(TComServer *value)
{
   comServer=value;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::GetDataFromComObject(int iIndex)
{
    AnsiString FbbAmtStr;
    if(!GetHeadValue("FbbAmt").IsEmpty())
    {
      FbbAmtStr=GetHeadValue("FbbAmt");
    }
    else
    {
      FbbAmtStr="0";
    }
   //-----------
    seFbbNo->Text=GetHeadValue("FbbNo");
    deFbbDate->Text=GetHeadValue("FbbDate");
    if(GetHeadValue("FbbDir")=="1")
    {
     rbtFbbDir1->Checked=true;
     rbtFbbDir2->Checked=false;
     lbFbbDir1->Font->Color=clRed;
     lbFbbDir2->ParentFont=true;
    }
    else
    {
     rbtFbbDir2->Checked=true;
     rbtFbbDir1->Checked=false;
     lbFbbDir2->Font->Color=clRed;
     lbFbbDir1->ParentFont=true;
    }
    seFbbCurrency->LocateKey(FFbbCurrency);
    seFbbAmt->Text=FormatFloat("#,##0.00",FbbAmtStr.ToDouble());
    scFbbSettleMode->LocateKey(GetHeadValue("FbbSettleMode"));
    seFbbSettleNo->Text=GetHeadValue("FbbSettleNo");
    seFbbCc->LocateKey(GetHeadValue("FbbCc"));
    scFbbUser->LocateKey(GetHeadValue("FbbUser"));
    seFbbZy->LocateKey(GetHeadValue("FbbZy"));
    chkFbbVerify->Checked=GetHeadValue("FbbVerify")=="1";
  //-----------
   switch (iIndex)
   {
      case 1://ex
         seFbbExpense->LocateKey(GetHeadValue("FbbExpense"));
         break;
      case 2://cl
         seFbbClient->LocateKey(GetHeadValue("FbbClient"));
         break;
      case 3://su
         seFbbSupply->LocateKey(GetHeadValue("FbbSupply"));
         break;
      case 4://de
         seFbbDept->LocateKey(GetHeadValue("FbbDept"));
         break;
      case 5://Em
         seFbbDeptE->LocateKey(GetHeadValue("FbbDept"));
         seFbbEmployee->LocateKey(GetHeadValue("FbbEmployee"));
         break;
      case 6://Tr
         seFbbFromCacT->LocateKey(GetHeadValue("FbbFromCac"));
         break;
      case 7://Ra
         seFbbFromCacR->LocateKey(GetHeadValue("FbbFromCac"));
         seFbbFromCurrency->LocateKey(GetHeadValue("FbbFromCurrency"));
         seFbbFromRate->Text=FormatFloat("#,##0.00",GetHeadValue("FbbFromRate").ToDouble());
         seFbbFromAmt->Text=FormatFloat("#,##0.00",GetHeadValue("FbbFromAmt").ToDouble());
         break;
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::SendDataToComObject(int iIndex)
{
   try
   {
     //--------------
     SetFieldValue("FbbNo",seFbbNo->Text);
     SetFieldValue("FbbCac",FFbbCac);
     SetFieldValue("FbbFMonth",g_sdFMonth);
     SetFieldValue("FbbType",scFbbType->ItemData[1]);
     SetFieldValue("FbbDate",deFbbDate->Text);
     if(rbtFbbDir1->Checked)
       SetFieldValue("FbbDir","1");
     else
       SetFieldValue("FbbDir","-1");
     SetFieldValue("FbbSettleMode",scFbbSettleMode->ItemData[1]);
     SetFieldValue("FbbSettleNo",seFbbSettleNo->Text);
     SetFieldValue("FbbCurrency",seFbbCurrency->ItemData[1]);
     if(seFbbAmt->Text.IsEmpty())
     {
       seFbbAmt->Text="0";
     }
     SetFieldValue("FbbAmt",seFbbAmt->Text);
     SetFieldValue("FbbUser",g_sdUserCode);
     SetFieldValue("FbbZy",seFbbZy->ItemData[1]);
     //--------------
     switch (iIndex)
     {
        case 1://ex
           SetFieldValue("FbbExpense",seFbbExpense->ItemData[1]);
           SetFieldValue("FbbCc",seFbbCc->ItemData[1]);
           break;
        case 2://cl
           SetFieldValue("FbbClient",seFbbClient->ItemData[1]);
           break;
        case 3://supply
           SetFieldValue("FbbSupply",seFbbSupply->ItemData[1]);
           break;
        case 4://Department
           SetFieldValue("FbbDept",seFbbDept->ItemData[1]);
           break;
        case 5://Employee
           SetFieldValue("FbbDept",seFbbDeptE->ItemData[1]);
           SetFieldValue("FbbEmployee",seFbbEmployee->ItemData[1]);
           break;
        case 6://TR
           SetFieldValue("FbbFromCac",seFbbFromCacT->ItemData[1]);
           break;
        case 7://Ra
           SetFieldValue("FbbFromCac",seFbbFromCacR->ItemData[1]);
           SetFieldValue("FbbFromCurrency",seFbbFromCurrency->ItemData[1]);
           SetFieldValue("FbbFromRate",seFbbFromRate->Text);
           SetFieldValue("FbbFromAmt",seFbbFromAmt->Text);
           break;
     }
   }
   catch(Exception &e)
   {
     throw Exception(e.Message);
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::InitEditControl()
{

  //---------
  FillComboBox(Handle,scFbbSettleMode,"select SettleModeName,SettleModeCode from sdSettleMode order by SettleModeCode",
        "SettleModeName","SettleModeCode");
  FillComboBox(Handle,scFbbUser,"select memo=UserName,CashierCode from sdUser,sdCashier where CashierCode=UserCode order by CashierCode",
        "memo","CashierCode");
  FillEdit(Handle,seFbbCurrency,"select CurrencyName,CurrencyCode from sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");

  FillEdit(Handle,seFbbCc,"select CcName,CcCode from sdCc where CcCancel=0 order by CcCode","CcName","CcCode");

  FillEdit(Handle,seFbbZy,"select NoteBookText,NoteBookCode from  sdNoteBook order by NoteBookCode","NoteBookText","NoteBookCode");//摘要
  //---------

    scFbbType->ClearAll();
    scFbbType->AddItems("费用","1");
    scFbbType->AddItems("客户往来","2");
    scFbbType->AddItems("供应商往来","3");
    scFbbType->AddItems("部门","4");
    scFbbType->AddItems("个人","5");
    scFbbType->AddItems("内部转帐","6");
    scFbbType->AddItems("换汇","7");

  //---------
         FillEdit(Handle,seFbbExpense,"select ExpenseName,ExpenseCode from sdExpense order by ExpenseCode","ExpenseName","ExpenseCode");

         FillEdit(Handle,seFbbClient,"select ClientName,ClientCode from sdClient where ClientCancel=0 order by ClientCode","ClientName","ClientCode");

         FillEdit(Handle,seFbbSupply,"select SupplyName,SupplyCode from sdSupply where SupplyCancel=0 order by SupplyCode","SupplyName","SupplyCode");

         FillEdit(Handle,seFbbDept,"select DeptName,DeptCode from sdDept where DeptEnd=1 order by DeptCode","DeptName","DeptCode");

         FillEdit(Handle,seFbbDeptE,"select DeptName,DeptCode from sdDept where DeptEnd=1 order by DeptCode","DeptName","DeptCode");
         FillEdit(Handle,seFbbEmployee,"select EmployeeName,EmployeeCode from sdEmployee where EmployeeState=0 order by EmployeeCode","EmployeeName","EmployeeCode");

         FillEdit(Handle,seFbbFromCacT,"select CacName=CacCode+space(2)+GlkmName,CacCode from sdCac,sdGlkm where CacGlkm=GlkmCode order by CacCode","CacName","CacCode");

         FillEdit(Handle,seFbbFromCacR,"select CacName=CacCode+space(2)+GlkmName,CacCode from sdCac,sdGlkm where CacGlkm=GlkmCode order by CacCode","CacName","CacCode");
         FillEdit(Handle,seFbbFromCurrency,"select distinct CurrencyCode,CurrencyName from sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::RefreshUpdateData(int MsgSrc,int MsgType)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::FormShow(TObject *Sender)
{
  TObject *TempSender;

  chkFbbVerify->Enabled=false;
  for (int i=0;i<this->ComponentCount;i++)
  {
    if((this->Components[i])->ClassNameIs("TSDEdit"))
      ((TSDEdit *)(this->Components[i]))->Color=clWindow;
  }

  for(int i = 0; i < pgcFbbSub->PageCount; i++)
  {
    pgcFbbSub->Pages[i]->TabVisible=false;
  }
  try
  {
    TempSender=new TObject;
    if(FCurState==caEditDetail)
    {
      fpType->Enabled=false;
      panFbbSub->Enabled=true;
      pgcFbbSub->Enabled=true;
      btnAdd->Enabled=false;
      scFbbType->LocateKey(GetHeadValue("FbbType"));//单记录,不用GetFieldValue
      scFbbTypeChange(TempSender);
      GetDataFromComObject(scFbbType->ItemData[1].ToInt());
    }
    else if(FCurState==caAddDetail)
    {
      fpType->Enabled=true;
      panFbbSub->Enabled=true;
      pgcFbbSub->Enabled=true;
      btnAdd->Enabled=true;
      scFbbType->ItemIndex=0;
      ClearControl();
      scFbbTypeChange(TempSender);      
    }
    else if(FCurState==caNormal || FFbbVerify==1)//判断是否:结清or browse
    {
      scFbbType->LocateKey(GetHeadValue("FbbType"));//单记录,不用GetFieldValue
      scFbbTypeChange(TempSender);
      fpType->Enabled=false;
      panFbbSub->Enabled=false;
      pgcFbbSub->Enabled=false;
      btnAdd->Enabled=false;
      GetDataFromComObject(scFbbType->ItemData[1].ToInt());
    }
  }
  __finally
  {
    delete TempSender;
  }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::btOkClick(TObject *Sender)
{
  int tCacType;
  if(FCurState!=caNormal)
  {
    tCacType=scFbbType->ItemData[1].ToInt();
    try
    {
      SendDataToComObject(tCacType);
    }
    catch(Exception &e)
    {
      throw Exception(e.Message);
    }
    FRetState="OK";
  }
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbbSub::seFbbExpenseButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    SqlStr="003[费用代码][费用名称][费用类型]";
    SqlStr+="select ExpenseCode,ExpenseName,ExpenseType from sdExpense order by ExpenseCode";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"费用资料查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?