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