arnr.cpp

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

CPP
254
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Arnr.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"
TfrmArnr *frmArnr;
//---------------------------------------------------------------------------
__fastcall TfrmArnr::TfrmArnr(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 SetAutoCodeString(seArnrCode,"Acm-65");
 IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seArnrCode->Text   ="";  //票据编码
      seArnrFmonth->Text=g_sdFMonth;  //月份
      deArnrDate->Text   =g_sdCurDate;  //日期
      scArnrCant->ItemIndex =0;  //票据类型
      scArnrClient->ItemIndex =0;  //客户
      scArnrCurrency->ItemIndex =0;  //币种
      seArnrEnrate->Text   ="1";  //汇率
      seArnrAmt->Text   ="0.00";  //票面金额
      seArnrNiRate->Text   ="0.00";  //票面利率
      seArnrEiRate->Text   ="0.00";  //到期利率
      deArnrSdate->Text ="";  //签发日期
      deArnrEdate->Text ="";  //到期日期
      seArnrTerm->Text="0";  //收款期限
      seArnrCAmt->Text="0.00";  //核销金额
      memArnrDesc->Text="";  //备注
      scArnrState->ItemIndex   =0;  //状态
      lblArnrUser->Caption=g_sdUserCode;  //操作员
      chkArnrCheck->Checked=false;  //审核标志
      lblArnrChecker->Caption   ="";  //审核人
      lblArnrCheckDate->Caption   ="";  //审核日期
      SetCheckToolbarStatus(false);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::InitEditControl()
{
       ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
       ClientGroup->AddComponent(2,true,true,false, sgArnr,sgArnr->Name);
       ClientGroup->AddComponent(2,false,false,false, seArnrCode,seArnrCode->Name);
       ClientGroup->AddComponent(2,true,true,true, seArnrFmonth,seArnrFmonth->Name);
       scArnrState->ClearAll();
       scArnrState->AddItems("1-未处理","1");
       scArnrState->AddItems("2-已收款","2");
       scArnrState->AddItems("3-已贴现","3");
       scArnrState->AddItems("4-已背书","4");
       scArnrState->AddItems("5-已退回","5");
       FillComboBox(Handle,scArnrClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
       FillComboBox(Handle,scArnrCant,"select CantCode+'-'+CantName Memo,CantCode from sdCant order by CantCode" ,"Memo","CantCode");
       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,scArnrCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::GetDataFromComObject()
{
      seArnrCode->Text   =GetFieldValue("ArnrCode");  //票据编码
      sgArnr->LocateGrid(1,GetFieldValue("ArnrCode"));
      seArnrFmonth->Text=GetFieldValue("ArnrFmonth");  //月份
      deArnrDate->Text   =GetFieldValue("ArnrDate");  //日期
      scArnrCant->LocateKey(GetFieldValue("ArnrCant"));  //票据类型
      scArnrClient->LocateKey(GetFieldValue("ArnrClient"));  //客户
      scArnrCurrency->LocateKey(GetFieldValue("ArnrCurrency"));  //币种
      seArnrEnrate->Text   =GetFieldValue("ArnrEnrate");  //汇率
      seArnrAmt->Text   =GetFieldValue("ArnrAmt");  //票面金额
      seArnrNiRate->Text   =GetFieldValue("ArnrNiRate");  //票面利率
      seArnrEiRate->Text   =GetFieldValue("ArnrEiRate");  //到期利率
      deArnrSdate->Text =GetFieldValue("ArnrSdate");  //签发日期
      deArnrEdate->Text =GetFieldValue("ArnrEdate");  //到期日期
      seArnrTerm->Text=GetFieldValue("ArnrTerm");  //收款期限
      seArnrCAmt->Text=GetFieldValue("ArnrCAmt");  //核销金额
      memArnrDesc->Text=GetFieldValue("ArnrDesc");  //备注
      scArnrState->LocateKey(GetFieldValue("ArnrState"));  //状态
      lblArnrUser->Caption=GetFieldValue("ArnrUser");  //操作员
      chkArnrCheck->Checked=(GetFieldValue("ArnrCheck")=="1"?true:false);  //审核标志
      lblArnrChecker->Caption   =GetFieldValue("ArnrChecker");  //审核人
      lblArnrCheckDate->Caption   =GetFieldValue("ArnrCheckDate");  //审核日期
      //根据审核状态,设置工具栏
      if(GetFieldValue("ArnrCheck")=="1")
       SetCheckToolbarStatus(true);
      else
       SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::SendDataToComObject()
{
      SetFieldValue("ArnrCode",seArnrCode->Text);
      SetFieldValue("ArnrFmonth",seArnrFmonth->Text);
      SetFieldValue("ArnrDate",deArnrDate->Text);
      SetFieldValue("ArnrCant",scArnrCant->ItemData[1]);
      SetFieldValue("ArnrClient",scArnrClient->ItemData[1]);
      SetFieldValue("ArnrCurrency",scArnrCurrency->ItemData[1]);
      SetFieldValue("ArnrEnrate",seArnrEnrate->Text);
      SetFieldValue("ArnrAmt",seArnrAmt->Text);
      SetFieldValue("ArnrNiRate",seArnrNiRate->Text);
      SetFieldValue("ArnrEiRate",seArnrEiRate->Text);
      SetFieldValue("ArnrSdate",deArnrSdate->Text);
      SetFieldValue("ArnrEdate",deArnrEdate->Text);
      SetFieldValue("ArnrTerm",seArnrTerm->Text);
      SetFieldValue("ArnrCAmt",seArnrCAmt->Text);
      SetFieldValue("ArnrDesc",memArnrDesc->Text);
      SetFieldValue("ArnrState",scArnrState->ItemData[1]);
      SetFieldValue("ArnrUser",lblArnrUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::WaitUserInput()
{
      if(seArnrCode->Enabled)
       seArnrCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArnr::GetDataToGrid()
{
      scArnrCant->LocateKey(GetFieldValue("ArnrCant"));  //票据类型
      AnsiString  s;
      s = "\t" + GetFieldValue("ArnrCode")    +
          "\t" + GetFieldValue("ArnrClient")  +
          "\t" + scArnrCant->ItemData[1]  ;
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgArnr->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgArnr->Row;
          sgArnr->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgArnr->RemoveItem(sgArnr->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgArnr->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgArnr->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------

void __fastcall TfrmArnr::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::sgArnrClick(TObject *Sender)
{
      if (sgArnr->Row > 0)
          comServer->LocateByKey(WideString(sgArnr->TextMatrix[sgArnr->Row][1]));
      if (comServer->RecordCount>0)
          GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::seArnrCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seArnrCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmArnr::scArnrCurrencyClick(TObject *Sender)
{
 seArnrEnrate->Text=scArnrCurrency->ItemData[2];
}
//---------------------------------------------------------------------------

void __fastcall TfrmArnr::deArnrSdateExit(TObject *Sender)
{
 TDate dStart,dEnd;
 int iTerm;
 try
 {
   if(deArnrSdate->Text != "" && deArnrEdate->Text != "")
   {
    dStart=StrToDateTime(deArnrSdate->Text);
    dEnd=StrToDateTime(deArnrEdate->Text);
    iTerm=dEnd-dStart;
    if(iTerm < 0)
     throw Exception("到期日期不能早于签发日期");
    seArnrTerm->Text=IntToStr(iTerm);
   }
   else
    seArnrTerm->Text="0";
 }
 catch(Exception &e)
 {
  throw Exception("日期计算出现错误"+e.Message);
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArnr::RefreshUpdateData(int MsgSrc,int MsgType)
{
  
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArnr::BeforeCheck()
{
  SetFieldValue("ArnrCheck",1);
  SetFieldValue("ArnrChecker",g_sdUserCode);
  SetFieldValue("ArnrCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArnr::BeforeUnCheck()
{
  SetFieldValue("ArnrCheck",0);
  SetFieldValue("ArnrChecker","");
  SetFieldValue("ArnrCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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