apob.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 314 行
CPP
314 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Apob.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"
TfrmApob *frmApob;
//---------------------------------------------------------------------------
__fastcall TfrmApob::TfrmApob(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{ SetAutoCodeString(seApobCode,"Acm-53");
// AutoCtl=seApobCode;
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmApob::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
//seApobCode->Text ="Acm-53"; //应付单号
scApobFmonth->Text =g_sdFMonth; //月份
deApobDate->Text =g_sdCurDate; //日期
scApobSupply->ItemIndex =-1; //供应商
scApobCurrency->ItemIndex=-1; //币种
seApobEnrate->Text =""; //汇率
seApobAmt->Text =""; //金额
seApobCAmt->Text =""; //核销金额
seApobRAmt->Text =""; //红冲金额
deApobPDate->Text =g_sdCurDate;; //应付日期
chkApobRed->Checked =false; //红字
lbApobUser->Caption =g_sdUserCode; //操作员
chkApobCheck->Checked =false; //审核标志
lbApobChecker->Caption =""; //审核人
lbApobCheckDate->Caption =""; //审核日期
memApobDesc->Text =""; //备注
seApobOCode->Text =""; //原应付单号
scApobState->ItemIndex =0; //状态
lbApobSysDate->Caption =""; //系统日期
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgApob,sgApob->Name);
ClientGroup->AddComponent(2,false,false,false, seApobCode,seApobCode->Name);
ClientGroup->AddComponent(2,true,true,true, scApobFmonth,scApobFmonth->Name);
ClientGroup->AddComponent(2,true,true,true,seApobCAmt,seApobCAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seApobRAmt,seApobRAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seApobOCode,seApobOCode->Name);
FillComboBox(Handle,scApobFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
FillComboBox(Handle,scApobSupply,"SELECT SupplyCode,SupplyName FROM sdSupply where supplycancel=0 order by SupplyCode","SupplyName","SupplyCode");
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,scApobCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
scApobState->AddItems("状态一","1");
scApobState->AddItems("状态二","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::GetDataFromComObject()
{
seApobCode->Text =GetFieldValue("ApobCode");
sgApob->LocateGrid(1,seApobCode->Text);
scApobFmonth->Text = GetFieldValue("ApobFmonth");
deApobDate->Text =GetFieldValue("ApobDate");
scApobSupply->LocateKey(GetFieldValue("ApobSupply"));
scApobSupply->Text = scApobSupply->ItemData[0];
scApobCurrency->LocateKey(GetFieldValue("ApobCurrency"));
scApobCurrency->Text = scApobCurrency->ItemData[0];
seApobEnrate->Text =GetFieldValue("ApobEnrate");
seApobAmt->Text =GetFieldValue("ApobAmt");
seApobCAmt->Text =GetFieldValue("ApobCAmt");
seApobRAmt->Text =GetFieldValue("ApobRAmt");
deApobPDate->Text =GetFieldValue("ApobPDate");
chkApobRed->Checked =(GetFieldValue("ApobRed")=="-1"?true:false);
lbApobUser->Caption=GetFieldValue("ApobUser");
chkApobCheck->Checked=(GetFieldValue("ApobCheck")=="1"?true:false);
if(chkApobCheck->Checked)
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
lbApobChecker->Caption =GetFieldValue("ApobChecker");
lbApobCheckDate->Caption =GetFieldValue("ApobCheckDate");
memApobDesc->Text =GetFieldValue("ApobDesc");
seApobOCode->Text =GetFieldValue("ApobOCode");
scApobState->LocateKey(GetFieldValue("ApobState"));
scApobState->Text =scApobState->ItemData[0];
lbApobSysDate->Caption =GetFieldValue("ApobSysDate");
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::SendDataToComObject()
{
SetFieldValue("ApobCode",seApobCode->Text);
SetFieldValue("ApobFmonth",scApobFmonth->Text);
SetFieldValue("ApobDate",deApobDate->Text);
SetFieldValue("ApobSupply",scApobSupply->ItemData[1]);
SetFieldValue("ApobCurrency",scApobCurrency->ItemData[1]);
SetFieldValue("ApobEnrate",seApobEnrate->Text);
SetFieldValue("ApobAmt",seApobAmt->Text);
SetFieldValue("ApobCAmt",seApobCAmt->Text);
SetFieldValue("ApobRAmt",seApobRAmt->Text);
SetFieldValue("ApobPDate",deApobPDate->Text);
SetFieldValue("ApobRed",(chkApobRed->Checked==true?"-1":"1"));
SetFieldValue("ApobUser",lbApobUser->Caption);
SetFieldValue("ApobCheck",(chkApobCheck->Checked==true?"1":"0"));
SetFieldValue("ApobChecker",lbApobChecker->Caption);
SetFieldValue("ApobDesc",memApobDesc->Text);
SetFieldValue("ApobOCode",seApobOCode->Text);
SetFieldValue("ApobState",scApobState->ItemData[1]);
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::WaitUserInput()
{
seApobCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmApob::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("ApobCode") +
"\t" + GetFieldValue("ApobDate") +
"\t" + GetFieldValue("ApobAmt") +
"\t" + (GetFieldValue("ApobRed")=="-1"?"红":"蓝");
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgApob->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgApob->Row;
sgApob->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgApob->RemoveItem(sgApob->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgApob->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgApob->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::seApobCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seApobCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::sgApobClick(TObject *Sender)
{
if (sgApob->Row > 0)
comServer->LocateByKey(WideString(sgApob->TextMatrix[sgApob->Row][1]));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
switch(MsgSrc)
{
case euSdFc:
if(ShowUpdateMessage(MsgSrc,MsgType))
FillComboBox(Handle,scApobFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
break;
case euSdSupply:
if(ShowUpdateMessage(MsgSrc,MsgType))
FillComboBox(Handle,scApobSupply,"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,scApobCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
}
break;
default:
break;
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::chkApobRedMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(chkApobRed->Checked)
{
seApobOCode->Enabled=true;
scApobSupply->Enabled=false;
scApobCurrency->Enabled=false;
}
else
{
seApobOCode->Enabled=false;
scApobSupply->Enabled=true;
scApobCurrency->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::seApobOCodeButtonClick(TObject *Sender)
{
AnsiString SqlStr;
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
SqlStr="005[应付单号][供应商][币种][汇率][金额]";
SqlStr+=" select APOBCODE,APOBSUPPLY,APOBCURRENCY,APOBENRATE ,APOBAMT from sdAPOB ";
SqlStr+=" where APOBCHECK=1 and APOBRED=1 order by APOBCODE";
p=new TfrmWnQuery(this,"其他应付单单查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seApobOCode->Text=p->ColData[1];
scApobSupply->LocateKey(p->ColData[2]);
scApobSupply->Text=scApobSupply->ItemData[0];
scApobCurrency->LocateKey(p->ColData[3]);
scApobCurrency->Text=scApobCurrency->ItemData[0];
seApobEnrate->Text=p->ColData[4];
seApobAmt->Text=p->ColData[5];
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::scApobCurrencyClick(TObject *Sender)
{
seApobEnrate->Text=scApobCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
bool __fastcall TfrmApob::BeforeCheck()
{
SetFieldValue("ApobCheck",1);
SetFieldValue("ApobChecker",g_sdUserCode);
SetFieldValue("ApobCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmApob::BeforeUnCheck()
{
SetFieldValue("ApobCheck",0);
SetFieldValue("ApobChecker","");
SetFieldValue("ApobCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::SupplyCodeButtonButtonClick(TObject *Sender)
{
if(OpenSupplyForm("")==true)
{
scApobSupply->LocateKey(GetSupplyValue(gtOpenForm,"SupplyCode"));
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?