bdrg.cpp
来自「科思ERP部分源码及控件」· C++ 代码 · 共 275 行
CPP
275 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Bdrg.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"
TfrmBdrg *frmBdrg;
//---------------------------------------------------------------------------
__fastcall TfrmBdrg::TfrmBdrg(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seBdrgCode,"Acm-71");
// AutoCtl=seBdrgCode;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seBdrgCode->Text ="";
seBdrgFmonth->Text=g_sdFMonth; //月份
deBdrgDate->Text =g_sdCurDate; //日期
scBdrgClient->ItemIndex =-1; //客户
scBdrgCurrency->ItemIndex =-1; //币种
seBdrgEnrate->Text ="1"; //汇率
seBdrgAmt->Text ="0.00";
seBdrgBAmt->Text ="0.00";
seBdrgBdl->Text="";
memBdrgDesc->Text=""; //备注
lblBdrgUser->Caption=g_sdUserCode; //操作员
chkBdrgCheck->Checked=false; //审核标志
lblBdrgChecker->Caption =""; //审核人
lblBdrgCheckDate->Caption =""; //审核日期
SetCheckToolbarStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgBdrg,sgBdrg->Name);
ClientGroup->AddComponent(2,false,false,false, seBdrgCode,seBdrgCode->Name);
ClientGroup->AddComponent(2,true,true,true, scBdrgClient,scBdrgClient->Name);
ClientGroup->AddComponent(2,true,true,true, seBdrgFmonth,seBdrgFmonth->Name);
FillComboBox(Handle,scBdrgClient,"select 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,scBdrgCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::GetDataFromComObject()
{
seBdrgCode->Text =GetFieldValue("BdrgCode");
sgBdrg->LocateGrid(1,GetFieldValue("BdrgCode"));
seBdrgFmonth->Text=GetFieldValue("BdrgFmonth"); //月份
deBdrgDate->Text =GetFieldValue("BdrgDate"); //日期
seBdrgBdl->Text =GetFieldValue("BdrgBdl");
scBdrgClient->LocateKey(GetFieldValue("BdrgClient")); //客户
scBdrgCurrency->LocateKey(GetFieldValue("BdrgCurrency")); //币种
seBdrgEnrate->Text =GetFieldValue("BdrgEnrate"); //汇率
seBdrgAmt->Text =GetFieldValue("BdrgAmt");
seBdrgBAmt->Text =GetFieldValue("BdrgBAmt");
memBdrgDesc->Text=GetFieldValue("BdrgDesc"); //备注
lblBdrgUser->Caption=GetFieldValue("BdrgUser"); //操作员
chkBdrgCheck->Checked=(GetFieldValue("BdrgCheck")=="1"?true:false); //审核标志
lblBdrgChecker->Caption =GetFieldValue("BdrgChecker"); //审核人
lblBdrgCheckDate->Caption =GetFieldValue("BdrgCheckDate"); //审核日期
//根据审核状态,设置工具栏
if(GetFieldValue("BdrgCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::SendDataToComObject()
{
SetFieldValue("BdrgCode",seBdrgCode->Text);
SetFieldValue("BdrgFmonth",seBdrgFmonth->Text);
SetFieldValue("BdrgDate",deBdrgDate->Text);
SetFieldValue("BdrgBdl",seBdrgBdl->Text);
SetFieldValue("BdrgClient",scBdrgClient->ItemData[1]);
SetFieldValue("BdrgCurrency",scBdrgCurrency->ItemData[1]);
SetFieldValue("BdrgEnrate",seBdrgEnrate->Text);
SetFieldValue("BdrgAmt",seBdrgAmt->Text);
SetFieldValue("BdrgBAmt",seBdrgBAmt->Text);
SetFieldValue("BdrgDesc",memBdrgDesc->Text);
SetFieldValue("BdrgUser",lblBdrgUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::WaitUserInput()
{
if(seBdrgCode->Enabled)
seBdrgCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmBdrg::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("BdrgCode") +
"\t" + GetFieldValue("BdrgBdl") +
"\t" + GetFieldValue("BdrgAmt") ;
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgBdrg->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgBdrg->Row;
sgBdrg->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgBdrg->RemoveItem(sgBdrg->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgBdrg->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgBdrg->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::sgBdrgClick(TObject *Sender)
{
if (sgBdrg->Row > 0)
comServer->LocateByKey(WideString(sgBdrg->TextMatrix[sgBdrg->Row][1]));
if (comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::seBdrgCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seBdrgCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::scBdrgCurrencyClick(TObject *Sender)
{
seBdrgEnrate->Text=scBdrgCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::seBdrgBdlButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="008[坏账登记号][财务月份][登记日期][币种][坏账金额][坏账来源][来源代码][来源单号] ";
SqlStr+=" select BdlCode,BdlFmonth,BdlDate,BdlCurrency,BdlBAmt-BdlGAmt Amt,(case BdlDocType when 1 then '来自发票' else '来自应收单' end) Type,BdlDocType,BdlDocCode,BdlDocLine ";
SqlStr+=" from sdBdl where BdlCheck=1 and BdlBAmt>BdlGAmt ";
SqlStr+=" order by BdlDate Desc,BdlCode ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"坏账登记查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seBdrgBdl->Text=p->ColData[1];
seBdrgBAmt->Text=p->ColData[5];
//获取坏账所属客户
TComResultSet *RsQuery;
if(p->ColData[7] == "1") //来源应收发票
{
SqlStr=" select ArivhClient Client from sdArivh where ArivhCode='"+p->ColData[8]+"'";
}
else //来源其他应收单
{
SqlStr=" select ArobClient Client from sdArob where ArobCode='"+p->ColData[8]+"'";
}
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(SqlStr,"");
RsQuery->MoveFirst();
if(RsQuery->RecordCount > 0)
{
scBdrgClient->LocateKey(RsQuery->FieldByName("Client"));
}
RsQuery->Close();
delete RsQuery;
scBdrgCurrency->LocateKey(p->ColData[4]);
seBdrgEnrate->Text=scBdrgCurrency->ItemData[2];
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBdrg::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,scBdrgCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
break;
case euSdClient:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scBdrgClient,"select ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
}
break;
default:
break;
}
*/
}
//---------------------------------------------------------------------------
bool __fastcall TfrmBdrg::BeforeCheck()
{
SetFieldValue("BdrgCheck",1);
SetFieldValue("BdrgChecker",g_sdUserCode);
SetFieldValue("BdrgCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmBdrg::BeforeUnCheck()
{
SetFieldValue("BdrgCheck",0);
SetFieldValue("BdrgChecker","");
SetFieldValue("BdrgCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?