arrb.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 292 行

CPP
292
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Arrb.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"
TfrmArrb *frmArrb;
//---------------------------------------------------------------------------
__fastcall TfrmArrb::TfrmArrb(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seArrbCode,"Acm-63");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seArrbCode->Text   ="";
      seArrbFmonth->Text=g_sdFMonth;  //月份
      deArrbDate->Text   =g_sdCurDate;  //日期
      scArrbFrom->ItemIndex =0;
      scArrbRbt->ItemIndex =0;
      scArrbClient->ItemIndex =0;  //客户
      scArrbCurrency->ItemIndex =0;  //币种
      seArrbEnrate->Text   ="1";  //汇率
      seArrbAmt->Text   ="0.00";
      seArrbCAmt->Text   ="0.00";
      seArrbBAmt->Text   ="0.00";
      scArrbSettleMode->ItemIndex=-1;
      seArrbSettleCode->Text="";
      seArrbFbbNo->Text="0";
      seArrbFbbCac->Text="";
      memArrbDesc->Text="";  //备注
      scArrbState->ItemIndex   =0;  //状态
      lblArrbUser->Caption=g_sdUserCode;  //操作员
      chkArrbCheck->Checked=false;  //审核标志
      lblArrbChecker->Caption   ="";  //审核人
      lblArrbCheckDate->Caption   ="";  //审核日期
      SetCheckToolbarStatus(false);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::InitEditControl()
{
       ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
       ClientGroup->AddComponent(2,true,true,false, sgArrb,sgArrb->Name);
       ClientGroup->AddComponent(2,false,false,false, seArrbCode,seArrbCode->Name);
       ClientGroup->AddComponent(2,true,true,true, seArrbFmonth,seArrbFmonth->Name);
       scArrbState->ClearAll();
       scArrbState->AddItems("1-未处理","1");
       scArrbFrom->ClearAll();
       scArrbFrom->AddItems("1-由出纳账生成","1");
       scArrbFrom->AddItems("2-手工录入","2");
       FillComboBox(Handle,scArrbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
       FillComboBox(Handle,scArrbRbt,"select RbtName Memo,RbtCode from sdRbt order by RbtCode" ,"Memo","RbtCode");
       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,scArrbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
       FillComboBox(Handle,scArrbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::GetDataFromComObject()
{
      seArrbCode->Text   =GetFieldValue("ArrbCode");
      sgArrb->LocateGrid(1,GetFieldValue("ArrbCode"));
      seArrbFmonth->Text=GetFieldValue("ArrbFmonth");  //月份
      deArrbDate->Text   =GetFieldValue("ArrbDate");  //日期
      scArrbRbt->LocateKey(GetFieldValue("ArrbRbt"));
      scArrbFrom->LocateKey(GetFieldValue("ArrbFrom"));
      scArrbClient->LocateKey(GetFieldValue("ArrbClient"));  //客户
      scArrbCurrency->LocateKey(GetFieldValue("ArrbCurrency"));  //币种
      seArrbEnrate->Text   =GetFieldValue("ArrbEnrate");  //汇率
      seArrbAmt->Text   =GetFieldValue("ArrbAmt");
      seArrbCAmt->Text   =GetFieldValue("ArrbCAmt");
      seArrbBAmt->Text   =GetFieldValue("ArrbBAmt");
      scArrbSettleMode->LocateKey(GetFieldValue("ArrbSettleMode"));
      seArrbSettleCode->Text   =GetFieldValue("ArrbSettleCode");
      seArrbFbbCac->Text   =GetFieldValue("ArrbFbbCac");
      seArrbFbbNo->Text   =GetFieldValue("ArrbFbbNo");
      memArrbDesc->Text=GetFieldValue("ArrbDesc");  //备注
      scArrbState->LocateKey(GetFieldValue("ArrbState"));  //状态
      lblArrbUser->Caption=GetFieldValue("ArrbUser");  //操作员
      chkArrbCheck->Checked=(GetFieldValue("ArrbCheck")=="1"?true:false);  //审核标志
      lblArrbChecker->Caption   =GetFieldValue("ArrbChecker");  //审核人
      lblArrbCheckDate->Caption   =GetFieldValue("ArrbCheckDate");  //审核日期
      //根据审核状态,设置工具栏
      if(GetFieldValue("ArrbCheck")=="1")
       SetCheckToolbarStatus(true);
      else
       SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::SendDataToComObject()
{
      SetFieldValue("ArrbCode",seArrbCode->Text);
      SetFieldValue("ArrbFmonth",seArrbFmonth->Text);
      SetFieldValue("ArrbDate",deArrbDate->Text);
      SetFieldValue("ArrbRbt",scArrbRbt->ItemData[1]);
      SetFieldValue("ArrbFrom",scArrbFrom->ItemData[1]);
      SetFieldValue("ArrbClient",scArrbClient->ItemData[1]);
      SetFieldValue("ArrbCurrency",scArrbCurrency->ItemData[1]);
      SetFieldValue("ArrbEnrate",seArrbEnrate->Text);
      SetFieldValue("ArrbAmt",seArrbAmt->Text);
      SetFieldValue("ArrbSettleMode",scArrbSettleMode->ItemData[1]);
      SetFieldValue("ArrbSettleCode",seArrbSettleCode->Text);
      SetFieldValue("ArrbFbbCac",seArrbFbbCac->Text);
      SetFieldValue("ArrbFbbNo",seArrbFbbNo->Text);
      SetFieldValue("ArrbBAmt",seArrbBAmt->Text);
      SetFieldValue("ArrbCAmt",seArrbCAmt->Text);
      SetFieldValue("ArrbDesc",memArrbDesc->Text);
      SetFieldValue("ArrbState",scArrbState->ItemData[1]);
      SetFieldValue("ArrbUser",lblArrbUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::WaitUserInput()
{
      if(seArrbCode->Enabled)
       seArrbCode->SetFocus();
      scArrbFromClick(NULL); 
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArrb::GetDataToGrid()
{
      scArrbRbt->LocateKey(GetFieldValue("ArrbRbt"));  //票据类型
      AnsiString  s;
      s = "\t" + GetFieldValue("ArrbCode")    +
          "\t" + GetFieldValue("ArrbClient")  +
          "\t" + scArrbRbt->ItemData[0]  ;
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgArrb->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgArrb->Row;
          sgArrb->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgArrb->RemoveItem(sgArrb->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgArrb->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgArrb->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrb::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::sgArrbClick(TObject *Sender)
{
      if (sgArrb->Row > 0)
          comServer->LocateByKey(WideString(sgArrb->TextMatrix[sgArrb->Row][1]));
      if (comServer->RecordCount>0)
          GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::seArrbCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seArrbCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrb::scArrbCurrencyClick(TObject *Sender)
{
 seArrbEnrate->Text=scArrbCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::scArrbFromClick(TObject *Sender)
{
 if(scArrbFrom->ItemIndex == 0)
 {
  GroupBox1->Enabled=true;
  GroupBox3->Enabled=false;
 }
 else
 {
  GroupBox1->Enabled=false;
  GroupBox3->Enabled=true;
  seArrbFbbCac->Text="";
  seArrbFbbNo->Text="0";
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrb::seArrbFbbCacButtonClick(TObject *Sender)
{
 if(scArrbFrom->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='"+scArrbClient->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)
    {
      seArrbFbbCac->Text=p->ColData[1];
      seArrbFbbNo->Text=p->ColData[2];
      seArrbAmt->Text=p->ColData[6];
      scArrbCurrency->LocateKey(p->ColData[7]);
      seArrbEnrate->Text=scArrbCurrency->ItemData[2];
      scArrbSettleMode->LocateKey(p->ColData[8]);
      seArrbSettleCode->Text=p->ColData[9];
    }
    delete p;
 }
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrb::scArrbClientChange(TObject *Sender)
{
 seArrbFbbCac->Text="";
 seArrbFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::RefreshUpdateData(int MsgSrc,int MsgType)
{
  
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrb::BeforeCheck()
{
  SetFieldValue("ArrbCheck",1);
  SetFieldValue("ArrbChecker",g_sdUserCode);
  SetFieldValue("ArrbCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrb::BeforeUnCheck()
{
  SetFieldValue("ArrbCheck",0);
  SetFieldValue("ArrbChecker","");
  SetFieldValue("ArrbCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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