fdzhand.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 250 行
CPP
250 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "FdzHand.h"
#include "FdzMemo.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "SDGrid"
#pragma link "StdBaseForm"
#pragma resource "*.dfm"
TfrmFdzHand *frmFdzHand;
TfrmFdzMemo *FdzMemofrm;
//---------------------------------------------------------------------------
__fastcall TfrmFdzHand::TfrmFdzHand(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
FStatus="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FillFbbGridWithData(AnsiString tDir,AnsiString tAmt)
{
AnsiString sSQL,sFrom,sWhere,sOrder;
TComResultSet *RsFdz=new TComResultSet(Handle,g_ClientHandle);
AnsiString ItemStr;
sSQL=" select FbbVerify,FbbNo,FbbDate,FbbZy,FbbZyMemo=(select NoteBookText from sdNoteBook where NoteBookCode =FbbZy),SettleModeName,FbbSettleNo,FbbAmt,FbbDir";
sFrom=" from sdFbb,sdSettleMode ";
sWhere=" where FbbSettleMode=SettleModecode and FbbFmonth = '"+FFcMonth+"'";
sWhere+=" and FbbCac='"+FCacCode+"'";
sWhere+=" and FbbVerify = 0 and FbbAmt="+tAmt+"";
if(tDir=="借")
sWhere+=" and FbbDir=1";
else
sWhere+=" and FbbDir=-1";
sSQL=sSQL+sFrom+sWhere+sOrder;
sgFbb->RowCount=1;
try
{
RsFdz->Open(sSQL,"");
RsFdz->MoveFirst();
while(RsFdz->Eof == 0)
{
if(RsFdz->FieldByName("FbbVerify")=="1")
ItemStr=AnsiString("√") + "\t" + RsFdz->FieldByName("FbbNo") + "\t"
+RsFdz->FieldByName("FbbDate")+"\t" + RsFdz->FieldByName("FbbZyMemo")+"\t"
+RsFdz->FieldByName("SettleModeName")+"\t" + RsFdz->FieldByName("FbbSettleNo");
else
ItemStr=AnsiString("")+"\t"+RsFdz->FieldByName("FbbNo")+"\t"+
RsFdz->FieldByName("FbbDate")+"\t"+RsFdz->FieldByName("FbbZyMemo")+"\t"+
RsFdz->FieldByName("SettleModeName")+"\t"+RsFdz->FieldByName("FbbSettleNo");
if(RsFdz->FieldByName("FbbDir")==1)
ItemStr=ItemStr+"\t"+ "收" + "\t" + RsFdz->FieldByName("FbbAmt");
else
ItemStr=ItemStr+"\t"+ "支" + "\t" + RsFdz->FieldByName("FbbAmt");
sgFbb->AddItem(ItemStr);
RsFdz->MoveNext();
}
RsFdz->Close();
}
__finally
{
delete RsFdz;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FillBcsGridWithData()
{
AnsiString sSQL,sFrom,sWhere,sOrder;
TComResultSet *RsFdz=new TComResultSet(Handle,g_ClientHandle);
AnsiString ItemStr;
sSQL=" select BcsVeriry,BcsLine,BcsDate,BcsZy,BcsZyMemo=(select NoteBookText from sdNoteBook where NoteBookCode =BcsZy),SettleModeName,BcsSettleNo,BcsAmt,BcsDir,BcsCode";
sFrom=" from sdBcs,sdSettleMode ";
sWhere=" where BcsSettleMode=SettleModecode and BcsFmonth = '"+FFcMonth+"'";
sWhere+=" and BcsCac='"+FCacCode+"'";
sWhere+=" and BcsVeriry = 0";
sOrder=" order by BcsLine,BcsDate,SettleModeName,BcsSettleNo";
sSQL=sSQL+sFrom+sWhere+sOrder;
sgBcs->RowCount=1;
try
{
RsFdz->Open(sSQL,"");
RsFdz->MoveFirst();
while(RsFdz->Eof == 0)
{
if(RsFdz->FieldByName("BcsVeriry")==1)
ItemStr=AnsiString("√")+"\t"+ RsFdz->FieldByName("BcsCode")+"\t"+RsFdz->FieldByName("BcsLine")+"\t"+
RsFdz->FieldByName("BcsDate")+"\t" + RsFdz->FieldByName("BcsZyMemo")+"\t"+
RsFdz->FieldByName("SettleModeName")+"\t" + RsFdz->FieldByName("BcsSettleNo");
else
ItemStr=AnsiString("")+"\t"+RsFdz->FieldByName("BcsCode")+"\t"+RsFdz->FieldByName("BcsLine")+"\t"+
RsFdz->FieldByName("BcsDate")+"\t"+RsFdz->FieldByName("BcsZyMemo")+"\t"+
RsFdz->FieldByName("SettleModeName")+"\t"+RsFdz->FieldByName("BcsSettleNo");
if(RsFdz->FieldByName("BcsDir")==1)
ItemStr=ItemStr+"\t"+ "借" + "\t" + RsFdz->FieldByName("BcsAmt");
else
ItemStr=ItemStr+"\t"+ "贷" + "\t" + RsFdz->FieldByName("BcsAmt");
sgBcs->AddItem(ItemStr);
RsFdz->MoveNext();
}
RsFdz->Close();
}
__finally
{
delete RsFdz;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FormShow(TObject *Sender)
{
sgFbb->RowCount=1;
sgBcs->RowCount=1;
FillBcsGridWithData();
if(sgBcs->RowCount>1)
sgBcsClick(this);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::sgBcsClick(TObject *Sender)
{
int bRow;
bRow=sgBcs->Row;
if(bRow>0)
{
for(int i=1;i<=sgBcs->RowCount;i++)
sgBcs->Cells[0][i]="";
sgBcs->Cells[0][bRow]="√";
AnsiString tDir,tAmt,tMode,tCode;
tDir=Trim(sgBcs->Cells[7][bRow]);
tAmt=Trim(sgBcs->Cells[8][bRow]);
FillFbbGridWithData(tDir,tAmt);
if(sgFbb->RowCount>1)
sgFbb->Cells[0][1]="√";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::sgFbbClick(TObject *Sender)
{
int fRow;
fRow=sgFbb->Row;
if(fRow>0)
{
for(int i=1;i<=sgFbb->RowCount;i++)
sgFbb->Cells[0][i]="";
sgFbb->Cells[0][fRow]="√";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btCheckClick(TObject *Sender)
{
int bRow,fRow;
bRow=sgBcs->Row;
fRow=sgFbb->Row;
if(sgBcs->RowCount==1)
{
ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
return;
}
if(sgFbb->RowCount==1)
{
ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
return;
}
if(sgBcs->Cells[0][bRow]=="" ||sgFbb->Cells[0][fRow]=="")
{
ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
return;
}
else
{
try
{
SaveFdzRecord(bRow,fRow);
sgBcs->DeleteRow(bRow);
sgFbb->DeleteRow(fRow);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
FStatus="OK";
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::SaveFdzRecord(int bRow,int fRow)
{
//回填日记帐库
AnsiString sSQL,sSet,sWhere,sBcsCode,sBcsLine,sFbbNo;
TComResultSet *RsFdz=new TComResultSet(Handle,g_ClientHandle);
sSQL=" update sdFbb ";
sBcsCode=sgBcs->Cells[1][bRow]; //对帐单号
sBcsLine=sgBcs->Cells[2][bRow]; //对帐行号
sSet=" set FbbVerify = 1,FbbBcsCode = '"+sBcsCode+"',FbbBcsLine = "+sBcsLine+"";
sFbbNo=sgFbb->Cells[1][fRow]; //流水号
sWhere=" where FbbCac = '"+FCacCode+"' and FbbNo = "+sFbbNo+" and FbbFMonth = '"+FFcMonth+"'";
sSQL=sSQL+sSet+sWhere;
try
{
RsFdz->Execute(sSQL);
RsFdz->Close();
}
catch(Exception &e)
{
delete RsFdz;
throw Exception(e.Message);
}
//回填对帐单库
sSQL=" update sdBcs ";
sFbbNo=sgFbb->Cells[1][fRow]; //流水号
sSet=" set BcsVeriry = 1 , BcsCac = '"+FCacCode+"' , BcsFbbNo = "+sFbbNo+" , BcsFMonth = '"+FFcMonth+"'";
sBcsCode=sgBcs->Cells[1][bRow]; //对帐单号
sBcsLine=sgBcs->Cells[2][bRow]; //对帐行号
sWhere=" where BcsCode = '"+sBcsCode+"' and BcsLine = "+sBcsLine+"";
sSQL=sSQL+sSet+sWhere;
try
{
RsFdz->Execute(sSQL);
RsFdz->Close();
}
catch(Exception &e)
{
delete RsFdz;
throw Exception(e.Message);
}
delete RsFdz;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btCancelClick(TObject *Sender)
{
if(FStatus=="")
FStatus="Cancel";
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btFdzMemoClick(TObject *Sender)
{
try
{
FdzMemofrm=new TfrmFdzMemo(this);
FdzMemofrm->ShowModal();
}
__finally
{
delete FdzMemofrm;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?