bcssub.cpp

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

CPP
323
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "BcsSub.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "StdBaseForm"
#pragma resource "*.dfm"
TfrmBcsSub *frmBcsSub;
//---------------------------------------------------------------------------
__fastcall TfrmBcsSub::TfrmBcsSub(TComponent* Owner)
   : TStdBaseForm(Owner)
{
   FRetState="Cancel";
   FBcsVeriry="";
   InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::SetcomServer(TComServer *value)
{
   comServer=value;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::InitEditControl()
{
   FillComboBox(Handle,scBcsSettleMode,"select SettleModeName,SettleModeCode from sdSettleMode order by SettleModeCode",
            "SettleModeName","SettleModeCode");
   FillComboBox(Handle,scBcsUser,"select memo=UserName,CashierCode from sdUser,sdCashier where CashierCode=UserCode order by CashierCode",
            "memo","CashierCode");
   FillEdit(Handle,seBcsCac,"select CacCode,memo=CacCode+space(2)+CacGlkm+'-'+GlkmName from sdCac,sdGlkm where CacGlkm=GlkmCode order by CacCode",
            "memo","CacCode");
   FillComboBox(Handle,scBcsFmonth,"select distinct fbbfmonth from sdfbb","fbbfmonth");

   FillEdit(Handle,seBcsZy,"select NoteBookText,NoteBookCode from  sdNoteBook order by NoteBookCode","NoteBookText","NoteBookCode");//摘要
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::RefreshUpdateData(int MsgSrc,int MsgType)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::ClearControl()
{
   seBcsLine->Text="1";
   scBcsFmonth->LocateKey(g_sdFMonth);

   deBcsDate->Text=g_sdCurDate;
   seBcsCac->ItemIndex=-1;
   scBcsSettleMode->ItemIndex=-1;
   seBcsSettleNo->Text="";
   rbtBcsDir1->Checked=true;
     rbtBcsDir2->Checked=false;
     lbBcsDir1->Font->Color=clRed;
     lbBcsDir2->ParentFont=true;
   seBcsAmt->Text="0.00";
   scBcsUser->LocateKey(g_sdUserCode);
   seBcsZy->ItemIndex=-1;
   chkBcsVeriry->Checked=false;
   seBcsFbbNo->Text="";

}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::GetDataFromComObject()
{
    AnsiString BcsAmtStr;
    if(!GetHeadValue("BcsAmt").IsEmpty())
    {
      BcsAmtStr=GetHeadValue("BcsAmt");
    }
    else
    {
      BcsAmtStr="0";
    }
   seBcsLine->Text=GetHeadValue("BcsLine");
   scBcsFmonth->LocateKey(GetHeadValue("BcsFMonth"));
   deBcsDate->Text=GetHeadValue("BcsDate");
   seBcsCac->LocateKey(GetHeadValue("BcsCac"));
   scBcsSettleMode->LocateKey(GetHeadValue("BcsSettleMode"));
   seBcsSettleNo->Text=GetHeadValue("BcsSettleNo");
   if(GetHeadValue("BcsDir")==1)
   {
     rbtBcsDir1->Checked=true;
     rbtBcsDir2->Checked=false;
     lbBcsDir1->Font->Color=clRed;
     lbBcsDir2->ParentFont=true;
   }
   else
   {
     rbtBcsDir2->Checked=true;
     rbtBcsDir1->Checked=false;
     lbBcsDir2->Font->Color=clRed;
     lbBcsDir1->ParentFont=true;
   }
   seBcsAmt->Text=FormatFloat("#,##0.00",BcsAmtStr.ToDouble());
   scBcsUser->LocateKey(GetHeadValue("BcsUser"));
   seBcsZy->LocateKey(GetHeadValue("BcsZy"));
   chkBcsVeriry->Checked=GetHeadValue("BcsVeriry")=="1";
   seBcsFbbNo->Text=GetHeadValue("BcsFbbNo");
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::SendDataToComObject()
{
   SetFieldValue("BcsCode",seBcsCode->Text);
   SetFieldValue("BcsLine",seBcsLine->Text);
   SetFieldValue("BcsFMonth",scBcsFmonth->ItemData[0]);
   SetFieldValue("BcsDate",deBcsDate->Text);
   SetFieldValue("BcsCac",seBcsCac->ItemData[1]);
   SetFieldValue("BcsSettleMode",scBcsSettleMode->ItemData[1]);
   SetFieldValue("BcsSettleNo",seBcsSettleNo->Text);
   if(rbtBcsDir1->Checked)              
     SetFieldValue("BcsDir","1");
   else
     SetFieldValue("BcsDir","-1");
   SetFieldValue("BcsAmt",seBcsAmt->Text);
   SetFieldValue("BcsUser",scBcsUser->ItemData[1]);
   SetFieldValue("BcsZy",seBcsZy->ItemData[1]);
   SetFieldValue("BcsFbbNo",seBcsFbbNo->Text);//加入出纳日记帐行
   SetFieldValue("BcsVeriry",chkBcsVeriry->Checked?1:0);//加入出纳日记帐行

}
//------------------------------------------------------------------------------
void __fastcall TfrmBcsSub::btOKClick(TObject *Sender)
{
  //新增时判断对帐单号是否有重复
  if(seBcsCode->Enabled==true)//只有在新增单号时才enabled==true
  {
    TComResultSet *RsBcsCode;
    try
    {
      RsBcsCode=new TComResultSet(Handle,g_ClientHandle);
      RsBcsCode->Close();
      RsBcsCode->Open("select distinct BcsCode from sdBcs where BcsCode= "+QuotedStr(seBcsCode->Text),"BcsCode");
      if(RsBcsCode->RecordCount>0)
      {
         ShowMessageWindow("该银行对帐单号重复!",mwsWarning);
         return;
      }
    }
    __finally
    {
      if(RsBcsCode) delete RsBcsCode;
    }
  }

  if(FCurState!=caNormal)
  {
    try
    { FBcsCode=seBcsCode->Text;
      SendDataToComObject();
    }
    catch(Exception &e)
    {
      throw Exception(e.Message);
    }
    FRetState="OK";
  }
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::btCancelClick(TObject *Sender)
{
  FRetState="Cancel";
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::FormShow(TObject *Sender)
{
   if(FCurState==caNormal || FCurState==caEditDetail)
   {
     if(FCurState==caEditDetail && FBcsVeriry==0)
     {
       fpBcsSub->Enabled=true;
       scBcsFmonth->Enabled=false;
       bbnAddBcsCode->Enabled=false;//EDit时不能新增
     }
     else //browse state or verify=1
     {
       fpBcsSub->Enabled=false;
     }  
     GetDataFromComObject();
   }
   if(FCurState==caAddDetail)
   {
     ClearControl();
     seBcsLine->Text=FMaxBcsLine;
     fpBcsSub->Enabled=true;
     chkBcsVeriry->Enabled=true;
     bbnAddBcsCode->Enabled=true;
   }
   seBcsCode->Text=FBcsCode;//主窗体传入的值
   seBcsCode->Enabled=false;
   //---------
    if(Trim(FBcsCode).IsEmpty())//空单时,新增单头
    {
      seBcsCode->Enabled=true;
    }
   //----------
}
//---------------------------------------------------------------------------
void __fastcall TfrmBcsSub::seBcsCacButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    SqlStr="004[帐户代码][科目代码][科目名称][开户银行]";
    SqlStr+="select CacCode,CacGlkm,GlkmName,CacBankName from sdCac,sdGlkm where CacGlkm=GlkmCode order by CacCode";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"出纳帐户资料查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
      seBcsCac->LocateKey(p->ColData[1]);
    }
    delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmBcsSub::bbnAddBcsCodeClick(TObject *Sender)
{
  ClearControl();
  //新增时enable control
  seBcsCode->Enabled=true;
  seBcsLine->Text="1";//新单的第一行

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

void __fastcall TfrmBcsSub::seBcsZyButtonClick(TObject *Sender)
{
   AnsiString SqlStr;
   SqlStr="003[短语简码][所属模块][短语描述]";
   SqlStr+="select NoteBookCode,NotebookClassName=NotebookClassID+' - '+(select ClassName from sdClass where ClassID=NotebookClassID),NoteBookText from  sdNoteBook order by NoteBookCode";
   TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"摘要查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
    seBcsZy->LocateKey(Trim(p->ColData[1]));
    }
    delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmBcsSub::FormClose(TObject *Sender,
      TCloseAction &Action)
{
   if(FCurState!=caNormal&&FRetState=="Cancel")
   {
     if(ShowMessageWindow("是否取消本次操作?",mwsConfirmation)==IDYES)
     { FRetState="Cancel";
       TStdBaseForm::Close();
     }
     else
     {
       Action=caNone;
     }
   }
   else
   {
     TStdBaseForm::Close();
   }    
}
//---------------------------------------------------------------------------

void __fastcall TfrmBcsSub::seBcsFbbNoButtonClick(TObject *Sender)
{
//从sdFbb.fbbno取数据,在当前的fmonth,fbbcac限定下
   AnsiString SqlStr;
   if(Trim(seBcsCac->Text).IsEmpty()||Trim(scBcsFmonth->Text).IsEmpty())//必要条件不能为空
   {
    ShowMessageWindow("财务月份和帐号不能为空",mwsConfirmation);
   }
   SqlStr="004[出纳帐号][财务月份][流水号][摘要]";
   SqlStr+="select fbbcac,fbbfmonth,fbbno,fbbzymemo = (select NoteBookText from sdNotebook where NoteBookCode =fbbzy) from sdfbb where fbbcac = "+QuotedStr(seBcsCac->ItemData[1])+" and fbbfmonth = "+QuotedStr(scBcsFmonth->ItemData[0]);
   TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"摘要查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
    seBcsFbbNo->Text=(Trim(p->ColData[3]));
    }
    delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmBcsSub::rbtBcsDir1Click(TObject *Sender)
{
  lbBcsDir1->Font->Color=clRed;
  lbBcsDir2->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------

void __fastcall TfrmBcsSub::rbtBcsDir2Click(TObject *Sender)
{
  lbBcsDir2->Font->Color=clRed;
  lbBcsDir1->Font->Color=clWindowText;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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