prerb.cpp

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

CPP
317
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "PreRb.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmPreRb *frmPreRb;
//---------------------------------------------------------------------------
__fastcall TfrmPreRb::TfrmPreRb(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
  SetAutoCodeString(sePreRbCode,"Acm-64");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      sePreRbCode->Text   ="";
      sePreRbFmonth->Text=g_sdFMonth;  //月份
      dePreRbDate->Text   =g_sdCurDate;  //日期
      scPreRbFrom->ItemIndex =0;
      scPreRbClient->ItemIndex =0;  //客户
      scPreRbCurrency->ItemIndex =0;  //币种
      sePreRbEnrate->Text   ="1";  //汇率
      sePreRbAmt->Text   ="0.00";
      sePreRbCAmt->Text   ="0.00";
      sePreRbBAmt->Text   ="0.00";
      scPreRbSettleMode->ItemIndex=-1;
      sePreRbSettleCode->Text="";
      sePreRbFbbNo->Text="0";
      sePreRbFbbCac->Text="";
      memPreRbDesc->Text="";  //备注
      scPreRbState->ItemIndex   =0;  //状态
      lblPreRbUser->Caption=g_sdUserCode;  //操作员
      chkPreRbCheck->Checked=false;  //审核标志
      lblPreRbChecker->Caption   ="";  //审核人
      lblPreRbCheckDate->Caption   ="";  //审核日期
      SetCheckToolbarStatus(false);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::InitEditControl()
{
       ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
       ClientGroup->AddComponent(2,true,true,false, sgPreRb,sgPreRb->Name);
       ClientGroup->AddComponent(2,false,false,false, sePreRbCode,sePreRbCode->Name);
       ClientGroup->AddComponent(2,true,true,true, sePreRbFmonth,sePreRbFmonth->Name);
       scPreRbState->ClearAll();
       scPreRbState->AddItems("1-未处理","1");
       scPreRbFrom->ClearAll();
       scPreRbFrom->AddItems("1-由出纳账生成","1");
       scPreRbFrom->AddItems("2-手工录入","2");
       FillComboBox(Handle,scPreRbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
       AnsiString sSql;
       sSql =AnsiString("select currencycode,currencyname+'-'+currencycode memo,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
       sSql+=" where currencycode*=ratecurrency and ";
       sSql+=" ratefmonth='"+g_sdFMonth+"'";
       sSql+=" order by currencylocal desc ";
       FillComboBox(Handle,scPreRbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
       FillComboBox(Handle,scPreRbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::GetDataFromComObject()
{
      sePreRbCode->Text   =GetFieldValue("PreRbCode");
      sgPreRb->LocateGrid(1,GetFieldValue("PreRbCode"));
      sePreRbFmonth->Text=GetFieldValue("PreRbFmonth");  //月份
      dePreRbDate->Text   =GetFieldValue("PreRbDate");  //日期
      scPreRbFrom->LocateKey(GetFieldValue("PreRbFrom"));
      scPreRbClient->LocateKey(GetFieldValue("PreRbClient"));  //客户
      scPreRbCurrency->LocateKey(GetFieldValue("PreRbCurrency"));  //币种
      sePreRbEnrate->Text   =GetFieldValue("PreRbEnrate");  //汇率
      sePreRbAmt->Text   =GetFieldValue("PreRbAmt");
      sePreRbCAmt->Text   =GetFieldValue("PreRbCAmt");
      sePreRbBAmt->Text   =GetFieldValue("PreRbBAmt");
      scPreRbSettleMode->LocateKey(GetFieldValue("PreRbSettleMode"));
      sePreRbSettleCode->Text   =GetFieldValue("PreRbSettleCode");
      sePreRbFbbCac->Text   =GetFieldValue("PreRbFbbCac");
      sePreRbFbbNo->Text   =GetFieldValue("PreRbFbbNo");
      memPreRbDesc->Text=GetFieldValue("PreRbDesc");  //备注
      scPreRbState->LocateKey(GetFieldValue("PreRbState"));  //状态
      lblPreRbUser->Caption=GetFieldValue("PreRbUser");  //操作员
      chkPreRbCheck->Checked=(GetFieldValue("PreRbCheck")=="1"?true:false);  //审核标志
      lblPreRbChecker->Caption   =GetFieldValue("PreRbChecker");  //审核人
      lblPreRbCheckDate->Caption   =GetFieldValue("PreRbCheckDate");  //审核日期
      //根据审核状态,设置工具栏
      if(GetFieldValue("PreRbCheck")=="1")
       SetCheckToolbarStatus(true);
      else
       SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::SendDataToComObject()
{
      SetFieldValue("PreRbCode",sePreRbCode->Text);
      SetFieldValue("PreRbFmonth",sePreRbFmonth->Text);
      SetFieldValue("PreRbDate",dePreRbDate->Text);
      SetFieldValue("PreRbFrom",scPreRbFrom->ItemData[1]);
      SetFieldValue("PreRbClient",scPreRbClient->ItemData[1]);
      SetFieldValue("PreRbCurrency",scPreRbCurrency->ItemData[1]);
      SetFieldValue("PreRbEnrate",sePreRbEnrate->Text);
      SetFieldValue("PreRbAmt",sePreRbAmt->Text);
      SetFieldValue("PreRbSettleMode",scPreRbSettleMode->ItemData[1]);
      SetFieldValue("PreRbSettleCode",sePreRbSettleCode->Text);
      SetFieldValue("PreRbFbbCac",sePreRbFbbCac->Text);
      SetFieldValue("PreRbFbbNo",sePreRbFbbNo->Text);
      SetFieldValue("PreRbBAmt",sePreRbBAmt->Text);
      SetFieldValue("PreRbCAmt",sePreRbCAmt->Text);
      SetFieldValue("PreRbDesc",memPreRbDesc->Text);
      SetFieldValue("PreRbState",scPreRbState->ItemData[1]);
      SetFieldValue("PreRbUser",lblPreRbUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::WaitUserInput()
{
      if(sePreRbCode->Enabled)
       sePreRbCode->SetFocus();
      scPreRbFromClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreRb::GetDataToGrid()
{
      AnsiString  s;
      s = "\t" + GetFieldValue("PreRbCode")    +
          "\t" + GetFieldValue("PreRbClient")  +
          "\t" + GetFieldValue("PreRbDate")  ;
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgPreRb->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgPreRb->Row;
          sgPreRb->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgPreRb->RemoveItem(sgPreRb->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgPreRb->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgPreRb->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreRb::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::sgPreRbClick(TObject *Sender)
{
      if (sgPreRb->Row > 0)
          comServer->LocateByKey(WideString(sgPreRb->TextMatrix[sgPreRb->Row][1]));
      if (comServer->RecordCount>0)
          GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::sePreRbCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(sePreRbCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreRb::scPreRbCurrencyClick(TObject *Sender)
{
 sePreRbEnrate->Text=scPreRbCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::scPreRbFromClick(TObject *Sender)
{
 if(scPreRbFrom->ItemIndex == 0)
 {
  GroupBox1->Enabled=true;
  GroupBox3->Enabled=false;
 }
 else
 {
  GroupBox1->Enabled=false;
  GroupBox3->Enabled=true;
  sePreRbFbbCac->Text="";
  sePreRbFbbNo->Text="0";
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreRb::sePreRbFbbCacButtonClick(TObject *Sender)
{
 if(scPreRbFrom->ItemIndex == 0)
 {
    AnsiString SqlStr;
    SqlStr="009[出纳账号][流水号][摘要][财务月份][登记日期][金额][币种][结算方式][结算号] ";
    SqlStr+=" select FbbCac,FbbNo,FbbZy,FbbFMonth,FbbDate,FbbAmt,FbbCurrency,FbbSettleMode,FbbSettleNo ";
    SqlStr+=" from sdFbb where FbbDir=1 and FbbClient='"+scPreRbClient->ItemData[1]+"' ";
    SqlStr+=" and not Exists (select * from sdArrb where ArrbFbbCac=FbbCac and ArrbFbbNo=FbbNo) ";
    SqlStr+=" and not Exists (select * from sdPreRb where PreRbFbbCac=FbbCac and PreRbFbbNo=FbbNo) ";
    SqlStr+=" order by FbbDate DESC ";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"出纳账查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
      sePreRbFbbCac->Text=p->ColData[1];
      sePreRbFbbNo->Text=p->ColData[2];
      sePreRbAmt->Text=p->ColData[6];
      scPreRbCurrency->LocateKey(p->ColData[7]);
      sePreRbEnrate->Text=scPreRbCurrency->ItemData[2];
      scPreRbSettleMode->LocateKey(p->ColData[8]);
      sePreRbSettleCode->Text=p->ColData[9];
    }
    delete p;
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreRb::scPreRbClientChange(TObject *Sender)
{
 sePreRbFbbCac->Text="";
 sePreRbFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
  switch(MsgSrc)
  {
   case euSdCurrency:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
       AnsiString sSql;
       sSql =AnsiString("select currencycode,currencyname+'-'+currencycode memo,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
       sSql+=" where currencycode*=ratecurrency and ";
       sSql+=" ratefmonth='"+g_sdFMonth+"'";
       sSql+=" order by currencylocal desc ";
       FillComboBox(Handle,scPreRbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
    }
    break;
   case euSdSettleMode:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
       FillComboBox(Handle,scPreRbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
    }
    break;
   case euSdClient:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
       FillComboBox(Handle,scPreRbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
    }
    break;
   default:
    break;
  }
*/  
}
//---------------------------------------------------------------------------

bool __fastcall TfrmPreRb::BeforeCheck()
{
  SetFieldValue("PreRbCheck",1);
  SetFieldValue("PreRbChecker",g_sdUserCode);
  SetFieldValue("PreRbCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmPreRb::BeforeUnCheck()
{
  SetFieldValue("PreRbCheck",0);
  SetFieldValue("PreRbChecker","");
  SetFieldValue("PreRbCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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