fdzhand.cpp

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

CPP
250
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "FdzHand.h"
#include "FdzMemo.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "SDGrid"
#pragma link "StdBaseForm"
#pragma resource "*.dfm"

TfrmFdzHand *frmFdzHand;
TfrmFdzMemo *FdzMemofrm;
//---------------------------------------------------------------------------
__fastcall TfrmFdzHand::TfrmFdzHand(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
   : TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
    FStatus="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FillFbbGridWithData(AnsiString tDir,AnsiString tAmt)
{
    AnsiString sSQL,sFrom,sWhere,sOrder;
    TComResultSet *RsFdz=new  TComResultSet(Handle,g_ClientHandle);
    AnsiString ItemStr;
    sSQL=" select FbbVerify,FbbNo,FbbDate,FbbZy,FbbZyMemo=(select NoteBookText from  sdNoteBook where NoteBookCode =FbbZy),SettleModeName,FbbSettleNo,FbbAmt,FbbDir";
    sFrom=" from sdFbb,sdSettleMode ";
    sWhere=" where FbbSettleMode=SettleModecode and FbbFmonth = '"+FFcMonth+"'";
    sWhere+=" and FbbCac='"+FCacCode+"'";
    sWhere+=" and FbbVerify = 0 and FbbAmt="+tAmt+"";
    if(tDir=="借")
      sWhere+=" and FbbDir=1";
    else
      sWhere+=" and FbbDir=-1";
    sSQL=sSQL+sFrom+sWhere+sOrder;
    sgFbb->RowCount=1;
    try
    {
      RsFdz->Open(sSQL,"");
      RsFdz->MoveFirst();
      while(RsFdz->Eof == 0)
      {
        if(RsFdz->FieldByName("FbbVerify")=="1")
          ItemStr=AnsiString("√") + "\t" + RsFdz->FieldByName("FbbNo") + "\t"
                  +RsFdz->FieldByName("FbbDate")+"\t" + RsFdz->FieldByName("FbbZyMemo")+"\t"
                  +RsFdz->FieldByName("SettleModeName")+"\t" + RsFdz->FieldByName("FbbSettleNo");
        else
          ItemStr=AnsiString("")+"\t"+RsFdz->FieldByName("FbbNo")+"\t"+
                  RsFdz->FieldByName("FbbDate")+"\t"+RsFdz->FieldByName("FbbZyMemo")+"\t"+
                  RsFdz->FieldByName("SettleModeName")+"\t"+RsFdz->FieldByName("FbbSettleNo");
        if(RsFdz->FieldByName("FbbDir")==1)
          ItemStr=ItemStr+"\t"+ "收" + "\t" + RsFdz->FieldByName("FbbAmt");
        else
          ItemStr=ItemStr+"\t"+ "支" + "\t" + RsFdz->FieldByName("FbbAmt");
        sgFbb->AddItem(ItemStr);
        RsFdz->MoveNext();
      }
      RsFdz->Close();
    }
    __finally
    {
      delete RsFdz;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FillBcsGridWithData()
{
    AnsiString sSQL,sFrom,sWhere,sOrder;
    TComResultSet *RsFdz=new  TComResultSet(Handle,g_ClientHandle);
    AnsiString ItemStr;
    sSQL=" select BcsVeriry,BcsLine,BcsDate,BcsZy,BcsZyMemo=(select NoteBookText from  sdNoteBook where NoteBookCode =BcsZy),SettleModeName,BcsSettleNo,BcsAmt,BcsDir,BcsCode";
    sFrom=" from sdBcs,sdSettleMode ";
    sWhere=" where BcsSettleMode=SettleModecode and BcsFmonth = '"+FFcMonth+"'";
    sWhere+=" and BcsCac='"+FCacCode+"'";
    sWhere+=" and BcsVeriry = 0";
    sOrder=" order by BcsLine,BcsDate,SettleModeName,BcsSettleNo";
    sSQL=sSQL+sFrom+sWhere+sOrder;
    sgBcs->RowCount=1;
    try
    {
      RsFdz->Open(sSQL,"");
      RsFdz->MoveFirst();
      while(RsFdz->Eof == 0)
      {
        if(RsFdz->FieldByName("BcsVeriry")==1)
          ItemStr=AnsiString("√")+"\t"+ RsFdz->FieldByName("BcsCode")+"\t"+RsFdz->FieldByName("BcsLine")+"\t"+
                  RsFdz->FieldByName("BcsDate")+"\t" + RsFdz->FieldByName("BcsZyMemo")+"\t"+
                  RsFdz->FieldByName("SettleModeName")+"\t" + RsFdz->FieldByName("BcsSettleNo");
        else
          ItemStr=AnsiString("")+"\t"+RsFdz->FieldByName("BcsCode")+"\t"+RsFdz->FieldByName("BcsLine")+"\t"+
                  RsFdz->FieldByName("BcsDate")+"\t"+RsFdz->FieldByName("BcsZyMemo")+"\t"+
                  RsFdz->FieldByName("SettleModeName")+"\t"+RsFdz->FieldByName("BcsSettleNo");
        if(RsFdz->FieldByName("BcsDir")==1)
          ItemStr=ItemStr+"\t"+ "借" + "\t" + RsFdz->FieldByName("BcsAmt");
        else
          ItemStr=ItemStr+"\t"+ "贷" + "\t" + RsFdz->FieldByName("BcsAmt");
        sgBcs->AddItem(ItemStr);
        RsFdz->MoveNext();
      }
      RsFdz->Close();
    }
    __finally
    {
      delete RsFdz;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::FormShow(TObject *Sender)
{
   sgFbb->RowCount=1;
   sgBcs->RowCount=1;
   FillBcsGridWithData();
   if(sgBcs->RowCount>1)
     sgBcsClick(this);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::sgBcsClick(TObject *Sender)
{
   int bRow;
   bRow=sgBcs->Row;
   if(bRow>0)
   {
      for(int i=1;i<=sgBcs->RowCount;i++)
        sgBcs->Cells[0][i]="";
      sgBcs->Cells[0][bRow]="√";
      AnsiString tDir,tAmt,tMode,tCode;

      tDir=Trim(sgBcs->Cells[7][bRow]);
      tAmt=Trim(sgBcs->Cells[8][bRow]);
      FillFbbGridWithData(tDir,tAmt);
      if(sgFbb->RowCount>1)
        sgFbb->Cells[0][1]="√";
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::sgFbbClick(TObject *Sender)
{
   int fRow;
   fRow=sgFbb->Row;
   if(fRow>0)
   {
      for(int i=1;i<=sgFbb->RowCount;i++)
        sgFbb->Cells[0][i]="";
      sgFbb->Cells[0][fRow]="√";
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btCheckClick(TObject *Sender)
{
   int bRow,fRow;
   bRow=sgBcs->Row;
   fRow=sgFbb->Row;
   if(sgBcs->RowCount==1)
   {
     ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
     return;
   }
   if(sgFbb->RowCount==1)
   {
     ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
     return;
   }
   if(sgBcs->Cells[0][bRow]=="" ||sgFbb->Cells[0][fRow]=="")
   {
     ShowMessageWindow("没有符合条件的勾对记录",mwsWarning);
     return;
   }
   else
   {
     try
     {
        SaveFdzRecord(bRow,fRow);
        sgBcs->DeleteRow(bRow);
        sgFbb->DeleteRow(fRow);
     }
     catch(Exception &e)
     {
        throw Exception(e.Message);
     }
   }
   FStatus="OK";
   Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::SaveFdzRecord(int bRow,int fRow)
{
    //回填日记帐库
    AnsiString sSQL,sSet,sWhere,sBcsCode,sBcsLine,sFbbNo;

    TComResultSet *RsFdz=new  TComResultSet(Handle,g_ClientHandle);
    sSQL=" update sdFbb ";
    sBcsCode=sgBcs->Cells[1][bRow];  //对帐单号
    sBcsLine=sgBcs->Cells[2][bRow];  //对帐行号
    sSet=" set FbbVerify = 1,FbbBcsCode = '"+sBcsCode+"',FbbBcsLine = "+sBcsLine+"";
    sFbbNo=sgFbb->Cells[1][fRow];    //流水号
    sWhere=" where FbbCac = '"+FCacCode+"' and FbbNo = "+sFbbNo+" and FbbFMonth = '"+FFcMonth+"'";
    sSQL=sSQL+sSet+sWhere;
    try
    {
      RsFdz->Execute(sSQL);
      RsFdz->Close();
    }
    catch(Exception &e)
    {
      delete RsFdz;
      throw Exception(e.Message);
    }
    //回填对帐单库
    sSQL=" update sdBcs ";
    sFbbNo=sgFbb->Cells[1][fRow];     //流水号
    sSet=" set BcsVeriry = 1 , BcsCac = '"+FCacCode+"' , BcsFbbNo = "+sFbbNo+" , BcsFMonth = '"+FFcMonth+"'";
    sBcsCode=sgBcs->Cells[1][bRow];   //对帐单号
    sBcsLine=sgBcs->Cells[2][bRow];   //对帐行号
    sWhere=" where BcsCode = '"+sBcsCode+"' and BcsLine = "+sBcsLine+"";
    sSQL=sSQL+sSet+sWhere;
    try
    {
      RsFdz->Execute(sSQL);
      RsFdz->Close();
    }
    catch(Exception &e)
    {
      delete RsFdz;
      throw Exception(e.Message);
    }
    delete RsFdz;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btCancelClick(TObject *Sender)
{
   if(FStatus=="")
     FStatus="Cancel";
   Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFdzHand::btFdzMemoClick(TObject *Sender)
{
   try
   {
      FdzMemofrm=new TfrmFdzMemo(this);
      FdzMemofrm->ShowModal();
   }
   __finally
   {
      delete FdzMemofrm;
   }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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