fdz.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 498 行 · 第 1/2 页
CPP
498 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Fdz.h"
#include "WnQuery.h"
#include "FdzAutoFil.h"
#include "FdzHand.h"
#include "FdzUndo.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "ListBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmFdz *frmFdz;
TfrmFdzAutoFil *FdzAutoFilfrm;
TfrmFdzHand *FdzHandfrm;
TfrmFdzUndo *FdzUndofrm;
//---------------------------------------------------------------------------
__fastcall TfrmFdz::TfrmFdz(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TListBaseForm(Owner,chWnd,"","")
{
g_ClientHandle=chWnd;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::ChangeToBrowseState(bool Browse)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::InitEditControl()
{
FillComboBox(Handle,scFmonth,"select * from sdFc order by FcMonth","FcMonth");
AnsiString sSQL;
sSQL="select CacCode,memo=CacCode+space(2)+CacGlkm+'-'+GlkmName,CacBankName,CacCurrency=CurrencyName";
sSQL+=" from sdCac,sdGlkm,sdCurrency where CacGlkm=GlkmCode and CacCurrency=CurrencyCode order by CacCode";
FillEdit(Handle,seCacCode,sSQL,"memo","CacCode","CacCurrency","CacBankName");
scFmonth->LocateKey(g_sdFMonth);
seCacCode->ItemIndex=-1;
labCurrency->Caption="";
labBankName->Caption="";
chkShowNoFlag->Checked=false;
sgFbb->RowCount=1;
sgBcs->RowCount=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::FillFbbGrid()
{
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,FbbBcsCode,FbbBcsLine";
sFrom=" from sdFbb,sdSettleMode ";
sWhere=" where FbbSettleMode=SettleModecode and FbbFmonth = '"+scFmonth->Text+"'";
if(seCacCode->ItemData[1]!="")
sWhere+=" and FbbCac='"+seCacCode->ItemData[1]+"'";
if(chkShowNoFlag->Checked)
sWhere=sWhere+" and FbbVerify = 0";
sOrder=" order by FbbNo,FbbDate,SettleModeName,FbbSettleNo";
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" + FormatFloat("#,###.00",RsFdz->FieldByName("FbbAmt").ToDouble())+"\t"+
RsFdz->FieldByName("FbbBcsCode")+"\t"+RsFdz->FieldByName("FbbBcsLine");
else
ItemStr=ItemStr+"\t"+ "支" + "\t" + FormatFloat("#,###.00",RsFdz->FieldByName("FbbAmt").ToDouble())+"\t"+
RsFdz->FieldByName("FbbBcsCode")+"\t"+RsFdz->FieldByName("FbbBcsLine");
sgFbb->AddItem(ItemStr);
RsFdz->MoveNext();
}
RsFdz->Close();
}
__finally
{
delete RsFdz;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::FillBcsGrid()
{
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,BcsFbbNo";
sFrom=" from sdBcs,sdSettleMode ";
sWhere=" where BcsSettleMode=SettleModecode and BcsFmonth = '"+scFmonth->Text+"'";
if(seCacCode->ItemData[1]!="")
sWhere+=" and BcsCac='"+seCacCode->ItemData[1]+"'";
if(chkShowNoFlag->Checked)
sWhere=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" + FormatFloat("#,###.00",RsFdz->FieldByName("BcsAmt").ToDouble())+"\t"+RsFdz->FieldByName("BcsFbbNo");
else
ItemStr=ItemStr+"\t"+ "贷" + "\t" + FormatFloat("#,###.00",RsFdz->FieldByName("BcsAmt").ToDouble())+"\t"+RsFdz->FieldByName("BcsFbbNo");
sgBcs->AddItem(ItemStr);
RsFdz->MoveNext();
}
RsFdz->Close();
}
__finally
{
delete RsFdz;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::btnQueryClick(TObject *Sender)
{
if(seCacCode->ItemData[1] == "")
{
ShowMessageWindow("帐户的资料不能为空",mwsWarning);
return;
}
FillFbbGrid();
FillBcsGrid();
if(sgBcs->RowCount>1)
{
sgBcs->Row=1;
sgBcsClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::btnClearClick(TObject *Sender)
{
InitEditControl();
}
//---------------------------------------------------------------------------
bool __fastcall TfrmFdz::IsAccord(int bRow,int fRow)
{
if(FModeAndNo=="1")
{
if(Trim(sgBcs->Cells[5][bRow])==Trim(sgFbb->Cells[4][fRow]) &&
Trim(sgBcs->Cells[6][bRow])==Trim(sgFbb->Cells[5][fRow]) &&
((Trim(sgBcs->Cells[7][bRow])=="贷" && Trim(sgFbb->Cells[6][fRow])=="支出" &&
sgBcs->Cells[8][bRow]==sgFbb->Cells[7][fRow]) ||
(Trim(sgBcs->Cells[7][bRow])=="借" && Trim(sgFbb->Cells[6][fRow])=="收入" &&
sgBcs->Cells[8][bRow]==sgFbb->Cells[7][fRow])))
return true;
else
return false;
}
else
{
if((Trim(sgBcs->Cells[7][bRow])=="贷" && Trim(sgFbb->Cells[6][fRow])=="支出" &&
sgBcs->Cells[8][bRow]==sgFbb->Cells[7][fRow]) ||
(Trim(sgBcs->Cells[7][bRow])=="借" && Trim(sgFbb->Cells[6][fRow])=="收入" &&
sgBcs->Cells[8][bRow]==sgFbb->Cells[7][fRow]))
return true;
else
return false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::AutoAccord()
{
int iCount=0;
int fRow,bRow;
try
{
StartWaitForm("系统正在自动对帐...");
for(bRow=1;bRow<sgBcs->RowCount;bRow++)
{
if(Trim(sgBcs->Cells[0][bRow])=="")
{
for(fRow=1;fRow<sgFbb->RowCount;fRow++)
{
if(Trim(sgFbb->Cells[0][fRow])==""){
if(IsAccord(bRow,fRow))
{
SaveFdzRecord(bRow,fRow);
iCount++;
break;
}
}
}
}
}
ShowMessage("已经成功的对帐:'"+AnsiString(iCount)+"'条记录");
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdz::SaveFdzRecord(int bRow,int fRow)
{
//回填日记帐库
AnsiString sSQL,sSet,sWhere,sBcsCode,sBcsLine,sFbbCac,sFbbNo,sFbbFmonth;
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+"";
sFbbCac=seCacCode->ItemData[1]; //帐号
sFbbNo=sgFbb->Cells[1][fRow]; //流水号
sFbbFmonth=Trim(scFmonth->Text); //财务月份
sWhere=" where FbbCac = '"+sFbbCac+"' and FbbNo = "+sFbbNo+" and FbbFMonth = '"+sFbbFmonth+"'";
sSQL=sSQL+sSet+sWhere;
try
{
RsFdz->Execute(sSQL);
RsFdz->Close();
}
catch(Exception &e)
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?