zth.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 560 行 · 第 1/2 页
CPP
560 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "GenBaseForm"
#pragma hdrstop
#include "Zth.h"
#include "Ztd.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmZth *frmZth;
//---------------------------------------------------------------------------
__fastcall TfrmZth::TfrmZth(TComponent* Owner, HWND chWnd, AnsiString ClassCode,
AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
SetAutoCodeString(seZthCode,"Acm-022");
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,seZthCode,seZthCode->Name);
ClientGroup->AddComponent(1,false,true,true,scZthSupply,scZthSupply->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,true,true,true,gbClose,gbClose->Name);
ClientGroup->AddComponent(2,true,true,true,seZtdGoods,seZtdGoods->Name);
ClientGroup->AddComponent(2,true,true,true,seZtdGoodsName,seZtdGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,scZtdUnit,scZtdUnit->Name);
ClientGroup->AddComponent(2,true,true,true,seZtdConvRate,seZtdConvRate->Name);
ClientGroup->AddComponent(2,true,true,true,seZtdPrice,seZtdPrice->Name);
ClientGroup->AddComponent(2,true,true,true,deZtdReqDate,deZtdReqDate->Name);
ClientGroup->AddComponent(2,true,true,true,deZtdRecDate,deZtdRecDate->Name);
ClientGroup->AddComponent(2,true,true,true,deZtdSendDate,deZtdSendDate->Name);
ClientGroup->AddComponent(2,true,true,true,seZtdRQty,seZtdRQty->Name);
ClientGroup->AddComponent(2,false,true,true,seZtdPoCode,seZtdPoCode->Name);
FillComboBox(Handle,scZthSupply,"Select SupplyCode,SupplyName FROM sdSupply where supplycancel=0 order by Supplycode","SupplyName","SupplyCode");
FillComboBox(Handle,scZtdUnit,"Select UnitCode,UnitName FROM sdUnit order by Unitcode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seZthCode->Text = "";
scZthSupply->ItemIndex=-1;
deZthDate->Text = g_sdCurDate;
cheZthClose->Checked = false;
cheZthCheck->Checked = false;
cheZthCancel->Checked = false;
labSystemDate->Caption = "";
labUserCode->Caption = g_sdUserCode;
labChecker->Caption = g_sdUserCode;
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgZth->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seZtdLine->Text =AnsiString(comServer->ItemCount+1);
seZtdPoCode->Text = "";
seZtdPodLine->Text = "0";
seZtdGoods->Text = "";
seZtdGoodsName->Text = "";
scZtdUnit->ItemIndex = -1;
seZtdConvRate->Text = "0.0";
seZtdPrice->Text = "0.0";
seZtdQty->Text = "0.0";
seZtdRQty->Text = "0.0";
deZtdSendDate->Text = "";
deZtdReqDate->Text = "";
deZtdRecDate->Text = g_sdCurDate;
deZtdPreDate->Text = "";
cheZtdClose->Checked = false;
deZtdCloseDate->Text = "";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::GetDataFromComObject(int Section)
{
if (Section==1)
{
seZthCode->Text=GetHeadValue("ZthCode");
scZthSupply->LocateKey(GetHeadValue("ZthSupply")); //供应商
deZthDate->Text=GetHeadValue("ZthDate");
labUserCode->Caption=GetHeadValue("ZthUser");
labSystemDate->Caption=GetHeadValue("ZthSysDate");
cheZthCheck->Checked=GetHeadValue("ZthCheck")=="1";
labChecker->Caption = GetHeadValue("ZthChecker");
cheZthCancel->Checked=GetHeadValue("ZthCancel")=="1";
cheZthClose->Checked=GetHeadValue("ZthClose")=="1";
//根据审核、取消、结清状态,设置工具栏
if(GetHeadValue("ZthCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue("ZthCancel")=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
//根据结清状态,设置工具栏
if(GetHeadValue("ZthClose")=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
seZtdLine->Text = GetDetailValue("ZtdLine");
seZtdPoCode->Text = GetDetailValue("ZtdPoCode");
seZtdPodLine->Text = GetDetailValue("ZtdPodLine");
seZtdGoods->Text =GetDetailValue("ZtdGoods");
seZtdGoodsName->Text = GetDetailValue("Goodsname");
GoodsSpec->Text = GetDetailValue("Goodsspec");
scZtdUnit->LocateKey(GetDetailValue("ZtdUnit"));
seZtdConvRate->Text = GetDetailValue("ZtdConvRate");
seZtdPrice->Text = GetDetailValue("ZtdPrice");
seZtdQty->Text = GetDetailValue("ZtdQty");
seZtdRQty->Text = GetDetailValue("ZtdRQty");
deZtdSendDate->Text = GetDetailValue("ZtdSendDate");
deZtdReqDate->Text = GetDetailValue("ZtdReqDate");
deZtdRecDate->Text = GetDetailValue("ZtdRecDate");
deZtdPreDate->Text = GetDetailValue("ZtdPreDate");
cheZtdClose->Checked = GetDetailValue("ZtdClose")=="1"; //审核标志
deZtdCloseDate->Text = GetDetailValue("ZtdCloseDate");
//根据结清状态,设置工具栏
if(GetDetailValue("ZtdClose")=="1")
SetCloseItemStatus(true);
else
SetCloseItemStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::SendDataToComObject(int Section)
{
if (Section==1) //保存抬头
{
if(seZthCode->Text== "")
throw Exception("请输入在途单号");
if(scZthSupply->ItemData[1]== "")
throw Exception("请输入供应商编码");
//check before send data
SetHeadValue("ZthCode",seZthCode->Text);
SetHeadValue("ZthSupply",scZthSupply->ItemData[1]);
SetHeadValue("ZthDate",deZthDate->Text);
SetHeadValue("ZthUser",labUserCode->Caption);
}
else //保存细表记录
{
if(seZtdLine->Text == "")
throw Exception("请输入在途单行号");
if(seZtdPoCode->Text =="")
throw Exception("请输入采购单号");
if(seZtdQty->Text =="0.0")
throw Exception("请输入在途数量");
//check before send data
SetDetailValue("ZtdCode",seZthCode->Text);
SetDetailValue("ZtdLine", seZtdLine->Text);
SetDetailValue("ZtdPoCode", seZtdPoCode->Text);
SetDetailValue("ZtdPodLine", seZtdPodLine->Text);
SetDetailValue("ZtdQty",seZtdQty->Text);
SetDetailValue("ZtdGoods",seZtdGoods->Text);
SetDetailValue("ZtdUnit",scZtdUnit->ItemData[1]);
SetDetailValue("ZtdPrice",seZtdPrice->Text);
SetDetailValue("ZtdConvRate",seZtdConvRate->Text);
SetDetailValue("ztdAmt",seZtdPrice->Text.ToDouble()* seZtdQty->Text.ToDouble());
SetDetailValue("ZtdSendDate", deZtdSendDate->Text);
SetDetailValue("ZtdReqDate", deZtdReqDate->Text);
SetDetailValue("ZtdRecDate", deZtdRecDate->Text);
SetDetailValue("ZtdPreDate", deZtdPreDate->Text);
SetDetailValue("ZtdRQty", seZtdRQty->Text);
SetDetailValue("goodsname", seZtdGoodsName->Text);
SetDetailValue("goodsspec", GoodsSpec->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetDataToGrid();
switch(mAction)
{
case 0:
sgZth->AddItem(ItemStr);
break;
case 1:
i=sgZth->Row;
sgZth->ChangeItem(ItemStr,i);
break;
case 2:
sgZth->RemoveItem(sgZth->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::DisplayBill()
{
if (comServer->RecordCount > 0)
{
GetDataFromComObject(1); //向抬头中增加记录
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::GetBill(AnsiString BillID)
{
int iRow;
iRow=comServer->Find("ZthCode='"+BillID+"'");
if (iRow>0) //FIND THIS BILL
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgZth->RowCount=1;
if(comServer->RecordCount>0)
{
for (i=0;i<comServer->ItemCount;i++) {
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmZth::GetHeadValue(AnsiString fieldname)
{
Variant vTmp;
vTmp=comServer->DataSet->GetHeadValue(fieldname);
if(vTmp.IsNull())
return "";
else
return AnsiString(vTmp);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmZth::GetDetailValue(AnsiString fieldname)
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?