refund.cpp

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

CPP
341
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Refund.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"
TfrmRefund *frmRefund;
//---------------------------------------------------------------------------
__fastcall TfrmRefund::TfrmRefund(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 SetAutoCodeString(seRefundCode,"Acm-66");
 IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seRefundCode->Text   ="";
      seRefundFmonth->Text=g_sdFMonth;  //月份
      deRefundDate->Text   =g_sdCurDate;  //日期
      scRefundFrom->ItemIndex =0;
      scRefundRfr->ItemIndex =0;
      seRefundArrb->Text="";
      scRefundClient->ItemIndex =-1;  //客户
      scRefundCurrency->ItemIndex =0;  //币种
      seRefundEnrate->Text   ="1";  //汇率
      seRefundAmt->Text   ="0.00";
      seRefundCAmt->Text   ="0.00";
      scRefundSettleMode->ItemIndex=-1;
      seRefundSettleCode->Text="";
      seRefundFbbNo->Text="0";
      seRefundFbbCac->Text="";
      memRefundDesc->Text="";  //备注
      scRefundState->ItemIndex   =0;  //状态
      lblRefundUser->Caption=g_sdUserCode;  //操作员
      chkRefundCheck->Checked=false;  //审核标志
      lblRefundChecker->Caption   ="";  //审核人
      lblRefundCheckDate->Caption   ="";  //审核日期
      SetCheckToolbarStatus(false);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::InitEditControl()
{
       ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
       ClientGroup->AddComponent(2,true,true,false, sgRefund,sgRefund->Name);
       ClientGroup->AddComponent(2,false,false,false, seRefundCode,seRefundCode->Name);
       ClientGroup->AddComponent(2,true,true,true, scRefundClient,scRefundClient->Name);
       ClientGroup->AddComponent(2,true,true,true, seRefundFmonth,seRefundFmonth->Name);
       scRefundState->ClearAll();
       scRefundState->AddItems("1-未处理","1");
       scRefundFrom->ClearAll();
       scRefundFrom->AddItems("1-由出纳账生成","1");
       scRefundFrom->AddItems("2-手工录入","2");
       FillComboBox(Handle,scRefundClient,"select ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
       FillComboBox(Handle,scRefundRfr,"select RfrDesc Memo,RfrCode from sdRfr order by RfrCode" ,"Memo","RfrCode");
       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,scRefundCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
       FillComboBox(Handle,scRefundSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::GetDataFromComObject()
{
      seRefundCode->Text   =GetFieldValue("RefundCode");
      sgRefund->LocateGrid(1,GetFieldValue("RefundCode"));
      seRefundFmonth->Text=GetFieldValue("RefundFmonth");  //月份
      deRefundDate->Text   =GetFieldValue("RefundDate");  //日期
      seRefundArrb->Text=GetFieldValue("RefundArrb");  //月份
      scRefundRfr->LocateKey(GetFieldValue("RefundRfr"));
      scRefundFrom->LocateKey(GetFieldValue("RefundFrom"));
      scRefundClient->LocateKey(GetFieldValue("RefundClient"));  //客户
      scRefundCurrency->LocateKey(GetFieldValue("RefundCurrency"));  //币种
      seRefundEnrate->Text   =GetFieldValue("RefundEnrate");  //汇率
      seRefundAmt->Text   =GetFieldValue("RefundAmt");
      seRefundCAmt->Text   =GetFieldValue("RefundCAmt");
      scRefundSettleMode->LocateKey(GetFieldValue("RefundSettleMode"));
      seRefundSettleCode->Text   =GetFieldValue("RefundSettleCode");
      seRefundFbbCac->Text   =GetFieldValue("RefundFbbCac");
      seRefundFbbNo->Text   =GetFieldValue("RefundFbbNo");
      memRefundDesc->Text=GetFieldValue("RefundDesc");  //备注
      scRefundState->LocateKey(GetFieldValue("RefundState"));  //状态
      lblRefundUser->Caption=GetFieldValue("RefundUser");  //操作员
      chkRefundCheck->Checked=(GetFieldValue("RefundCheck")=="1"?true:false);  //审核标志
      lblRefundChecker->Caption   =GetFieldValue("RefundChecker");  //审核人
      lblRefundCheckDate->Caption   =GetFieldValue("RefundCheckDate");  //审核日期
      //根据审核状态,设置工具栏
      if(GetFieldValue("RefundCheck")=="1")
       SetCheckToolbarStatus(true);
      else
       SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::SendDataToComObject()
{
      SetFieldValue("RefundCode",seRefundCode->Text);
      SetFieldValue("RefundFmonth",seRefundFmonth->Text);
      SetFieldValue("RefundDate",deRefundDate->Text);
      SetFieldValue("RefundArrb",seRefundArrb->Text);
      SetFieldValue("RefundRfr",scRefundRfr->ItemData[1]);
      SetFieldValue("RefundFrom",scRefundFrom->ItemData[1]);
      SetFieldValue("RefundClient",scRefundClient->ItemData[1]);
      SetFieldValue("RefundCurrency",scRefundCurrency->ItemData[1]);
      SetFieldValue("RefundEnrate",seRefundEnrate->Text);
      SetFieldValue("RefundAmt",seRefundAmt->Text);
      SetFieldValue("RefundSettleMode",scRefundSettleMode->ItemData[1]);
      SetFieldValue("RefundSettleCode",seRefundSettleCode->Text);
      SetFieldValue("RefundFbbCac",seRefundFbbCac->Text);
      SetFieldValue("RefundFbbNo",seRefundFbbNo->Text);
      SetFieldValue("RefundCAmt",seRefundCAmt->Text);
      SetFieldValue("RefundDesc",memRefundDesc->Text);
      SetFieldValue("RefundState",scRefundState->ItemData[1]);
      SetFieldValue("RefundUser",lblRefundUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::WaitUserInput()
{
      if(seRefundCode->Enabled)
       seRefundCode->SetFocus();
      scRefundFromClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmRefund::GetDataToGrid()
{
      AnsiString  s;
      s = "\t" + GetFieldValue("RefundCode")    +
          "\t" + GetFieldValue("RefundClient")  +
          "\t" + GetFieldValue("RefundArrb")  ;
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgRefund->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgRefund->Row;
          sgRefund->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgRefund->RemoveItem(sgRefund->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgRefund->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgRefund->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------

void __fastcall TfrmRefund::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::sgRefundClick(TObject *Sender)
{
      if (sgRefund->Row > 0)
          comServer->LocateByKey(WideString(sgRefund->TextMatrix[sgRefund->Row][1]));
      if (comServer->RecordCount>0)
          GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::seRefundCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seRefundCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRefund::scRefundCurrencyClick(TObject *Sender)
{
 seRefundEnrate->Text=scRefundCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::scRefundFromClick(TObject *Sender)
{
 if(scRefundFrom->ItemIndex == 0)
 {
  GroupBox1->Enabled=true;
  GroupBox3->Enabled=false;
 }
 else
 {
  GroupBox1->Enabled=false;
  GroupBox3->Enabled=true;
  seRefundFbbCac->Text="";
  seRefundFbbNo->Text="0";
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRefund::seRefundFbbCacButtonClick(TObject *Sender)
{
 if(scRefundFrom->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='"+scRefundClient->ItemData[1]+"' ";
    SqlStr+=" and not Exists (select * from sdRefund where RefundFbbCac=FbbCac and RefundFbbNo=FbbNo) ";
    SqlStr+=" order by FbbDate DESC ";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"出纳账查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
      seRefundFbbCac->Text=p->ColData[1];
      seRefundFbbNo->Text=p->ColData[2];
      seRefundAmt->Text=p->ColData[6];
      scRefundCurrency->LocateKey(p->ColData[7]);
      seRefundEnrate->Text=scRefundCurrency->ItemData[2];
      scRefundSettleMode->LocateKey(p->ColData[8]);
      seRefundSettleCode->Text=p->ColData[9];
    }
    delete p;
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRefund::seRefundArrbButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    SqlStr="007[收款单号][财务月份][登记日期][客户代码][客户名称][出纳账号][流水号] ";
    SqlStr+=" select ArrbCode,ArrbFmonth,ArrbDate,ArrbClient,ClientName,ArrbFbbCac,ArrbFbbNo ";
    SqlStr+=" from sdArrb,sdClient where ArrbClient=ClientCode and ArrbCheck=1 ";
    SqlStr+=" order by ArrbClient,ArrbDate DESC ";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"收款单查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
      seRefundArrb->Text=p->ColData[1];
      scRefundClient->LocateKey(p->ColData[4]);
    }
    delete p;
}
//---------------------------------------------------------------------------


void __fastcall TfrmRefund::scRefundClientChange(TObject *Sender)
{
 seRefundFbbCac->Text="";
 seRefundFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::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,scRefundCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
    }
    break;
   case euSdSettleMode:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
       FillComboBox(Handle,scRefundSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
    }
    break;
   default:
    break;
  }
*/
}
//---------------------------------------------------------------------------
bool __fastcall TfrmRefund::BeforeCheck()
{
  SetFieldValue("RefundCheck",1);
  SetFieldValue("RefundChecker",g_sdUserCode);
  SetFieldValue("RefundCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmRefund::BeforeUnCheck()
{
  SetFieldValue("RefundCheck",0);
  SetFieldValue("RefundChecker","");
  SetFieldValue("RefundCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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