pzhtotal.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 206 行
CPP
206 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "PzhTF.h"
#include "PzhTotal.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma link "KSAdvReport"
#pragma resource "*.dfm"
TfrmPzhTotal *frmPzhTotal;
TfrmPzhTF *FQuery;
//---------------------------------------------------------------------------
__fastcall TfrmPzhTotal::TfrmPzhTotal(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TQueryBaseForm(Owner,chWnd,MidCode,WhereStr)
{
FilterStr="";
sSQL="";
RecentBillCode="";
QueryGrid=sgPzhTotal;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::tbQueryClick(TObject *Sender)
{
try
{
StartWaitForm("正在启动汇总条件过滤界面...");
TfrmPzhTF *FQuery=new TfrmPzhTF(this);
EndWaitForm();
FQuery->ShowModal();
if(FQuery->CancelQuery=="Cancel")
{
delete FQuery;
return;
}
FilterStr=FQuery->CreatSQLFilStr;
m_PzhDateF=FQuery->FPzhDateF;
m_PzhDateT=FQuery->FPzhDateT;
m_PzhCodeF=FQuery->FPzhCodeF;
m_PzhCodeT=FQuery->FPzhCodeT;
}
__finally
{
delete FQuery;
}
//------------------------------------
//------------------------------------
try{
StartWaitForm("正在查询,请稍候...");
FillGridWithData();
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
bool __fastcall TfrmPzhTotal::ShowQueryWindow()
{
return true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::ClearControl(bool BringToNext)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::GetDataFromComObject()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::WaitUserInput()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::RefreshGridData(int mAction)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::DisplayBill()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::GetBill(AnsiString BillID)
{
return;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPzhTotal::GetHeadQueryStr()
{
AnsiString Selectstr,Fromstr,Wherestr,Groupstr,Orderstr;
Selectstr="select PzdGlkm,GlkmName,GlkmLevel,PzdJfAmt=sum(case PzdDir when 1 then PzdAmt else 0 end),";
Selectstr=Selectstr+"PzdDfAmt=sum(case PzdDir when -1 then PzdAmt else 0 end)";
Fromstr=" from sdPzd,sdPzh,sdGlkm ";
if(FilterStr=="")
Wherestr="where PzdCode=PzhCode and PzdGlkm=GlkmCode";
else
Wherestr="where PzdCode=PzhCode and PzdGlkm=GlkmCode and " + FilterStr;
Groupstr=" group by PzdGlkm,GlkmName,GlkmLevel";
Orderstr=" order by PzdGlkm";
sSQL=Selectstr+Fromstr+Wherestr+Groupstr+Orderstr;
return(sSQL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPzhTotal::GetSpace(int iNum)
{
AnsiString strSpace;
for(int i=1;i<iNum;i++)
strSpace=strSpace+AnsiString(" ");
return strSpace;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::FillGridWithData()
{
TComResultSet *RsQuery;
AnsiString ItemStr,sSql;
double JfCountAmt,DfCountAmt;
double JfAmt,DfAmt;
sSql=GetHeadQueryStr(); //取Head查询的SQL语句
if(sSql=="")
return;
sgPzhTotal->RowCount=1;
RecentBillCode="";
JfCountAmt=0;
DfCountAmt=0;
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(sSql,"");
RsQuery->MoveFirst();
while(RsQuery->Eof == 0)
{
if(RsQuery->FieldByName("PzdJfAmt")!="")
JfAmt=RsQuery->FieldByName("PzdJfAmt").ToDouble();
else
JfAmt=0;
if(RsQuery->FieldByName("PzdDfAmt")!="")
DfAmt=RsQuery->FieldByName("PzdDfAmt").ToDouble();
else
DfAmt=0;
ItemStr=GetSpace(RsQuery->FieldByName("GlkmLevel").ToInt())+RsQuery->FieldByName("PzdGlkm")+"\t"+
GetSpace(RsQuery->FieldByName("GlkmLevel").ToInt())+RsQuery->FieldByName("GlkmName")+"\t"+
FormatFloat("#,##0.00",JfAmt) + "\t"+
FormatFloat("#,##0.00",DfAmt);
JfCountAmt=JfCountAmt+RsQuery->FieldByName("PzdJfAmt").ToDouble();
DfCountAmt=DfCountAmt+RsQuery->FieldByName("PzdDfAmt").ToDouble();
sgPzhTotal->AddItem(ItemStr);
RsQuery->MoveNext();
}
RsQuery->Close();
delete RsQuery;
ItemStr = AnsiString(" ") + "\t" + "合计:" + "\t" + FormatFloat("#,##0.00",JfCountAmt)+ "\t" +
FormatFloat("#,##0.00",DfCountAmt);
sgPzhTotal->AddItem(ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::muFirstClick(TObject *Sender)
{
if(sgPzhTotal->RowCount > 1)
sgPzhTotal->Row=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::muNextClick(TObject *Sender)
{
if(sgPzhTotal->RowCount > 1 && sgPzhTotal->Row < sgPzhTotal->RowCount-1)
sgPzhTotal->Row=sgPzhTotal->Row+1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::muLastClick(TObject *Sender)
{
if(sgPzhTotal->RowCount > 1)
sgPzhTotal->Row=sgPzhTotal->RowCount-1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::tbRefreshClick(TObject *Sender)
{
if(sSQL=="")
return;
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::muPreviousClick(TObject *Sender)
{
if(sgPzhTotal->RowCount > 1 && sgPzhTotal->Row > 1)
sgPzhTotal->Row=sgPzhTotal->Row-1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPzhTotal::FormShow(TObject *Sender)
{
tbQueryClick(this);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?