glbquery.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 691 行 · 第 1/3 页
CPP
691 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "GlbQuery.h"
#include "GlbmQuery.h"
#include "GlbQF.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma link "KSAdvReport"
#pragma resource "*.dfm"
TfrmGlbQuery *frmGlbQuery;
TfrmGlbmQuery *GlbmQueryfrm;
TfrmGlbQF *GlbQFfrm;
//---------------------------------------------------------------------------
__fastcall TfrmGlbQuery::TfrmGlbQuery(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TQueryBaseForm(Owner,chWnd,MidCode,WhereStr)
{
labMemory->Caption="";
QueryGrid=sgGlbQuery;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::tbQueryClick(TObject *Sender)
{
if(!ShowQueryWindow())
return;
try{
StartWaitForm("正在查询,请稍候...");
if(FCurrencyCode==g_sdCurrencyCode)
FillGridWithData();
else
FillGridWithDataW();
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::InitSDGridGlbQueryW()
{
sgGlbQueryW->Cells[0][0]="科目代码"; sgGlbQueryW->Cells[0][1]="科目代码";
sgGlbQueryW->Cells[1][0]="科目名称"; sgGlbQueryW->Cells[1][1]="科目名称";
sgGlbQueryW->Cells[2][0]="期间"; sgGlbQueryW->Cells[2][1]="期间";
sgGlbQueryW->Cells[3][0]="摘要"; sgGlbQueryW->Cells[3][1]="摘要";
sgGlbQueryW->Cells[4][0]="本期收入"; sgGlbQueryW->Cells[4][1]="原币金额";
sgGlbQueryW->Cells[5][0]="本期收入"; sgGlbQueryW->Cells[5][1]="本币金额";
sgGlbQueryW->Cells[6][0]="本期发出"; sgGlbQueryW->Cells[6][1]="原币金额";
sgGlbQueryW->Cells[7][0]="本期发出"; sgGlbQueryW->Cells[7][1]="本币金额";
sgGlbQueryW->Cells[8][0]="期末结存"; sgGlbQueryW->Cells[8][1]="";
sgGlbQueryW->Cells[9][0]="期末结存"; sgGlbQueryW->Cells[9][1]="原币金额";
sgGlbQueryW->Cells[10][0]="期末结存"; sgGlbQueryW->Cells[10][1]="本币金额";
}
//---------------------------------------------------------------------------
bool __fastcall TfrmGlbQuery::ShowQueryWindow()
{
bool B_Temp = false;
try
{
GlbQFfrm=new TfrmGlbQF(this);
GlbQFfrm->ShowModal();
if(GlbQFfrm->CancelQuery)
{
//if(GlbQFfrm) delete GlbQFfrm; //modify 2003-03-04
B_Temp = false;
}
else
{
FilterStr=GlbQFfrm->CreateSqlString;
FFmonthInfo=GlbQFfrm->FmonthInfo;
FCurrencyInfo=GlbQFfrm->CurrencyInfo;
FCurrencyCode=GlbQFfrm->CurrencyCode;
if(FCurrencyCode==g_sdCurrencyCode)
{
sgGlbQuery->Align=alClient;
sgGlbQuery->Visible=true;
sgGlbQueryW->Visible=false;
}
else
{
sgGlbQuery->Visible=false;
sgGlbQueryW->Visible=true;
sgGlbQueryW->Align=alClient;
InitSDGridGlbQueryW();
}
labMemory->Caption="--"+FFmonthInfo+","+FCurrencyInfo;
B_Temp = true; //add 2003-03-04
}
}
__finally
{
if(GlbQFfrm) delete GlbQFfrm;
return B_Temp;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::ClearControl(bool BringToNext)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::GetDataFromComObject()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::WaitUserInput()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::RefreshGridData(int mAction)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::DisplayBill()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::GetBill(AnsiString BillID)
{
return;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmGlbQuery::GetHeadQueryStr()
{
AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
Selectstr="select GlbFmonth,GlbGlkm,GlkmName,GlbLevel,GlbDir,GlbBopAmt,GlbBopWbAmt,GlbDopAmt,";
Selectstr+="GlbDopWbAmt,GlbCopAmt,GlbCopWbAmt,GlbDoyAmt,GlbDoyWbAmt,GlbCoyAmt,GlbCoyWbAmt";
Fromstr=" from sdGlb,sdGlkm";
if(FilterStr=="")
Wherestr=" where GlbGlkm=GlkmCode";
else
Wherestr=" where GlbGlkm=GlkmCode and "+FilterStr;
Orderstr=" order by GlbFmonth,GlbGlkm";
sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
return(sSQL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmGlbQuery::GetSpace(int iNum)
{
AnsiString strSpace;
for(int i=1;i<iNum;i++)
strSpace=strSpace+AnsiString(" ");
return strSpace;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbQuery::FillGridWithData()
{
TComResultSet *RsQuery;
AnsiString ItemStr,ItemStr0,ItemStr1,ItemStr2,sSql;
sSql=GetHeadQueryStr(); //取Head查询的SQL语句
if(sSql=="")
return;
sgGlbQuery->RowCount=1;
RecentBillCode="";
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(sSql,"");
RsQuery->MoveFirst();
ItemStr="";
while(RsQuery->Eof == 0)
{
ItemStr0 = GetSpace(RsQuery->FieldByName("GlbLevel").ToInt())+RsQuery->FieldByName("GlbGlkm")+
"\t"+GetSpace(RsQuery->FieldByName("GlbLevel").ToInt())+RsQuery->FieldByName("GlkmName")+
"\t"+RsQuery->FieldByName("GlbFmonth");
ItemStr0=ItemStr0+"\t"+"期 初 余 额"+"\t"+AnsiString("0.00")+"\t"+AnsiString("0.00");
if(RsQuery->FieldByName("GlbBopAmt")==0)
ItemStr0=ItemStr0+"\t"+"平"+GetSpace(4)+AnsiString("0.00");
else
ItemStr0=ItemStr0+"\t"+(RsQuery->FieldByName("GlbDir")=="1" ? "借":"贷")+
GetSpace(4)+FormatFloat("#,##0.00",RsQuery->FieldByName("GlbBopAmt").ToDouble());
ItemStr1=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("");
if(RsQuery->FieldByName("GlbBopAmt")==0) //如果期初==0
{
if(RsQuery->FieldByName("GlbDopAmt")==0 && RsQuery->FieldByName("GlbCopAmt")==0)
{
ItemStr1=ItemStr1+"\t"+"本 期 合 计"+"\t"+AnsiString("0.00")+"\t" +AnsiString("0.00")+"\t"+
"平"+GetSpace(4)+AnsiString("0.00");
ItemStr2=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("")+"\t"+"本 年 累 计";
ItemStr2=ItemStr2+"\t"+FormatFloat("#,##0.00",RsQuery->FieldByName("GlbDoyAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("GlbCoyAmt").ToDouble());
ItemStr2=ItemStr2+"\t"+"平"+GetSpace(4)+AnsiString("0.00");
}
else
{
double fGlbBopAmt;
if(RsQuery->FieldByName("GlbDir")==1)
{
fGlbBopAmt=RsQuery->FieldByName("GlbBopAmt").ToDouble()+RsQuery->FieldByName("GlbDopAmt").ToDouble()-
RsQuery->FieldByName("GlbCopAmt").ToDouble();
if(fGlbBopAmt>0)
{
ItemStr1=ItemStr1+"\t"+"本 期 合 计"+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("GlbDopAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("GlbCopAmt").ToDouble());
ItemStr1=ItemStr1+"\t"+"借"+GetSpace(4)+FormatFloat("#,##0.00",fGlbBopAmt);
ItemStr2=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("")+"\t"+"本 年 累 计";
ItemStr2=ItemStr2+"\t"+FormatFloat("#,##0.00",RsQuery->FieldByName("GlbDoyAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("GlbCoyAmt").ToDouble());
ItemStr2=ItemStr2+"\t"+"借"+GetSpace(4)+FormatFloat("#,##0.00",fGlbBopAmt);
}
else
{
ItemStr1=ItemStr1+"\t"+"本 期 合 计"+"\t"+
FormatFloat("#,#0.00",RsQuery->FieldByName("GlbDopAmt").ToDouble())+"\t"+
FormatFloat("#,#0.00",RsQuery->FieldByName("GlbCopAmt").ToDouble());
ItemStr1=ItemStr1+"\t"+"贷"+GetSpace(4)+AnsiString(-fGlbBopAmt);
ItemStr2=AnsiString("")+"\t"+AnsiString("")+"\t"+AnsiString("")+"\t"+"本 年 累 计";
ItemStr2=ItemStr2+"\t"+FormatFloat("#,#0.00",RsQuery->FieldByName("GlbDoyAmt").ToDouble())+"\t"+
FormatFloat("#,#0.00",RsQuery->FieldByName("GlbCoyAmt").ToDouble());
ItemStr2=ItemStr2+"\t"+"贷"+GetSpace(4)+AnsiString(-fGlbBopAmt);
}
}
else
{
fGlbBopAmt=RsQuery->FieldByName("GlbBopAmt").ToDouble()-RsQuery->FieldByName("GlbDopAmt").ToDouble()+
RsQuery->FieldByName("GlbCopAmt").ToDouble();
if(fGlbBopAmt>0)
{
ItemStr1=ItemStr1+"\t"+"本 期 合 计"+"\t"+FormatFloat("#,##0.00",RsQuery->FieldByName("GlbDopAmt").ToDouble())+"\t"+
FormatFloat("#,##0.00",RsQuery->FieldByName("GlbCopAmt").ToDouble());
ItemStr1=ItemStr1+"\t"+"贷"+GetSpace(4)+FormatFloat("#,##0.00",fGlbBopAmt);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?