glbmqtywillget.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 419 行
CPP
419 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "GlbmQtyWillGet.h"
#include "GlbmQF_NeedGet.h"
#include "Pzh.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma link "KSAdvReport"
#pragma resource "*.dfm"
TfrmGlbmQtyWillGet *frmGlbmQtyWillGet;
TfrmGlbmQF_NeedGet *frmNeedGet;
TfrmPzh *TmpWillGet;
//---------------------------------------------------------------------------
__fastcall TfrmGlbmQtyWillGet::TfrmGlbmQtyWillGet(TComponent* Owner)
: TQueryBaseForm(Owner)
{
//InitGridControl();
RstGlkm=NULL;
labMemory->Caption="";
QueryGrid=sgGlbmQtyWillGet;
}
//---------------------------------------------------------------------------
__fastcall TfrmGlbmQtyWillGet::TfrmGlbmQtyWillGet(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TQueryBaseForm(Owner, chWnd, MidCode, WhereStr)
{
//InitGridControl();
RstGlkm=NULL;
labMemory->Caption="";
QueryGrid=sgGlbmQtyWillGet;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::InitGridControl()
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::tbQueryClick(TObject *Sender)
{
if(!ShowQueryWindow())
return;
try{
StartWaitForm("正在查询,请稍候...");
if(FGlbQtyAmtSign!=1)
FillRstGlkmWithData();
FillGridWithData();
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
bool __fastcall TfrmGlbmQtyWillGet::ShowQueryWindow()
{
if(FGlbQtyAmtSign==1)
return true;
frmNeedGet=new TfrmGlbmQF_NeedGet(this);
frmNeedGet->Caption="预收帐款明细查询过滤";
frmNeedGet->FQtyAmtSign="1";
frmNeedGet->ShowModal();
FCancelQuery=frmNeedGet->CancelQuery;
if(FCancelQuery==true)
{
delete frmNeedGet;
return false;
}
FGlbSQLFilStr=frmNeedGet->CreateGlbSQLString;
FPzhSQLFilStr=frmNeedGet->CreatePzhSQLString;
FMfcmonthInfo=frmNeedGet->FmonthInfo;
delete frmNeedGet;
return true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::ClearControl(bool BringToNext)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::GetDataFromComObject()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::WaitUserInput()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::RefreshGridData(int mAction)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::DisplayBill()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::GetBill(AnsiString BillID)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::FillRstGlkmWithData()
{
AnsiString tSQL;
RstGlkm=new TComResultSet(Handle,g_ClientHandle);
if(FGlbSQLFilStr!="")
{
tSQL="select GlbFmonth,GlbGlkm from sdGlb,sdGlkm"; // and GlkmSl=1
tSQL+=" where GlbGlkm Like '204%' and GlbGlkm=GlkmCode and "+ FGlbSQLFilStr+ " order by GlbFmonth,GlbGlkm";
}
else
{
tSQL="select GlbFmonth,GlbGlkm from sdGlb,sdGlkm"; // and GlkmSl=1
tSQL+=" where GlbGlkm Like '204%' and GlbGlkm=GlkmCode order by GlbFmonth,GlbGlkm";
}
RstGlkm->Open(tSQL,"GlbGlkm");
if(RstGlkm->RecordCount==0)
{
sgGlbmQtyWillGet->RowCount=3;
throw Exception("当前查询条件下的帐目不存在!");
}
else
RstGlkm->MoveFirst();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmGlbmQtyWillGet::GetHeadQueryStr()
{
AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
Selectstr="select PzhDate,PzhFvct,PzhCode,NoteBookText=IsNULL(NoteBookText,''),PzdDir,PzdGlkm,GlkmName,";
Selectstr+="PzdQty,CurrencyName=IsNULL(CurrencyName,''),UnitName=IsNULL(UnitName,''),PzdAmt,GlkmDir";
Fromstr=" from sdPzh,sdPzd,sdGlkm,sdNoteBook,sdUnit,sdCurrency";
if(FPzhSQLFilStr=="")
{
if(FGlbQtyAmtSign==1)
{
Wherestr=" where PzhCode=PzdCode and PzdZy*=NoteBookCode and PzdUnit*=UnitCode and PzdGlkm=GlkmCode and PzhPost=1";
Wherestr+=" And PzdCurrency*=CurrencyCode And PzhFmonth='"+FQtyAmtFmonth+"' And PzdGlkm Like '204%'";//'"+FQtyAmtGlkm+"%'";
Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '204%')";//'"+FQtyAmtGlkm+"%')";
}
else
{
Wherestr=" where PzhCode=PzdCode and PzdZy*=NoteBookCode and PzdUnit*=UnitCode and PzdGlkm=GlkmCode and PzhPost=1";
Wherestr+=" And PzdCurrency*=CurrencyCode And PzhFmonth='"+RstGlkm->FieldByName("GlbFmonth")+"' And PzdGlkm Like '204%'";//'"+RstGlkm->FieldByName("GlbGlkm")+"%'";
Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '204%')";//'"+RstGlkm->FieldByName("GlbGlkm")+"%')";
}
}
else
{
if(FGlbQtyAmtSign==1)
{
Wherestr=" where PzhCode=PzdCode and PzdZy*=NoteBookCode and PzdUnit*=UnitCode and PzdGlkm=GlkmCode and PzhPost=1";
Wherestr+=" And PzdCurrency*=CurrencyCode And PzhFmonth='"+FQtyAmtFmonth+"' And PzdGlkm Like '204%'";//'"+FQtyAmtGlkm+"%'";
Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '204%')";//'"+FQtyAmtGlkm+"%')";
}
else
{
Wherestr=" where PzhCode=PzdCode and PzdZy*=NoteBookCode and PzdUnit*=UnitCode and PzdGlkm=GlkmCode and PzhCheck=1";
Wherestr+=" And PzdCurrency*=CurrencyCode And PzhFmonth='"+RstGlkm->FieldByName("GlbFmonth")+"' And PzdGlkm Like '204%'";//'"+RstGlkm->FieldByName("GlbGlkm")+"%'";
Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode And PzdGlkm Like '204%')";//'"+RstGlkm->FieldByName("GlbGlkm")+"%')";
}
Wherestr=Wherestr+" And "+FPzhSQLFilStr;
}
Orderstr=" order by PzhDate,PzdGlkm";
sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
return(sSQL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmGlbmQtyWillGet::GetSpace(int iNum)
{
AnsiString strSpace;
for(int i=1;i<iNum;i++)
strSpace=strSpace+AnsiString(" ");
return strSpace;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::FillGridWithData()
{
TComResultSet *RsQuery;
AnsiString ItemStr,sSql;
sSql=GetHeadQueryStr(); //取Head查询的SQL语句
if(sSql=="")
return;
sgGlbmQtyWillGet->RowCount=1;
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(sSql,"");
RsQuery->MoveFirst();
ItemStr="";
TComResultSet *RsGlbQuery;
RsGlbQuery=new TComResultSet(Handle,g_ClientHandle);
if(FGlbQtyAmtSign==1)
sSql="select GlbDir,GlbBopQty,GlbBopAmt,GlbDopAmt,GlbCopAmt,GlbDopQty,GlbCopQty,GlbDoyAmt,GlbCoyAmt,GlbDoyQty,GlbCoyQty from sdGlb where GlbFmonth='"+FQtyAmtFmonth+"' and GlbGlkm='"+Trim(FQtyAmtGlkm)+"'";
else
sSql="select GlbDir,GlbBopQty,GlbBopAmt,GlbDopAmt,GlbCopAmt,GlbDopQty,GlbCopQty,GlbDoyAmt,GlbCoyAmt,GlbDoyQty,GlbCoyQty from sdGlb where GlbFmonth='"+RstGlkm->FieldByName("GlbFmonth")+"' and GlbGlkm='"+Trim(RstGlkm->FieldByName("GlbGlkm"))+"'";
RsGlbQuery->Open(sSql,"");
RsGlbQuery->MoveFirst();
if(FGlbQtyAmtSign==1)
labMemory->Caption="--"+FMfcmonthInfo+",科目:["+FQtyAmtGlkm+"]";
else
labMemory->Caption="--第"+RstGlkm->FieldByName("GlbFmonth")+"期,科目:["+RstGlkm->FieldByName("GlbGlkm")+"]";
if(RsGlbQuery->Eof==1)
throw Exception("科目:'"+FQtyAmtGlkm+"'在期间:'"+FQtyAmtFmonth+"'的帐务没有初始化");
ItemStr="";
//显示科目期初的余额
ItemStr = "\t\t\t期初余额";
if(RsGlbQuery->FieldByName("GlbBopAmt")==0)
ItemStr += "\t0.00\t0.00\t平\t0.00";
else
{
ItemStr += AnsiString("\t0.00\t0.00\t") + (RsGlbQuery->FieldByName("GlbDir")==1 ? "借":"贷") + "\t" +
FormatFloat("#,##0.00",RsGlbQuery->FieldByName("GlbBopAmt").ToDouble());
}
sgGlbmQtyWillGet->AddItem(ItemStr);
double fBopAmt,fBopQty;
fBopAmt=0;
fBopQty=0;
while(RsQuery->Eof == 0)
{
if(fBopAmt==0)
fBopAmt=RsGlbQuery->FieldByName("GlbBopAmt").ToDouble()+
RsQuery->FieldByName("PzdDir").ToDouble()*
RsQuery->FieldByName("GlkmDir").ToDouble()*
RsQuery->FieldByName("PzdAmt").ToDouble();
else
fBopAmt=fBopAmt+RsQuery->FieldByName("PzdAmt").ToDouble()*
RsQuery->FieldByName("PzdDir").ToDouble()*
RsQuery->FieldByName("GlkmDir").ToDouble();
if(fBopQty==0)
fBopQty=RsGlbQuery->FieldByName("GlbBopQty").ToDouble()+
RsQuery->FieldByName("PzdDir").ToDouble()*
RsQuery->FieldByName("GlkmDir").ToDouble()*
RsQuery->FieldByName("PzdQty").ToDouble();
else
fBopQty=fBopAmt+RsQuery->FieldByName("PzdQty").ToDouble()*
RsQuery->FieldByName("PzdDir").ToDouble()*
RsQuery->FieldByName("GlkmDir").ToDouble();
if(RsQuery->FieldByName("PzdDir")=="1")
ItemStr=RsQuery->FieldByName("PzhDate")+"\t"+ RsQuery->FieldByName("FvctName") + "\t" +
RsQuery->FieldByName("PzhCode")+"\t"+
RsQuery->FieldByName("NoteBookText")+"\t"+
FormatFloat("#,##0.00",fBopQty)+"\t"+
FormatFloat("#,##0.00",fBopAmt);
else
ItemStr=RsQuery->FieldByName("PzhDate")+"\t"+ RsQuery->FieldByName("PzhCode")+"\t"+
RsQuery->FieldByName("PzhCode")+"\t"+
RsQuery->FieldByName("NoteBookText")+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("PzdQty").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("PzdAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",fBopQty)+"\t"+
FormatFloat("#,##0.00",fBopAmt);
sgGlbmQtyWillGet->AddItem(ItemStr);
RsQuery->MoveNext();
}
if(sgGlbmQtyWillGet->RowCount >= 2)
{
AnsiString tempStr;
tempStr=sgGlbmQtyWillGet->Cells[6][sgGlbmQtyWillGet->RowCount-1]+"\t"+sgGlbmQtyWillGet->Cells[7][sgGlbmQtyWillGet->RowCount-1];
ItemStr=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("")+"\t"+
"本期合计:"+"\t"+
FormatFloat("#,##0.00",RsGlbQuery->FieldByName("GlbDopAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsGlbQuery->FieldByName("GlbCopAmt").ToDouble())+"\t";
ItemStr=ItemStr+tempStr;
sgGlbmQtyWillGet->AddItem(ItemStr);
ItemStr=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("")+"\t"+
"本年累计:"+"\t"+
FormatFloat("#,##0.00",RsGlbQuery->FieldByName("GlbDoyAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsGlbQuery->FieldByName("GlbCoyAmt").ToDouble())+"\t";
ItemStr=ItemStr+tempStr;
sgGlbmQtyWillGet->AddItem(ItemStr);
}
RsQuery->Close();
RsGlbQuery->Close();
delete RsQuery;
delete RsGlbQuery;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::muFirstClick(TObject *Sender)
{
if(FGlbQtyAmtSign==1 || FCancelQuery==true)
return;
if(RstGlkm->RecordCount>1)
{
RstGlkm->MoveFirst();
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::muNextClick(TObject *Sender)
{
if(FGlbQtyAmtSign==1 || FCancelQuery==true)
return;
if(RstGlkm->RecordCount > 1 && RstGlkm->CurRecNo < RstGlkm->RecordCount-1)
{
RstGlkm->MoveNext();
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::muLastClick(TObject *Sender)
{
if(FGlbQtyAmtSign==1 || FCancelQuery==true)
return;
if(RstGlkm->RecordCount > 1)
{
RstGlkm->MoveLast();
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::muPreviousClick(TObject *Sender)
{
if(FGlbQtyAmtSign==1 || FCancelQuery==true)
return;
if(RstGlkm->RecordCount > 1 && RstGlkm->CurRecNo > 1)
{
RstGlkm->MovePrious();
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::tbRefreshClick(TObject *Sender)
{
if(sSQL=="")
return;
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::FormShow(TObject *Sender)
{
if(FGlbQtyAmtSign==1)
{
tbQuery->Enabled=false;
tbControl->Enabled=false;
}
else
{
tbQuery->Enabled=true;
tbControl->Enabled=true;
}
tbQueryClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::FormClose(TObject *Sender,
TCloseAction &Action)
{
if(FGlbQtyAmtSign!=1 && RstGlkm!=NULL)
{
RstGlkm->Close();
delete RstGlkm;
}
TQueryBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyWillGet::sgGlbmQtyWillGetDblClick(
TObject *Sender)
{
int iRow;
AnsiString tPzhCode;
iRow=sgGlbmQtyWillGet->Row;
tPzhCode= Trim(sgGlbmQtyWillGet->Cells[2][iRow]);
if(tPzhCode.IsEmpty())
return;
try
{
StartWaitForm("正在调阅凭证,请稍候......");
TmpWillGet=new TfrmPzh(this,g_ClientHandle,"1100302","");
TmpWillGet->comServer->FilterString="PzhCode='"+tPzhCode+"'";
TmpWillGet->comServer->Query();
TmpWillGet->Transfered=1;
EndWaitForm();
TmpWillGet->ShowModal();
}
catch (Exception &e)
{
delete TmpWillGet;
throw Exception(e.Message);
}
delete TmpWillGet;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?