glbmqtyamt.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 440 行 · 第 1/2 页

CPP
440
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "GlbmQtyAmt.h"
#include "GlbmQF.h"
#include "Pzh.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma link "KSAdvReport"
#pragma resource "*.dfm"

TfrmGlbmQtyAmt *frmGlbmQtyAmt;
TfrmGlbmQF *GlbmQtyAmtF;
TfrmPzh *GlbmQtyAmtP;
//---------------------------------------------------------------------------
__fastcall TfrmGlbmQtyAmt::TfrmGlbmQtyAmt(TComponent* Owner)
   : TQueryBaseForm(Owner)
{
   InitGridControl();
   RstGlkm=NULL;
   labMemory->Caption="";
   QueryGrid=sgGlbmQtyAmt;
}
//---------------------------------------------------------------------------
__fastcall TfrmGlbmQtyAmt::TfrmGlbmQtyAmt(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
   : TQueryBaseForm(Owner, chWnd, MidCode, WhereStr)
{
   InitGridControl();
   RstGlkm=NULL;
   labMemory->Caption="";
   QueryGrid=sgGlbmQtyAmt;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlbmQtyAmt::InitGridControl()
{
   sgGlbmQtyAmt->Cells[0][0]="日期"; sgGlbmQtyAmt->Cells[0][1]="日期";
   sgGlbmQtyAmt->Cells[1][0]="凭证编号"; sgGlbmQtyAmt->Cells[1][1]="凭证编号";
   sgGlbmQtyAmt->Cells[2][0]="科目代码"; sgGlbmQtyAmt->Cells[2][1]="科目代码";
   sgGlbmQtyAmt->Cells[3][0]="摘要"; sgGlbmQtyAmt->Cells[3][1]="摘要";
   sgGlbmQtyAmt->Cells[4][0]="单位"; sgGlbmQtyAmt->Cells[4][1]="单位";
   sgGlbmQtyAmt->Cells[5][0]="币种"; sgGlbmQtyAmt->Cells[5][1]="币种";

   sgGlbmQtyAmt->Cells[6][0]="本期收入"; sgGlbmQtyAmt->Cells[6][1]="数量";
   sgGlbmQtyAmt->Cells[7][0]="本期收入"; sgGlbmQtyAmt->Cells[7][1]="金额";

   sgGlbmQtyAmt->Cells[8][0]="本期发出"; sgGlbmQtyAmt->Cells[8][1]="数量";
   sgGlbmQtyAmt->Cells[9][0]="本期发出"; sgGlbmQtyAmt->Cells[9][1]="金额";

   sgGlbmQtyAmt->Cells[10][0]="期末结存"; sgGlbmQtyAmt->Cells[10][1]="数量";
   sgGlbmQtyAmt->Cells[11][0]="期末结存"; sgGlbmQtyAmt->Cells[11][1]="金额";
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::tbQueryClick(TObject *Sender)
{
   if(!ShowQueryWindow())
     return;
   try{
     StartWaitForm("正在查询,请稍候...");
     if(FGlbQtyAmtSign!=1)
        FillRstGlkmWithData();
     FillGridWithData();
   }
   __finally
   {
     EndWaitForm();
   }
}
//---------------------------------------------------------------------------

bool __fastcall TfrmGlbmQtyAmt::ShowQueryWindow()
{
   if(FGlbQtyAmtSign==1)
      return true;
   GlbmQtyAmtF=new TfrmGlbmQF(this);
   GlbmQtyAmtF->Caption="数量金额明细帐查询过滤";
   GlbmQtyAmtF->FQtyAmtSign="1";
   GlbmQtyAmtF->ShowModal();
   FCancelQuery=GlbmQtyAmtF->CancelQuery;
   if(FCancelQuery==true)
   {
     delete GlbmQtyAmtF;
     return false;
   }
   FGlbSQLFilStr=GlbmQtyAmtF->CreateGlbSQLString;
   FPzhSQLFilStr=GlbmQtyAmtF->CreatePzhSQLString;
   FMfcmonthInfo=GlbmQtyAmtF->FmonthInfo;
   delete GlbmQtyAmtF;
   return true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::ClearControl(bool BringToNext)
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::GetDataFromComObject()
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::WaitUserInput()
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::RefreshGridData(int mAction)
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::DisplayBill()
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::GetBill(AnsiString BillID)
{
   return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::FillRstGlkmWithData()
{
    AnsiString tSQL;
    RstGlkm=new  TComResultSet(Handle,g_ClientHandle);
    if(FGlbSQLFilStr!="")
    {
      tSQL="select GlbFmonth,GlbGlkm from sdGlb,sdGlkm";
      tSQL+=" where GlbGlkm=GlkmCode and GlkmSl=1 and "+ FGlbSQLFilStr+ " order by GlbFmonth,GlbGlkm";
    }
    else
    {
      tSQL="select GlbFmonth,GlbGlkm from sdGlb,sdGlkm";
      tSQL+=" where GlbGlkm=GlkmCode and GlkmSl=1 order by GlbFmonth,GlbGlkm";
    }
    RstGlkm->Open(tSQL,"GlbGlkm");
    if(RstGlkm->RecordCount==0)
    {
      sgGlbmQtyAmt->RowCount=3;
      throw Exception("当前查询条件下的帐目不存在!");
    }
    else
      RstGlkm->MoveFirst();
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmGlbmQtyAmt::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 '"+FQtyAmtGlkm+"%'";
          Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '"+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 '"+RstGlkm->FieldByName("GlbGlkm")+"%'";
          Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '"+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 '"+FQtyAmtGlkm+"%'";
         Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode and PzdGlkm Like '"+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 '"+RstGlkm->FieldByName("GlbGlkm")+"%'";
         Wherestr+=" And exists(select * from sdPzd where PzdCode=sdPzh.PzhCode And PzdGlkm Like '"+RstGlkm->FieldByName("GlbGlkm")+"%')";
       }
       Wherestr=Wherestr+" And "+FPzhSQLFilStr;
    }
    Orderstr=" order by PzhDate,PzdGlkm";
    sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
    return(sSQL);
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmGlbmQtyAmt::GetSpace(int iNum)
{
    AnsiString strSpace;
    for(int i=1;i<iNum;i++)
      strSpace=strSpace+AnsiString(" ");
    return strSpace;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlbmQtyAmt::FillGridWithData()
{
    TComResultSet *RsQuery;
    AnsiString ItemStr,sSql;
    sSql=GetHeadQueryStr();  //取Head查询的SQL语句
    if(sSql=="")
      return;
    sgGlbmQtyAmt->RowCount=2;

    RsQuery=new  TComResultSet(Handle,g_ClientHandle);
    RsQuery->Open(sSql,"");
    RsQuery->MoveFirst();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?