pzh.cpp

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

CPP
1,470
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Pzh.h"
#include <math.h>
#include "PzhHc.h"
#include "NbQuery.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmPzh *frmPzh;
//---------------------------------------------------------------------------
__fastcall TfrmPzh::TfrmPzh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
   : TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
    SetAutoCodeString(sePzhCode,"Acm-72");
    m_Transfered=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::InitEditControl()
{             
  try
  {
    StartWaitForm("正在初始化,请稍候...");
    //上面板
    ClientGroup->AddComponent(1,false,false,true,fpPzh,fpPzh->Name);
    ClientGroup->AddComponent(1,false,false,true,scPzhFvct,scPzhFvct->Name);
    ClientGroup->AddComponent(1,false,false,false,sePzhCode,sePzhCode->Name);
    ClientGroup->AddComponent(1,false,false,true,scPzhFmonth,scPzhFmonth->Name);
    ClientGroup->AddComponent(1,false,false,true,dePzhDate,dePzhDate->Name);
    ClientGroup->AddComponent(1,false,false,true,sePzhFj,sePzhFj->Name);
    //明细面板
    ClientGroup->AddComponent(2,false,false,false,fpPzd,fpPzd->Name);//editdetail
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,false,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,true,true,btnNew,btnNew->Name);
    ClientGroup->AddComponent(2,true,true,false,tbaDetailNavigator,tbaDetailNavigator->Name);
    ClientGroup->AddComponent(2,false,false,true,btnPzdBlance,btnPzdBlance->Name);

    ClientGroup->AddComponent(2,false,false,false,sePzdLine,sePzdLine->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdZy,sePzdZy->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdGlkm,sePzdGlkm->Name);
    ClientGroup->AddComponent(2,false,false,true,gbPzdDir,gbPzdDir->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdCurrency,sePzdCurrency->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdRate,sePzdRate->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdWbAmt,sePzdWbAmt->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdAmt,sePzdAmt->Name);

    ClientGroup->AddComponent(2,false,false,true,sePzdClient,sePzdClient->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdSupply,sePzdSupply->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdDept,sePzdDept->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdEmployee,sePzdEmployee->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdProject,sePzdProject->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdCc,sePzdCc->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdSettleMode,sePzdSettleMode->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdSettleNo,sePzdSettleNo->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdUnit,sePzdUnit->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdQty,sePzdQty->Name);
    ClientGroup->AddComponent(2,false,false,true,sePzdPrice,sePzdPrice->Name);
   
    //Pzh
    FillComboBox(Handle,scPzhFmonth,"select FcMonth from sdFc order by FcMonth","FcMonth");
    FillComboBox(Handle,scPzhFvct,"select FvctName,FvctCode from sdFvct order by FvctCode","FvctName","FvctCode");
    FillEdit(Handle,sePzhUser,"select UserName,UserCode from sdUser order by UserCode","UserName","UserCode");
    FillEdit(Handle,sePzhCheck,"select UserName,UserCode from sdUser order by UserCode","UserName","UserCode");
    FillEdit(Handle,sePzhPost,"select UserName,UserCode from sdUser order by UserCode","UserName","UserCode");
    //Pzd
    FillEdit(Handle,sePzdCurrency,"select memo=CurrencyCode+'-'+CurrencyName,CurrencyCode,CurrencyLocal from sdCurrency order by CurrencyCode","memo","CurrencyCode","CurrencyLocal");
    FillEdit(Handle,sePzdUnit,"select memo=UnitCode+'-'+UnitName,UnitCode from sdUnit order by UnitCode","memo","UnitCode");

   /* FillEdit(Handle,sePzdClient,"select ClientName,ClientCode from sdClient order by ClientCode","ClientName","ClientCode");
    FillEdit(Handle,sePzdSupply,"select SupplyName,SupplyCode from sdSupply order by SupplyCode","SupplyName","SupplyCode");
    FillEdit(Handle,sePzdDept,"select DeptName,DeptCode from sdDept where DeptEnd=1 order by DeptCode","DeptName","DeptCode");
    FillEdit(Handle,sePzdEmployee,"select EmployeeName,EmployeeCode from sdEmployee where EmployeeState=0 order by EmployeeCode","EmployeeName","EmployeeCode");
    //FillEdit(Handle,sePzdProject,"select ProjectName,ProjectCode from sdProject order by ProjectCode","ProjectName","ProjectCode");
    FillEdit(Handle,sePzdCc,"select CcName,CcCode from sdCc order by CcCode","CcName","CcCode");
    FillEdit(Handle,sePzdSettleMode,"select SettleModeName,SettleModeCode from sdSettleMode order by SettleModeCode","SettleModeName","SettleModeCode");
    FillEdit(Handle,sePzdUnit,"select UnitName,UnitCode from sdUnit order by UnitCode","UnitName","UnitCode");
   */
  } 
  __finally
  {
    EndWaitForm();
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPzh::RefreshUpdateData(int MsgSrc,int MsgType)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::ClearControl(int Section,bool BringToNext)
{
    if(Section == 1)
    {
       if(!BringToNext)
       {
          scPzhFvct->ItemIndex =-1;
          sePzhCode->Text ="";
          scPzhFmonth->LocateKey(g_sdFMonth);
          sePzhUser->LocateKey(g_sdUserCode);
          dePzhDate->Text = g_sdCurDate;
          sePzhFj->Text = "0";
          sePzhCheck->ItemIndex=-1;
          sePzhPost->ItemIndex=-1;
       }
       sgPzh->RowCount=1;
    }
    else if(Section==2)
    {
     if(!BringToNext)
     {
       sePzdLine->Text=IntToStr(PzdLineMaxNo+1);
       sePzdZy->Text="";
       sePzdGlkm->Text="";
       rbPzdDir1->Checked=true;
       rbPzdDir1->Font->Color=clRed;
       rbPzdDir2->Checked=false;
       rbPzdDir2->ParentFont=true;
       sePzdCurrency->LocateKey(g_sdCurrencyCode);
       sePzdRate->Text="1";
       sePzdWbAmt->Text="";
       sePzdAmt->Text="";

        sePzdClient->Text="";
        sePzdSupply->Text="";
        sePzdDept->Text="";
        sePzdEmployee->Text="";
        sePzdProject->Text="";
        sePzdCc->Text="";
        sePzdSettleMode->Text="";
        sePzdSettleNo->Text="";
        sePzdUnit->ItemIndex=-1;
        sePzdQty->Text="";
        sePzdPrice->Text="";
      }
   }
  SetGetDataEditStatus(0);//重置编辑状态
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::GetDataFromComObject(int Section)
{
    if(Section==1) //head
    {
       scPzhFvct->LocateKey(GetHeadValue("PzhFvct"));
       sePzhCode->Text=GetHeadValue("PzhCode");
       scPzhFmonth->LocateKey(GetHeadValue("PzhFmonth"));
       dePzhDate->Text=GetHeadValue("PzhDate");
       sePzhFj->Text=GetHeadValue("PzhFj");

       sePzhUser->LocateKey(GetHeadValue("PzhUser"));
       sePzhCheck->LocateKey(GetHeadValue("PzhChecker"));
       sePzhPost->LocateKey(GetHeadValue("PzhPoster"));

       if(GetHeadValue("PzhCheck")=="1")
       {
         SetCheckToolbarStatus(true);
         cbCheck->Checked=true;
         lbCheck->Font->Color=clRed;
       }
       else
       {
         SetCheckToolbarStatus(false);
         cbCheck->Checked=false;
         lbCheck->ParentFont=true;
       }
       if(GetHeadValue("PzhPost")=="1")
       {
         muUnCheck->Enabled=false;
         cbPost->Checked=true;
         lbPost->Font->Color=clRed;
       }
       else
       {
         muUnCheck->Enabled=true;
         cbPost->Checked=false;
         lbPost->ParentFont=true;
       }
    }
    else//details
    {
      sePzdLine->Text=GetDetailValue("PzdLine");
      sePzdZy->Text=GetDetailValue("PzdZy")+"-"+GetDetailValue("PzdZyName");
      sePzdGlkm->Text=GetDetailValue("PzdGlkm")+"-"+GetDetailValue("PzdGlkmName");
      if(GetDetailValue("PzdDir")=="1")//借
      {
        rbPzdDir1->Checked=true;
        lbPzdDir1->Font->Color=clRed;
        rbPzdDir2->Checked=false;
        lbPzdDir2->ParentFont=true;
      }
      else//贷
      {
        rbPzdDir2->Checked=true;
        lbPzdDir2->Font->Color=clRed;
        rbPzdDir1->Checked=false;
        lbPzdDir1->ParentFont=true;
      }

      sePzdCurrency->LocateKey(GetDetailValue("PzdCurrency"));
      if((sePzdCurrency->Text).IsEmpty())
      {
        sePzdCurrency->LocateKey(g_sdCurrencyCode);
      }
      if(!GetDetailValue("PzdRate").IsEmpty())
        sePzdRate->Text=FormatFloat("0.0000",GetDetailValue("PzdRate").ToDouble());
      else
        sePzdRate->Text=1;
      if(GetDetailValue("PzdWbAmt")=="0")
        sePzdWbAmt->Text="";
      else
        sePzdWbAmt->Text=FormatFloat("0.00",GetDetailValue("PzdWbAmt").ToDouble());
      if(GetDetailValue("PzdAmt")=="0")
        sePzdAmt->Text="";
      else
        sePzdAmt->Text=FormatFloat("0.00",GetDetailValue("PzdAmt").ToDouble());

      if(!GetDetailValue("PzdClient").IsEmpty())
        sePzdClient->Text=GetDetailValue("PzdClient")+"-"+GetDetailValue("PzdClientName");
      if(!GetDetailValue("PzdSupply").IsEmpty())
        sePzdSupply->Text=GetDetailValue("PzdSupply")+"-"+GetDetailValue("PzdSupplyName");
      if(!GetDetailValue("PzdDept").IsEmpty())
        sePzdDept->Text=GetDetailValue("PzdDept")+"-"+GetDetailValue("PzdDeptName");
      if(!GetDetailValue("PzdEmployee").IsEmpty())
        sePzdEmployee->Text=GetDetailValue("PzdEmployee")+"-"+GetDetailValue("PzdEmployeeName");
      if(!GetDetailValue("PzdProject").IsEmpty())
        sePzdProject->Text=GetDetailValue("PzdProject");/* TODO -cpzd : getdatatocomobject,project */
      if(!GetDetailValue("PzdCc").IsEmpty())
        sePzdCc->Text=GetDetailValue("PzdCc")+"-"+GetDetailValue("PzdCcName");
      if(!GetDetailValue("PzdSettleMode").IsEmpty())
        sePzdSettleMode->Text=GetDetailValue("PzdSettleMode")+"-"+GetDetailValue("PzdSettleModeName");
      sePzdSettleNo->Text=GetDetailValue("PzdSettleNo");
      if(!GetDetailValue("PzdUnit").IsEmpty())
        sePzdUnit->LocateKey(GetDetailValue("PzdUnit"));
      if(GetDetailValue("PzdQty")=="0")
       sePzdQty->Text="";
      else
       sePzdQty->Text=GetDetailValue("PzdQty");
      if(GetDetailValue("PzdPrice")=="0")
       sePzdPrice->Text="";
      else
       sePzdPrice->Text=GetDetailValue("PzdPrice");
    }
    SetGetDataEditStatus(0);//重置
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::SendDataToComObject(int Section)
{
    if(Section==1)
    {
       SetHeadValue("PzhFvct",scPzhFvct->ItemData[1]);
       SetHeadValue("PzhCode",sePzhCode->Text);
       SetHeadValue("PzhFmonth",scPzhFmonth->ItemData[0]);
       SetHeadValue("PzhUser",sePzhUser->ItemData[1]);
       SetHeadValue("PzhDate",dePzhDate->Text);
       SetHeadValue("PzhFj",sePzhFj->Text);
    }
    else
    {
       SetDetailValue("PzdCode",sePzhCode->Text);
       SetDetailValue("PzdLine",sePzdLine->Text);

       SetDetailValue("PzdZy",(sePzdZy->Text).SubString(1,(sePzdZy->Text).Pos("-")-1));
       SetDetailValue("PzdGlkm",(sePzdGlkm->Text).SubString(1,(sePzdGlkm->Text).Pos("-")-1));
       if(rbPzdDir1->Checked==true)
           SetDetailValue("PzdDir","1");
       if(rbPzdDir2->Checked==true)
           SetDetailValue("PzdDir","-1");
       SetDetailValue("PzdCurrency",(sePzdCurrency->Text).SubString(1,(sePzdCurrency->Text).Pos("-")-1));
       SetDetailValue("PzdRate",sePzdRate->Text);

       if(!(sePzdWbAmt->Text).IsEmpty())
         SetDetailValue("PzdWbAmt",sePzdWbAmt->Text);
       else
         SetDetailValue("PzdWbAmt","0");
       if(!(sePzdAmt->Text).IsEmpty())
         SetDetailValue("PzdAmt",sePzdAmt->Text);
       else
         SetDetailValue("PzdAmt","0");

       SetDetailValue("PzdClient",(sePzdClient->Text).SubString(1,(sePzdClient->Text).Pos("-")-1));
       SetDetailValue("PzdSupply",(sePzdSupply->Text).SubString(1,(sePzdSupply->Text).Pos("-")-1));
       SetDetailValue("PzdDept",(sePzdDept->Text).SubString(1,(sePzdDept->Text).Pos("-")-1));
       SetDetailValue("PzdEmployee",(sePzdEmployee->Text).SubString(1,(sePzdEmployee->Text).Pos("-")-1));
       SetDetailValue("PzdCc",(sePzdCc->Text).SubString(1,(sePzdCc->Text).Pos("-")-1));
       SetDetailValue("PzdProject",(sePzdProject->Text).SubString(1,(sePzdProject->Text).Pos("-")-1));
       SetDetailValue("PzdSettleMode",(sePzdSettleMode->Text).SubString(1,(sePzdSettleMode->Text).Pos("-")-1));
       SetDetailValue("PzdSettleNo",sePzdSettleNo->Text);
       SetDetailValue("PzdUnit",(sePzdUnit->Text).SubString(1,(sePzdUnit->Text).Pos("-")-1));
       if(sePzdQty->Text!="")
         SetDetailValue("PzdQty",sePzdQty->Text);
       else
         SetDetailValue("PzdQty","0");
       if(sePzdPrice->Text!="")
         SetDetailValue("PzdPrice",sePzdPrice->Text);
       else
         SetDetailValue("PzdPrice","0");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::WaitUserInput(int Section)
{
    TObject *TempSender;
    if(Section ==1)//head
    {
      sePzdJfhj->Caption="0.00";
      sePzdDfhj->Caption="0.00";
      if(CurrentState==caAddHead && scPzhFvct->Enabled)
        scPzhFvct->SetFocus();
      else
        dePzhDate->SetFocus();
    }
    else//detail
    {
     fpPzd->Visible=true;
     fpGrid->Visible=false;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzh::RefreshGridData(int mAction)
{  //先保存后才刷新数据!
    int i;
    AnsiString ItemStr=GetItemStringToGrid();
    switch(mAction)
    {
       case 0:
         sgPzh->AddItem(ItemStr);
         sgPzh->Row=sgPzh->RowCount-1;
         break;
       case 1:
         sgPzh->ChangeItem(ItemStr,sgPzh->Row);
         break;
       case 2:
         sgPzh->RemoveItem(sgPzh->Row);
    }
    sePzdJfhj->Caption=FormatFloat("#,##0.00",GetPzJfTotalAmt());//求和
    sePzdDfhj->Caption=FormatFloat("#,##0.00",GetPzDfTotalAmt());
    sePzhFj->Text=IntToStr(sgPzh->RowCount-1);//附件数default
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPzh::GetItemStringToGrid()
{
    AnsiString ItemStr,tCurrency,tRate,tempAmtStr,tempWbAmtStr;
    //行号
    ItemStr=GetDetailValue("PzdLine");
    //摘要
    ItemStr=ItemStr+"\t"+GetDetailValue("PzdZy")+"-"+GetDetailValue("PzdZyName");
    //科目
    ItemStr=ItemStr+"\t"+GetDetailValue("PzdGlkm")+"-"+GetDetailValue("PzdGlkmName");
    //币种
    ItemStr=ItemStr+"\t"+GetDetailValue("PzdCurrency");
    //汇率
    if(!GetDetailValue("PzdRate").IsEmpty())
      ItemStr=ItemStr+"\t"+FormatFloat("0.00",GetDetailValue("PzdRate").ToDouble());
    else
      ItemStr=ItemStr+"\t"+"1";
    //金额
    tempWbAmtStr=GetDetailValue("PzdWbAmt");
    if(tempWbAmtStr.IsEmpty())
      tempWbAmtStr="0.00";

⌨️ 快捷键说明

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