📄 fbb.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Fbb.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"
TfrmFbb *frmFbb;
//---------------------------------------------------------------------------
__fastcall TfrmFbb::TfrmFbb(TComponent* Owner)
: TRecBaseForm(Owner,euSdFbb,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmFbb::GetFieldValue(int iFieldIndex)
{
AnsiString S;
S=ReadFieldValue(comServer,iFieldIndex);
return S;
}
AnsiString __fastcall TfrmFbb::GetDataToGrid()
{
AnsiString s;
scFbbType->ItemIndex=StrToInt(GetFieldValue(fiFbbType))-1;
s = "\t" +GetFieldValue(fiFbbNo)+
"\t" +GetFieldValue(fiFbbDate)+
"\t" +(GetFieldValue(fiFbbDir)=="1"?"收入":"支出")+
"\t" +GetFieldValue(fiFbbAmt);
return (s);
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,false, seFbbNo,seFbbNo->Name);
ClientGroup->AddComponent(2,true,true,false, sgFbb,sgFbb->Name);
ClientGroup->AddComponent(2,true,true,false, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,true, chkFbbVerify,chkFbbVerify->Name);
ClientGroup->AddComponent(2,true,true,true, scFbbUser,scFbbUser->Name);
FillComboBox(scFbbFMonth,"select fcmonth from sdfc order by fcmonth desc","fcmonth");
FillComboBox(scFbbCac,"select caccode,cacBankname,cactype,currencycode,currencyname from sdcac,sdcurrency where caccurrency=currencycode order by caccode",
"caccode","cacbankname","cactype","currencycode","currencyname");
FillComboBox(scFbbSettleMode,"select settlemodename memo,settlemodecode from sdsettlemode order by settlemodecode","memo","settlemodecode");
FillComboBox(scFbbUser,"select username memo,usercode from sduser,sdcashier where cashiercode=usercode order by usercode","memo","usercode");
FillComboBox(scFbbExpense,"select expensename memo,expensecode from sdexpense order by expensecode","memo","expensecode");
FillComboBox(scFbbCc,"select ccname memo,cccode from sdcc where CCCANCEL=0 order by cccode","memo","cccode");
FillComboBox(scFbbDept,"select deptname memo,deptcode from sddept where deptend=1 order by deptcode","memo","deptcode");
FillComboBox(scFbbClient,"select clientname memo,clientcode from sdclient order by clientcode","memo","clientcode");
FillComboBox(scFbbSupply,"select supplyname memo,supplycode from sdsupply where supplycancel=0 order by supplycode",
"memo","supplycode");
FillComboBox(scFbbEmployee,"select employeename memo,employeecode from sdemployee where EmployeeState=0 order by employeecode",
"memo","employeecode");
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
seFbbNo->Text=GetNextNo(); //流水号
deFbbDate->Text=g_sdCurDate; //日期
scFbbType->ItemIndex=0; //出纳帐类型
scFbbTypeClick(NULL);
rbtFbbDir1->Checked=true; //收入支出标志
rbtFbbDir2->Checked=false; //收入支出标志
seFbbCurrency->Text=scFbbCac->ItemData[4];//币种
seFbbAmt->Text="0"; //金额
scFbbSettleMode->ItemIndex=-1; //结算方式
scFbbSettleMode->Text="";
seFbbSettleNo->Text=""; //结算号
memFbbZy->Text=""; //摘要
scFbbExpense->ItemIndex=-1; //费用代码
scFbbExpense->Text="";
scFbbCc->ItemIndex=-1; //成本中心
scFbbCc->Text="";
scFbbClient->ItemIndex=-1; //客户
scFbbClient->Text="";
scFbbSupply->ItemIndex=-1; //供应商
scFbbSupply->Text="";
scFbbDept->ItemIndex=-1; //部门
scFbbDept->Text="";
scFbbEmployee->ItemIndex=-1; //员工
scFbbEmployee->Text="";
scFbbFromCac1->ItemIndex=-1; //转出帐户
scFbbFromCac1->Text="";
seFbbFromCurrency1->Text=""; //转出货币
scFbbFromCac2->ItemIndex=-1; //转出帐户
scFbbFromCac2->Text="";
seFbbFromCurrency2->Text=""; //转出货币
seFbbFromRate->Text="1"; //汇率
seFbbFromAmt->Text="0"; //转出金额
scFbbUser->LocateKey(g_sdUserCode);//操作员
chkFbbVerify->Checked=false;
//新增,工具栏使能
SetCheckToolbarStatus(false);
}
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::WaitUserInput()
{
deFbbDate->SetFocus();
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::GetDataFromComObject()
{
seFbbNo->Text=GetFieldValue(fiFbbNo); //流水号
sgFbb->LocateGrid(1,GetFieldValue(fiFbbNo));
deFbbDate->Text=GetFieldValue(fiFbbDate); //日期
scFbbType->ItemIndex=GetFieldValue(fiFbbType)-1; //出纳帐类型
scFbbTypeClick(NULL);
if(GetFieldValue(fiFbbDir)=="1")
rbtFbbDir1->Checked=true; //收入支出标志
else
rbtFbbDir2->Checked=true; //收入支出标志
seFbbCurrency->Text=scFbbCac->ItemData[4]; //币种
seFbbAmt->Text=GetFieldValue(fiFbbAmt); //金额
scFbbSettleMode->LocateKey(GetFieldValue(fiFbbSettleMode)); //结算方式
seFbbSettleNo->Text=GetFieldValue(fiFbbSettleNo); //结算号
memFbbZy->Text=GetFieldValue(fiFbbZy); //摘要
scFbbExpense->LocateKey(GetFieldValue(fiFbbExpense)); //费用代码
scFbbCc->LocateKey(GetFieldValue(fiFbbCc)); //成本中心
scFbbClient->LocateKey(GetFieldValue(fiFbbClient)); //客户
scFbbSupply->LocateKey(GetFieldValue(fiFbbSupply)); //供应商
scFbbDept->LocateKey(GetFieldValue(fiFbbDept)); //部门
scFbbEmployee->LocateKey(GetFieldValue(fiFbbEmployee)); //员工
scFbbFromCac1->LocateKey(GetFieldValue(fiFbbFromCac)); //转出帐户
seFbbFromCurrency1->Text=scFbbFromCac1->ItemData[3];
scFbbFromCac2->LocateKey(GetFieldValue(fiFbbFromCac)); //转出帐户
seFbbFromCurrency2->Text=scFbbFromCac2->ItemData[3];
seFbbFromRate->Text=GetFieldValue(fiFbbFromRate); //汇率
seFbbFromAmt->Text=GetFieldValue(fiFbbFromAmt); //转出金额
scFbbUser->LocateKey(GetFieldValue(fiFbbUser)); //操作员
chkFbbVerify->Checked=GetFieldValue(fiFbbVerify)=="1";
//根据审核、取消状态,设置工具栏
if(GetFieldValue(fiFbbVerify)=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::SendDataToComObject()
{
WriteFieldValue(comServer,fiFbbCac,scFbbCac->Text); //出纳帐号
WriteFieldValue(comServer,fiFbbFMonth,scFbbFMonth->Text); //财务月份
WriteFieldValue(comServer,fiFbbNo,seFbbNo->Text); //流水号
WriteFieldValue(comServer,fiFbbDate,deFbbDate->Text); //日期
WriteFieldValue(comServer,fiFbbType,AnsiString(scFbbType->ItemIndex+1)); //出纳帐类型
WriteFieldValue(comServer,fiFbbDir,rbtFbbDir1->Checked?"1":"2"); //收入支出标志
WriteFieldValue(comServer,fiFbbCurrency,scFbbCac->ItemData[3]); //币种
WriteFieldValue(comServer,fiFbbAmt,seFbbAmt->Text); //金额
WriteFieldValue(comServer,fiFbbSettleMode,scFbbSettleMode->ItemData[1]); //结算方式
WriteFieldValue(comServer,fiFbbSettleNo,seFbbSettleNo->Text); //结算号
WriteFieldValue(comServer,fiFbbZy,memFbbZy->Text); //摘要
WriteFieldValue(comServer,fiFbbExpense,scFbbExpense->ItemData[1]); //费用代码
WriteFieldValue(comServer,fiFbbCc,scFbbCc->ItemData[1]); //成本中心
WriteFieldValue(comServer,fiFbbClient,scFbbClient->ItemData[1]); //客户
WriteFieldValue(comServer,fiFbbSupply,scFbbSupply->ItemData[1]); //供应商
WriteFieldValue(comServer,fiFbbDept,scFbbDept->ItemData[1]); //部门
WriteFieldValue(comServer,fiFbbEmployee,scFbbEmployee->ItemData[1]); //员工
if(scFbbType->ItemIndex == 5)
{
WriteFieldValue(comServer,fiFbbFromCac,scFbbFromCac1->ItemData[1]); //转出帐户
WriteFieldValue(comServer,fiFbbFromCurrency,scFbbFromCac1->ItemData[2]); //转出货币
}
if(scFbbType->ItemIndex == 6)
{
WriteFieldValue(comServer,fiFbbFromCac,scFbbFromCac2->ItemData[1]); //转出帐户
WriteFieldValue(comServer,fiFbbFromCurrency,scFbbFromCac2->ItemData[2]); //转出货币
WriteFieldValue(comServer,fiFbbFromRate,seFbbFromRate->Text); //汇率
WriteFieldValue(comServer,fiFbbFromAmt,seFbbFromAmt->Text); //转出金额
}
WriteFieldValue(comServer,fiFbbUser,scFbbUser->ItemData[1]); //操作员
}
//------------------------------------------------------------------------------
void __fastcall TfrmFbb::RefreshGridData(int mAction)
{
AnsiString sGridItem;
sGridItem=GetDataToGrid();
int i;
switch(mAction)
{
case 0: //新增
sgFbb->AddItem(sGridItem);
break;
case 1: //修改
i = sgFbb->Row;
sgFbb->ChangeItem(sGridItem,i);
break;
case 2: //删除
sgFbb->RemoveItem(sgFbb->Row);
} ;
}
//-------------------------------------------------------
void __fastcall TfrmFbb::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgFbb->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgFbb->AddItem(ItemStr);
comServer->MoveNext();
}
}
void __fastcall TfrmFbb::FormShow(TObject *Sender)
{
LastStr="";
LastType=-1;
ClearControl(false);
FillGridWithData();
scFbbFMonth->Text=g_sdFMonth;
if(scFbbCac->Items->Count > 0)
scFbbCac->ItemIndex=0;
scFbbFMonthClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFbb::scFbbFMonthClick(TObject *Sender)
{
AnsiString s;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -