arrb.cpp
来自「科思ERP部分源码及控件」· C++ 代码 · 共 292 行
CPP
292 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Arrb.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"
TfrmArrb *frmArrb;
//---------------------------------------------------------------------------
__fastcall TfrmArrb::TfrmArrb(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seArrbCode,"Acm-63");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seArrbCode->Text ="";
seArrbFmonth->Text=g_sdFMonth; //月份
deArrbDate->Text =g_sdCurDate; //日期
scArrbFrom->ItemIndex =0;
scArrbRbt->ItemIndex =0;
scArrbClient->ItemIndex =0; //客户
scArrbCurrency->ItemIndex =0; //币种
seArrbEnrate->Text ="1"; //汇率
seArrbAmt->Text ="0.00";
seArrbCAmt->Text ="0.00";
seArrbBAmt->Text ="0.00";
scArrbSettleMode->ItemIndex=-1;
seArrbSettleCode->Text="";
seArrbFbbNo->Text="0";
seArrbFbbCac->Text="";
memArrbDesc->Text=""; //备注
scArrbState->ItemIndex =0; //状态
lblArrbUser->Caption=g_sdUserCode; //操作员
chkArrbCheck->Checked=false; //审核标志
lblArrbChecker->Caption =""; //审核人
lblArrbCheckDate->Caption =""; //审核日期
SetCheckToolbarStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgArrb,sgArrb->Name);
ClientGroup->AddComponent(2,false,false,false, seArrbCode,seArrbCode->Name);
ClientGroup->AddComponent(2,true,true,true, seArrbFmonth,seArrbFmonth->Name);
scArrbState->ClearAll();
scArrbState->AddItems("1-未处理","1");
scArrbFrom->ClearAll();
scArrbFrom->AddItems("1-由出纳账生成","1");
scArrbFrom->AddItems("2-手工录入","2");
FillComboBox(Handle,scArrbClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
FillComboBox(Handle,scArrbRbt,"select RbtName Memo,RbtCode from sdRbt order by RbtCode" ,"Memo","RbtCode");
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,scArrbCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
FillComboBox(Handle,scArrbSettleMode,"select SettleModeCode+'-'+SettleModeName Memo,SettleModeCode from sdSettleMode order by SettleModeCode" ,"Memo","SettleModeCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::GetDataFromComObject()
{
seArrbCode->Text =GetFieldValue("ArrbCode");
sgArrb->LocateGrid(1,GetFieldValue("ArrbCode"));
seArrbFmonth->Text=GetFieldValue("ArrbFmonth"); //月份
deArrbDate->Text =GetFieldValue("ArrbDate"); //日期
scArrbRbt->LocateKey(GetFieldValue("ArrbRbt"));
scArrbFrom->LocateKey(GetFieldValue("ArrbFrom"));
scArrbClient->LocateKey(GetFieldValue("ArrbClient")); //客户
scArrbCurrency->LocateKey(GetFieldValue("ArrbCurrency")); //币种
seArrbEnrate->Text =GetFieldValue("ArrbEnrate"); //汇率
seArrbAmt->Text =GetFieldValue("ArrbAmt");
seArrbCAmt->Text =GetFieldValue("ArrbCAmt");
seArrbBAmt->Text =GetFieldValue("ArrbBAmt");
scArrbSettleMode->LocateKey(GetFieldValue("ArrbSettleMode"));
seArrbSettleCode->Text =GetFieldValue("ArrbSettleCode");
seArrbFbbCac->Text =GetFieldValue("ArrbFbbCac");
seArrbFbbNo->Text =GetFieldValue("ArrbFbbNo");
memArrbDesc->Text=GetFieldValue("ArrbDesc"); //备注
scArrbState->LocateKey(GetFieldValue("ArrbState")); //状态
lblArrbUser->Caption=GetFieldValue("ArrbUser"); //操作员
chkArrbCheck->Checked=(GetFieldValue("ArrbCheck")=="1"?true:false); //审核标志
lblArrbChecker->Caption =GetFieldValue("ArrbChecker"); //审核人
lblArrbCheckDate->Caption =GetFieldValue("ArrbCheckDate"); //审核日期
//根据审核状态,设置工具栏
if(GetFieldValue("ArrbCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::SendDataToComObject()
{
SetFieldValue("ArrbCode",seArrbCode->Text);
SetFieldValue("ArrbFmonth",seArrbFmonth->Text);
SetFieldValue("ArrbDate",deArrbDate->Text);
SetFieldValue("ArrbRbt",scArrbRbt->ItemData[1]);
SetFieldValue("ArrbFrom",scArrbFrom->ItemData[1]);
SetFieldValue("ArrbClient",scArrbClient->ItemData[1]);
SetFieldValue("ArrbCurrency",scArrbCurrency->ItemData[1]);
SetFieldValue("ArrbEnrate",seArrbEnrate->Text);
SetFieldValue("ArrbAmt",seArrbAmt->Text);
SetFieldValue("ArrbSettleMode",scArrbSettleMode->ItemData[1]);
SetFieldValue("ArrbSettleCode",seArrbSettleCode->Text);
SetFieldValue("ArrbFbbCac",seArrbFbbCac->Text);
SetFieldValue("ArrbFbbNo",seArrbFbbNo->Text);
SetFieldValue("ArrbBAmt",seArrbBAmt->Text);
SetFieldValue("ArrbCAmt",seArrbCAmt->Text);
SetFieldValue("ArrbDesc",memArrbDesc->Text);
SetFieldValue("ArrbState",scArrbState->ItemData[1]);
SetFieldValue("ArrbUser",lblArrbUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::WaitUserInput()
{
if(seArrbCode->Enabled)
seArrbCode->SetFocus();
scArrbFromClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArrb::GetDataToGrid()
{
scArrbRbt->LocateKey(GetFieldValue("ArrbRbt")); //票据类型
AnsiString s;
s = "\t" + GetFieldValue("ArrbCode") +
"\t" + GetFieldValue("ArrbClient") +
"\t" + scArrbRbt->ItemData[0] ;
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgArrb->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgArrb->Row;
sgArrb->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgArrb->RemoveItem(sgArrb->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgArrb->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgArrb->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::sgArrbClick(TObject *Sender)
{
if (sgArrb->Row > 0)
comServer->LocateByKey(WideString(sgArrb->TextMatrix[sgArrb->Row][1]));
if (comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::seArrbCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seArrbCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::scArrbCurrencyClick(TObject *Sender)
{
seArrbEnrate->Text=scArrbCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::scArrbFromClick(TObject *Sender)
{
if(scArrbFrom->ItemIndex == 0)
{
GroupBox1->Enabled=true;
GroupBox3->Enabled=false;
}
else
{
GroupBox1->Enabled=false;
GroupBox3->Enabled=true;
seArrbFbbCac->Text="";
seArrbFbbNo->Text="0";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::seArrbFbbCacButtonClick(TObject *Sender)
{
if(scArrbFrom->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='"+scArrbClient->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)
{
seArrbFbbCac->Text=p->ColData[1];
seArrbFbbNo->Text=p->ColData[2];
seArrbAmt->Text=p->ColData[6];
scArrbCurrency->LocateKey(p->ColData[7]);
seArrbEnrate->Text=scArrbCurrency->ItemData[2];
scArrbSettleMode->LocateKey(p->ColData[8]);
seArrbSettleCode->Text=p->ColData[9];
}
delete p;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::scArrbClientChange(TObject *Sender)
{
seArrbFbbCac->Text="";
seArrbFbbNo->Text="0";
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrb::RefreshUpdateData(int MsgSrc,int MsgType)
{
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrb::BeforeCheck()
{
SetFieldValue("ArrbCheck",1);
SetFieldValue("ArrbChecker",g_sdUserCode);
SetFieldValue("ArrbCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrb::BeforeUnCheck()
{
SetFieldValue("ArrbCheck",0);
SetFieldValue("ArrbChecker","");
SetFieldValue("ArrbCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?