prerb.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 317 行
CPP
317 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PreRb.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"
TfrmPreRb *frmPreRb;
//---------------------------------------------------------------------------
__fastcall TfrmPreRb::TfrmPreRb(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(sePreRbCode,"Acm-64");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
sePreRbCode->Text ="";
sePreRbFmonth->Text=g_sdFMonth; //月份
dePreRbDate->Text =g_sdCurDate; //日期
scPreRbFrom->ItemIndex =0;
scPreRbClient->ItemIndex =0; //客户
scPreRbCurrency->ItemIndex =0; //币种
sePreRbEnrate->Text ="1"; //汇率
sePreRbAmt->Text ="0.00";
sePreRbCAmt->Text ="0.00";
sePreRbBAmt->Text ="0.00";
scPreRbSettleMode->ItemIndex=-1;
sePreRbSettleCode->Text="";
sePreRbFbbNo->Text="0";
sePreRbFbbCac->Text="";
memPreRbDesc->Text=""; //备注
scPreRbState->ItemIndex =0; //状态
lblPreRbUser->Caption=g_sdUserCode; //操作员
chkPreRbCheck->Checked=false; //审核标志
lblPreRbChecker->Caption =""; //审核人
lblPreRbCheckDate->Caption =""; //审核日期
SetCheckToolbarStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgPreRb,sgPreRb->Name);
ClientGroup->AddComponent(2,false,false,false, sePreRbCode,sePreRbCode->Name);
ClientGroup->AddComponent(2,true,true,true, sePreRbFmonth,sePreRbFmonth->Name);
scPreRbState->ClearAll();
scPreRbState->AddItems("1-未处理","1");
scPreRbFrom->ClearAll();
scPreRbFrom->AddItems("1-由出纳账生成","1");
scPreRbFrom->AddItems("2-手工录入","2");
FillComboBox(Handle,scPreRbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
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,scPreRbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
FillComboBox(Handle,scPreRbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::GetDataFromComObject()
{
sePreRbCode->Text =GetFieldValue("PreRbCode");
sgPreRb->LocateGrid(1,GetFieldValue("PreRbCode"));
sePreRbFmonth->Text=GetFieldValue("PreRbFmonth"); //月份
dePreRbDate->Text =GetFieldValue("PreRbDate"); //日期
scPreRbFrom->LocateKey(GetFieldValue("PreRbFrom"));
scPreRbClient->LocateKey(GetFieldValue("PreRbClient")); //客户
scPreRbCurrency->LocateKey(GetFieldValue("PreRbCurrency")); //币种
sePreRbEnrate->Text =GetFieldValue("PreRbEnrate"); //汇率
sePreRbAmt->Text =GetFieldValue("PreRbAmt");
sePreRbCAmt->Text =GetFieldValue("PreRbCAmt");
sePreRbBAmt->Text =GetFieldValue("PreRbBAmt");
scPreRbSettleMode->LocateKey(GetFieldValue("PreRbSettleMode"));
sePreRbSettleCode->Text =GetFieldValue("PreRbSettleCode");
sePreRbFbbCac->Text =GetFieldValue("PreRbFbbCac");
sePreRbFbbNo->Text =GetFieldValue("PreRbFbbNo");
memPreRbDesc->Text=GetFieldValue("PreRbDesc"); //备注
scPreRbState->LocateKey(GetFieldValue("PreRbState")); //状态
lblPreRbUser->Caption=GetFieldValue("PreRbUser"); //操作员
chkPreRbCheck->Checked=(GetFieldValue("PreRbCheck")=="1"?true:false); //审核标志
lblPreRbChecker->Caption =GetFieldValue("PreRbChecker"); //审核人
lblPreRbCheckDate->Caption =GetFieldValue("PreRbCheckDate"); //审核日期
//根据审核状态,设置工具栏
if(GetFieldValue("PreRbCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::SendDataToComObject()
{
SetFieldValue("PreRbCode",sePreRbCode->Text);
SetFieldValue("PreRbFmonth",sePreRbFmonth->Text);
SetFieldValue("PreRbDate",dePreRbDate->Text);
SetFieldValue("PreRbFrom",scPreRbFrom->ItemData[1]);
SetFieldValue("PreRbClient",scPreRbClient->ItemData[1]);
SetFieldValue("PreRbCurrency",scPreRbCurrency->ItemData[1]);
SetFieldValue("PreRbEnrate",sePreRbEnrate->Text);
SetFieldValue("PreRbAmt",sePreRbAmt->Text);
SetFieldValue("PreRbSettleMode",scPreRbSettleMode->ItemData[1]);
SetFieldValue("PreRbSettleCode",sePreRbSettleCode->Text);
SetFieldValue("PreRbFbbCac",sePreRbFbbCac->Text);
SetFieldValue("PreRbFbbNo",sePreRbFbbNo->Text);
SetFieldValue("PreRbBAmt",sePreRbBAmt->Text);
SetFieldValue("PreRbCAmt",sePreRbCAmt->Text);
SetFieldValue("PreRbDesc",memPreRbDesc->Text);
SetFieldValue("PreRbState",scPreRbState->ItemData[1]);
SetFieldValue("PreRbUser",lblPreRbUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::WaitUserInput()
{
if(sePreRbCode->Enabled)
sePreRbCode->SetFocus();
scPreRbFromClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreRb::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("PreRbCode") +
"\t" + GetFieldValue("PreRbClient") +
"\t" + GetFieldValue("PreRbDate") ;
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgPreRb->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgPreRb->Row;
sgPreRb->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgPreRb->RemoveItem(sgPreRb->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgPreRb->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgPreRb->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::sgPreRbClick(TObject *Sender)
{
if (sgPreRb->Row > 0)
comServer->LocateByKey(WideString(sgPreRb->TextMatrix[sgPreRb->Row][1]));
if (comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::sePreRbCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(sePreRbCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::scPreRbCurrencyClick(TObject *Sender)
{
sePreRbEnrate->Text=scPreRbCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::scPreRbFromClick(TObject *Sender)
{
if(scPreRbFrom->ItemIndex == 0)
{
GroupBox1->Enabled=true;
GroupBox3->Enabled=false;
}
else
{
GroupBox1->Enabled=false;
GroupBox3->Enabled=true;
sePreRbFbbCac->Text="";
sePreRbFbbNo->Text="0";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::sePreRbFbbCacButtonClick(TObject *Sender)
{
if(scPreRbFrom->ItemIndex == 0)
{
AnsiString SqlStr;
SqlStr="009[出纳账号][流水号][摘要][财务月份][登记日期][金额][币种][结算方式][结算号] ";
SqlStr+=" select FbbCac,FbbNo,FbbZy,FbbFMonth,FbbDate,FbbAmt,FbbCurrency,FbbSettleMode,FbbSettleNo ";
SqlStr+=" from sdFbb where FbbDir=1 and FbbClient='"+scPreRbClient->ItemData[1]+"' ";
SqlStr+=" and not Exists (select * from sdArrb where ArrbFbbCac=FbbCac and ArrbFbbNo=FbbNo) ";
SqlStr+=" and not Exists (select * from sdPreRb where PreRbFbbCac=FbbCac and PreRbFbbNo=FbbNo) ";
SqlStr+=" order by FbbDate DESC ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"出纳账查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
sePreRbFbbCac->Text=p->ColData[1];
sePreRbFbbNo->Text=p->ColData[2];
sePreRbAmt->Text=p->ColData[6];
scPreRbCurrency->LocateKey(p->ColData[7]);
sePreRbEnrate->Text=scPreRbCurrency->ItemData[2];
scPreRbSettleMode->LocateKey(p->ColData[8]);
sePreRbSettleCode->Text=p->ColData[9];
}
delete p;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::scPreRbClientChange(TObject *Sender)
{
sePreRbFbbCac->Text="";
sePreRbFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreRb::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
switch(MsgSrc)
{
case euSdCurrency:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
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,scPreRbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
break;
case euSdSettleMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scPreRbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
break;
case euSdClient:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scPreRbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
}
break;
default:
break;
}
*/
}
//---------------------------------------------------------------------------
bool __fastcall TfrmPreRb::BeforeCheck()
{
SetFieldValue("PreRbCheck",1);
SetFieldValue("PreRbChecker",g_sdUserCode);
SetFieldValue("PreRbCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmPreRb::BeforeUnCheck()
{
SetFieldValue("PreRbCheck",0);
SetFieldValue("PreRbChecker","");
SetFieldValue("PreRbCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?