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