pbeh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 465 行 · 第 1/2 页
CPP
465 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "GenBaseForm"
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Pbeh.h"
#include "Pbed.h"
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPbeh *frmPbeh;
//---------------------------------------------------------------------------
__fastcall TfrmPbeh::TfrmPbeh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(sePbehCode,"Acm-047");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::InitEditControl()
{
ClientGroup->AddComponent(1,true,true,false,sgPbeh,sgPbeh->Name);
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,sePbehCode,sePbehCode->Name);
ClientGroup->AddComponent(1,true,true,true,scPbehFmonth,scPbehFmonth->Name);
ClientGroup->AddComponent(1,false,true,true,sePbehCurrency,sePbehCurrency->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,true,sePbedPrecdLine,sePbedPrecdLine->Name);
ClientGroup->AddComponent(2,true,true,true,sePbedGoods,sePbedGoods->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
//Pbeh
FillEdit(Handle,sePbehCurrency,"SELECT CurrencyCode,CurrencyName FROM sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
FillComboBox(Handle,scPbehExpense,"select Expensecode,ExpenseName from sdExpense order by ExpenseCode","ExpenseName","ExpenseCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (!BringToNext)
{
sePbehCode->Text ="";
scPbehFmonth->Text =g_sdPMonth;
dePbehDate->Text=g_sdCurDate;
sePbehCurrency->ItemIndex=-1;
sePbehCurrency->Text ="";
scPbehExpense->ItemIndex=-1;
scPbehExpense->Text ="";
cbxPbehCheck->Checked =false;
labPbehChecker->Caption ="";
labPbehUser->Caption =g_sdUserCode;
labPbehSysDate->Caption = "";
memPbehDesc->Text="";
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgPbeh->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
sePbedLine->Text =AnsiString(comServer->ItemCount+1);
sePbedPrecCode->Text="";
sePbedPrecdLine->Text="";
sePbedGoods->Text="";
labPbedGoodsName->Caption ="";
sePbedAmt->Text="";
memPbedDesc->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePbehCode->Text =GetHeadValue("PbehCode");
scPbehFmonth->Text =GetHeadValue("PbehFmonth");
dePbehDate->Text=GetHeadValue("PbehDate");
sePbehCurrency->LocateKey(GetHeadValue("PbehCurrency"));
scPbehExpense->LocateKey(GetHeadValue("PbehExpense"));
cbxPbehCheck->Checked =GetHeadValue("PbehCheck")=="1";
labPbehChecker->Caption =GetHeadValue("PbehChecker");
labPbehUser->Caption =GetHeadValue("PbehUser");
labPbehSysDate->Caption =GetHeadValue("PbehSysDate");
//根据审核、取消状态,设置工具栏
if((GetHeadValue("PbehCheck")=="1"))
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
else
{
sePbedLine->Text=GetDetailValue("PbedLine");
sePbedPrecCode->Text=GetDetailValue("PbedPrecCode");
sePbedPrecdLine->Text=GetDetailValue("PbedPrecdLine");
sePbedGoods->Text = GetDetailValue("PbedGoods");
labPbedGoodsName->Caption = GetDetailValue("GoodsName");
GoodsSpec->Caption = GetDetailValue("Goodsspec");
sePbedAmt->Text=GetDetailValue("PbedAmt");
memPbedDesc->Text=GetDetailValue("PbedDesc");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::SendDataToComObject(int Section)
{
if (Section==1)
{
if(sePbehCode->Text=="")
throw Exception("请输入分摊单号");
if(sePbehCurrency->ItemData[1]=="")
throw Exception("请输入币种");
SetHeadValue("PbehCode",sePbehCode->Text);
SetHeadValue("PbehFmonth",scPbehFmonth->Text);
SetHeadValue("PbehDate",dePbehDate->Text);
SetHeadValue("PbehCurrency",sePbehCurrency->ItemData[1]);
SetHeadValue("PbehExpense",scPbehExpense->ItemData[1]);
SetHeadValue("PbehUser",labPbehUser->Caption);
SetHeadValue("PbehDesc",memPbehDesc->Text);
}
else
{
if(sePbedLine->Text=="")
throw Exception("请输入分摊单行号");
if(sePbedPrecCode->Text=="")
throw Exception("请输收货单号");
if(sePbedAmt->Text=="0")
throw Exception("请输分摊金额");
SetDetailValue("PbedCode",sePbehCode->Text);
SetDetailValue("PbedLine",sePbedLine->Text);
SetDetailValue("PbedPrecCode",sePbedPrecCode->Text);
SetDetailValue("PbedPrecdLine",sePbedPrecdLine->Text);
SetDetailValue("PbedGoods",sePbedGoods->Text);
SetDetailValue("PbedAmt",sePbedAmt->Text);
SetDetailValue("PbedDesc",memPbedDesc->Text);
SetDetailValue("Goodsname",labPbedGoodsName->Caption);
SetDetailValue("goodsspec",GoodsSpec->Caption);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::WaitUserInput(int Section)
{
if (Section ==1)
{
if(sePbehCode->Enabled)
sePbehCode->SetFocus();
}
else
{
sgPbeh->Visible=false;
FloatPanel2->Visible=true;
if(sePbedPrecCode->Enabled)
sePbedPrecCode->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetItemStringToGrid();
switch(mAction)
{
case 0:
sgPbeh->AddItem(ItemStr);
break;
case 1:
i = sgPbeh->Row;
sgPbeh->ChangeItem(ItemStr,i);
break;
case 2:
sgPbeh->RemoveItem(sgPbeh->Row);
break;
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbeh::GetItemStringToGrid()
{
AnsiString s_ItemStr;
s_ItemStr = "\t"+GetDetailValue("PbedLine")+
"\t"+GetDetailValue("PbedPrecCode")+
"\t"+GetDetailValue("PbedPrecdLine")+
"\t"+GetDetailValue("PbedGoods")+
"\t"+GetDetailValue("Goodsname")+
"\t"+GetDetailValue("Goodsspec")+
"\t"+GetDetailValue("PbedAmt")+
"\t"+GetDetailValue("PbedDesc");
return s_ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::DisplayBill()
{
if(comServer->RecordCount<=0)
return;
GetDataFromComObject(1);
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::GetBill(AnsiString BillID)
{
int iRow;
iRow=comServer->Find("PbehCode='"+BillID+"'");
if (iRow>0) //FIND THIS BILL
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgPbeh->RowCount=1;
if(comServer->RecordCount>0)
{
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?