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 + -
显示快捷键?