refund.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 341 行
CPP
341 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Refund.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"
TfrmRefund *frmRefund;
//---------------------------------------------------------------------------
__fastcall TfrmRefund::TfrmRefund(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seRefundCode,"Acm-66");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seRefundCode->Text ="";
seRefundFmonth->Text=g_sdFMonth; //月份
deRefundDate->Text =g_sdCurDate; //日期
scRefundFrom->ItemIndex =0;
scRefundRfr->ItemIndex =0;
seRefundArrb->Text="";
scRefundClient->ItemIndex =-1; //客户
scRefundCurrency->ItemIndex =0; //币种
seRefundEnrate->Text ="1"; //汇率
seRefundAmt->Text ="0.00";
seRefundCAmt->Text ="0.00";
scRefundSettleMode->ItemIndex=-1;
seRefundSettleCode->Text="";
seRefundFbbNo->Text="0";
seRefundFbbCac->Text="";
memRefundDesc->Text=""; //备注
scRefundState->ItemIndex =0; //状态
lblRefundUser->Caption=g_sdUserCode; //操作员
chkRefundCheck->Checked=false; //审核标志
lblRefundChecker->Caption =""; //审核人
lblRefundCheckDate->Caption =""; //审核日期
SetCheckToolbarStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgRefund,sgRefund->Name);
ClientGroup->AddComponent(2,false,false,false, seRefundCode,seRefundCode->Name);
ClientGroup->AddComponent(2,true,true,true, scRefundClient,scRefundClient->Name);
ClientGroup->AddComponent(2,true,true,true, seRefundFmonth,seRefundFmonth->Name);
scRefundState->ClearAll();
scRefundState->AddItems("1-未处理","1");
scRefundFrom->ClearAll();
scRefundFrom->AddItems("1-由出纳账生成","1");
scRefundFrom->AddItems("2-手工录入","2");
FillComboBox(Handle,scRefundClient,"select ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
FillComboBox(Handle,scRefundRfr,"select RfrDesc Memo,RfrCode from sdRfr order by RfrCode" ,"Memo","RfrCode");
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,scRefundCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
FillComboBox(Handle,scRefundSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::GetDataFromComObject()
{
seRefundCode->Text =GetFieldValue("RefundCode");
sgRefund->LocateGrid(1,GetFieldValue("RefundCode"));
seRefundFmonth->Text=GetFieldValue("RefundFmonth"); //月份
deRefundDate->Text =GetFieldValue("RefundDate"); //日期
seRefundArrb->Text=GetFieldValue("RefundArrb"); //月份
scRefundRfr->LocateKey(GetFieldValue("RefundRfr"));
scRefundFrom->LocateKey(GetFieldValue("RefundFrom"));
scRefundClient->LocateKey(GetFieldValue("RefundClient")); //客户
scRefundCurrency->LocateKey(GetFieldValue("RefundCurrency")); //币种
seRefundEnrate->Text =GetFieldValue("RefundEnrate"); //汇率
seRefundAmt->Text =GetFieldValue("RefundAmt");
seRefundCAmt->Text =GetFieldValue("RefundCAmt");
scRefundSettleMode->LocateKey(GetFieldValue("RefundSettleMode"));
seRefundSettleCode->Text =GetFieldValue("RefundSettleCode");
seRefundFbbCac->Text =GetFieldValue("RefundFbbCac");
seRefundFbbNo->Text =GetFieldValue("RefundFbbNo");
memRefundDesc->Text=GetFieldValue("RefundDesc"); //备注
scRefundState->LocateKey(GetFieldValue("RefundState")); //状态
lblRefundUser->Caption=GetFieldValue("RefundUser"); //操作员
chkRefundCheck->Checked=(GetFieldValue("RefundCheck")=="1"?true:false); //审核标志
lblRefundChecker->Caption =GetFieldValue("RefundChecker"); //审核人
lblRefundCheckDate->Caption =GetFieldValue("RefundCheckDate"); //审核日期
//根据审核状态,设置工具栏
if(GetFieldValue("RefundCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::SendDataToComObject()
{
SetFieldValue("RefundCode",seRefundCode->Text);
SetFieldValue("RefundFmonth",seRefundFmonth->Text);
SetFieldValue("RefundDate",deRefundDate->Text);
SetFieldValue("RefundArrb",seRefundArrb->Text);
SetFieldValue("RefundRfr",scRefundRfr->ItemData[1]);
SetFieldValue("RefundFrom",scRefundFrom->ItemData[1]);
SetFieldValue("RefundClient",scRefundClient->ItemData[1]);
SetFieldValue("RefundCurrency",scRefundCurrency->ItemData[1]);
SetFieldValue("RefundEnrate",seRefundEnrate->Text);
SetFieldValue("RefundAmt",seRefundAmt->Text);
SetFieldValue("RefundSettleMode",scRefundSettleMode->ItemData[1]);
SetFieldValue("RefundSettleCode",seRefundSettleCode->Text);
SetFieldValue("RefundFbbCac",seRefundFbbCac->Text);
SetFieldValue("RefundFbbNo",seRefundFbbNo->Text);
SetFieldValue("RefundCAmt",seRefundCAmt->Text);
SetFieldValue("RefundDesc",memRefundDesc->Text);
SetFieldValue("RefundState",scRefundState->ItemData[1]);
SetFieldValue("RefundUser",lblRefundUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::WaitUserInput()
{
if(seRefundCode->Enabled)
seRefundCode->SetFocus();
scRefundFromClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmRefund::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("RefundCode") +
"\t" + GetFieldValue("RefundClient") +
"\t" + GetFieldValue("RefundArrb") ;
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgRefund->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgRefund->Row;
sgRefund->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgRefund->RemoveItem(sgRefund->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgRefund->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgRefund->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::sgRefundClick(TObject *Sender)
{
if (sgRefund->Row > 0)
comServer->LocateByKey(WideString(sgRefund->TextMatrix[sgRefund->Row][1]));
if (comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::seRefundCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seRefundCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::scRefundCurrencyClick(TObject *Sender)
{
seRefundEnrate->Text=scRefundCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::scRefundFromClick(TObject *Sender)
{
if(scRefundFrom->ItemIndex == 0)
{
GroupBox1->Enabled=true;
GroupBox3->Enabled=false;
}
else
{
GroupBox1->Enabled=false;
GroupBox3->Enabled=true;
seRefundFbbCac->Text="";
seRefundFbbNo->Text="0";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::seRefundFbbCacButtonClick(TObject *Sender)
{
if(scRefundFrom->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='"+scRefundClient->ItemData[1]+"' ";
SqlStr+=" and not Exists (select * from sdRefund where RefundFbbCac=FbbCac and RefundFbbNo=FbbNo) ";
SqlStr+=" order by FbbDate DESC ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"出纳账查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seRefundFbbCac->Text=p->ColData[1];
seRefundFbbNo->Text=p->ColData[2];
seRefundAmt->Text=p->ColData[6];
scRefundCurrency->LocateKey(p->ColData[7]);
seRefundEnrate->Text=scRefundCurrency->ItemData[2];
scRefundSettleMode->LocateKey(p->ColData[8]);
seRefundSettleCode->Text=p->ColData[9];
}
delete p;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::seRefundArrbButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="007[收款单号][财务月份][登记日期][客户代码][客户名称][出纳账号][流水号] ";
SqlStr+=" select ArrbCode,ArrbFmonth,ArrbDate,ArrbClient,ClientName,ArrbFbbCac,ArrbFbbNo ";
SqlStr+=" from sdArrb,sdClient where ArrbClient=ClientCode and ArrbCheck=1 ";
SqlStr+=" order by ArrbClient,ArrbDate DESC ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"收款单查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seRefundArrb->Text=p->ColData[1];
scRefundClient->LocateKey(p->ColData[4]);
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::scRefundClientChange(TObject *Sender)
{
seRefundFbbCac->Text="";
seRefundFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmRefund::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,scRefundCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
break;
case euSdSettleMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scRefundSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
break;
default:
break;
}
*/
}
//---------------------------------------------------------------------------
bool __fastcall TfrmRefund::BeforeCheck()
{
SetFieldValue("RefundCheck",1);
SetFieldValue("RefundChecker",g_sdUserCode);
SetFieldValue("RefundCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmRefund::BeforeUnCheck()
{
SetFieldValue("RefundCheck",0);
SetFieldValue("RefundChecker","");
SetFieldValue("RefundCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?