appb.cpp

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

CPP
320
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "AppbGen.h"
#include "Appb.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmAppb *frmAppb;
//---------------------------------------------------------------------------
__fastcall TfrmAppb::TfrmAppb(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{   SetAutoCodeString(seAppbCode,"Acm-54");
    m_chWnd=chWnd;
    m_MidCode=MidCode;
    m_WhereStr=WhereStr;
   // AutoCtl=seAppbCode;
    IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seAppbCode->Text         ="Acm-54";  //付款单号
      scAppbFmonth->Text       =g_sdFMonth;  //月份
      deAppbDate->Text         =g_sdCurDate;  //日期
      scAppbSupply->ItemIndex  =-1;  //供应商
      scAppbCurrency->ItemIndex=-1;  //币种
      seAppbEnrate->Text       ="";  //汇率
      seAppbAmt->Text          ="";  //金额
      scAppbSettleMode->ItemIndex =-1;  //结算方式
      seAppbSettleCode->Text   ="";  //结算号
      scAppbType->ItemIndex    =-1;  //付款类型
      memAppbDesc->Text        ="";  //备注
      seAppbCAmt->Text         ="";  //核销金额
      seAppbFbbNo->Text        ="";  //出纳号
      scAppbFbbCac->ItemIndex  =-1;  //帐号
      scAppbFrom->ItemIndex    =0;  //来源
      scAppbState->ItemIndex   =0;  //状态
      lbAppbUser->Caption      =g_sdUserCode;  //操作员
      chkAppbCheck->Checked    =false;  //审核标志
      lbAppbChecker->Caption   ="";  //审核员
      lbAppbCheckDate->Caption ="";  //审核日期
      lbAppbSysDate->Caption   ="";  //系统日期
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, sgAppb,sgAppb->Name);
    ClientGroup->AddComponent(2,false,false,false, seAppbCode,seAppbCode->Name);
    ClientGroup->AddComponent(2,true,true,true, scAppbFmonth,scAppbFmonth->Name);
    ClientGroup->AddComponent(2,true,true,true,scAppbFrom,scAppbFrom->Name);
    ClientGroup->AddComponent(2,true,true,true,seAppbCAmt,seAppbCAmt->Name);

    FillComboBox(Handle,scAppbFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
    FillComboBox(Handle,scAppbSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode","SupplyName","SupplyCode");
    FillComboBox(Handle,scAppbFbbCac,"SELECT CACBANKNAME,CACCODE FROM sdCac  where CACCANCEL=0  order by CACCODE","CACBANKNAME","CACCODE");
    AnsiString sSql;
    sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
    sSql+=" where currencycode*=ratecurrency and ";
    sSql+=" ratefmonth='"+g_sdPMonth+"'";
    FillComboBox(Handle,scAppbCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
    FillComboBox(Handle,scAppbType,"select Pbtname,Pbtcode from sdPbt","Pbtname","Pbtcode");
    FillComboBox(Handle,scAppbSettleMode,"select SettleModename,SettleModecode from sdSettleMode","SettleModename","SettleModecode");

    scAppbFrom->AddItems("手 工","1");
    scAppbFrom->AddItems("生 成","2");

    scAppbState->AddItems("状态一","1");
    scAppbState->AddItems("状态二","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::GetDataFromComObject()
{
      seAppbCode->Text   =GetFieldValue("AppbCode");
      sgAppb->LocateGrid(1,seAppbCode->Text);
      scAppbFmonth->Text  = GetFieldValue("AppbFmonth");
      deAppbDate->Text   =GetFieldValue("AppbDate");
      scAppbSupply->LocateKey(GetFieldValue("AppbSupply"));
      scAppbSupply->Text  = scAppbSupply->ItemData[0];
      scAppbCurrency->LocateKey(GetFieldValue("AppbCurrency"));
      scAppbCurrency->Text  = scAppbCurrency->ItemData[0];
      seAppbEnrate->Text   =GetFieldValue("AppbEnrate");
      seAppbAmt->Text   =GetFieldValue("AppbAmt");
      scAppbSettleMode->LocateKey(GetFieldValue("AppbSettleMode"));
      scAppbSettleMode->Text  = scAppbSettleMode->ItemData[0];
      seAppbSettleCode->Text   =GetFieldValue("AppbSettleCode");
      scAppbType->LocateKey(GetFieldValue("AppbType"));
      scAppbType->Text  = scAppbType->ItemData[0];
      memAppbDesc->Text   =GetFieldValue("AppbDesc");
      seAppbCAmt->Text   =GetFieldValue("AppbCAmt");
      seAppbFbbNo->Text   =GetFieldValue("AppbFbbNo");
      scAppbFbbCac->LocateKey(GetFieldValue("AppbFbbCac"));
      scAppbFbbCac->Text   =scAppbFbbCac->ItemData[0];
      scAppbFrom->LocateKey(GetFieldValue("AppbFrom"));
      scAppbFrom->Text   =scAppbFrom->ItemData[0];
      scAppbState->LocateKey(GetFieldValue("AppbState"));
      scAppbState->Text   =scAppbState->ItemData[0];
       lbAppbUser->Caption = GetFieldValue("AppbUser");
      chkAppbCheck->Checked=(GetFieldValue("AppbCheck")=="1"?true:false);
      if(chkAppbCheck->Checked)
        SetCheckToolbarStatus(true);
      else
        SetCheckToolbarStatus(false);
      lbAppbChecker->Caption   =GetFieldValue("AppbChecker");
      lbAppbCheckDate->Caption   =GetFieldValue("AppbCheckDate");
      lbAppbSysDate->Caption   =GetFieldValue("AppbSysDate");
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::SendDataToComObject()
{
      SetFieldValue("AppbCode",seAppbCode->Text);
      SetFieldValue("AppbFmonth",scAppbFmonth->Text);
      SetFieldValue("AppbDate",deAppbDate->Text);
      SetFieldValue("AppbSupply",scAppbSupply->ItemData[1]);
      SetFieldValue("AppbCurrency",scAppbCurrency->ItemData[1]);
      SetFieldValue("AppbEnrate",seAppbEnrate->Text);
      SetFieldValue("AppbAmt",seAppbAmt->Text);
      SetFieldValue("AppbFrom",scAppbFrom->ItemData[1]);
      SetFieldValue("AppbSettleMode",scAppbSettleMode->ItemData[1]);
      SetFieldValue("AppbSettleCode",seAppbSettleCode->Text);
      SetFieldValue("AppbType",scAppbType->ItemData[1]);
      SetFieldValue("AppbDesc",memAppbDesc->Text);
      SetFieldValue("AppbCAmt",seAppbCAmt->Text);
      SetFieldValue("AppbFbbCac",scAppbFbbCac->ItemData[1]);
      SetFieldValue("AppbFbbNo",seAppbFbbNo->Text);
      SetFieldValue("AppbState",scAppbState->ItemData[1]);
      SetFieldValue("AppbUser",lbAppbUser->Caption);
      SetFieldValue("AppbCheck",(chkAppbCheck->Checked==true?"1":"0"));
      SetFieldValue("AppbChecker",lbAppbChecker->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::WaitUserInput()
{
      seAppbCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmAppb::GetDataToGrid()
{
      AnsiString  s;
      s = "\t" + GetFieldValue("AppbCode")    +
          "\t" + GetFieldValue("AppbDate")    +
           "\t" + GetFieldValue("AppbAmt")    +
          "\t" + GetFieldValue("AppbCAmt")   ;
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgAppb->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgAppb->Row;
          sgAppb->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgAppb->RemoveItem(sgAppb->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgAppb->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgAppb->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::seAppbCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
      if(Key==13 && CurrentState==caNormal)
      {
       comServer->LocateByKey(WideString(seAppbCode->Text));
       GetDataFromComObject();
      }

}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::sgAppbClick(TObject *Sender)
{
      if (sgAppb->Row > 0)
          comServer->LocateByKey(WideString(sgAppb->TextMatrix[sgAppb->Row][1]));
      if (!comServer->Eof)
       GetDataFromComObject();

}
//---------------------------------------------------------------------------

void __fastcall TfrmAppb::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
   switch(MsgSrc)
   {
     case euSdFc:
     if(ShowUpdateMessage(MsgSrc,MsgType))
       FillComboBox(Handle,scAppbFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
     break;
     case euSdSupply:
     if(ShowUpdateMessage(MsgSrc,MsgType))
       FillComboBox(Handle,scAppbSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode","SupplyName","SupplyCode");
     break;
     case euSdCurrency:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
       AnsiString sSql;
       sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
       sSql+=" where currencycode*=ratecurrency and ";
       sSql+=" ratefmonth='"+g_sdPMonth+"'";
       FillComboBox(Handle,scAppbCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
     }
     break;
     case euSdPbt:
     if(ShowUpdateMessage(MsgSrc,MsgType))
       FillComboBox(Handle,scAppbType,"select Pbtname,Pbtcode from sdPbt","Pbtname","Pbtcode");
     break;
     case euSdSettleMode:
     if(ShowUpdateMessage(MsgSrc,MsgType))
       FillComboBox(Handle,scAppbSettleMode,"select SettleModename,SettleModecode from sdSettleMode","SettleModename","SettleModecode");
     break;
     default:
     break;

   }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::GenrateDoc()
{
    int FCurNo,FRecordCount;
    FCurNo=comServer->CurRecNo;
    FRecordCount=comServer->RecordCount;
    StartWaitForm("正在启动生成界面");
    TfrmAppbGen *p=new TfrmAppbGen(this,m_chWnd,m_MidCode,m_WhereStr);
    try
    {
      p->GetComObject(comServer);
      EndWaitForm();
      p->ShowModal();
      comServer->LocateByIndex(FCurNo);
      if(FRecordCount<comServer->RecordCount)
        comServer->MoveNext();
      GetDataFromComObject();
    }
    __finally
    {
      delete p;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::scAppbCurrencyClick(TObject *Sender)
{
   seAppbEnrate->Text=scAppbCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmAppb::muEditDetailClick(TObject *Sender)
{
   if(scAppbFrom->ItemData[1]=="2")
     throw Exception("生成单据不可以修改!");
   TRecBaseForm::muEditDetailClick(Sender);
}
//---------------------------------------------------------------------------
bool __fastcall TfrmAppb::BeforeCheck()
{
  SetFieldValue("AppbCheck",1);
  SetFieldValue("AppbChecker",g_sdUserCode);
  SetFieldValue("AppbCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmAppb::BeforeUnCheck()
{
  SetFieldValue("AppbCheck",0);
  SetFieldValue("AppbChecker","");
  SetFieldValue("AppbCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmAppb::SupplyCodeButtonButtonClick(TObject *Sender)
{
if(OpenSupplyForm("")==true)
    {
     scAppbSupply->LocateKey(GetSupplyValue(gtOpenForm,"SupplyCode"));
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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