arnr.cpp
来自「科思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 + -
显示快捷键?