ulh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 513 行 · 第 1/2 页
CPP
513 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "GenBaseForm"
#pragma hdrstop
#include "Ulh.h"
#include "Uld.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmUlh *frmUlh;
//---------------------------------------------------------------------------
__fastcall TfrmUlh::TfrmUlh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seUlhCode,"Acm-021");
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,seUlhCode,seUlhCode->Name);
ClientGroup->AddComponent(1,false,true,true,scUlhSupply,scUlhSupply->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,false,true,true,seUldPoCode,seUldPoCode->Name);
ClientGroup->AddComponent(2,true,true,true,seUldPodLine,seUldPodLine->Name);
ClientGroup->AddComponent(2,true,true,true,seUldGoods,seUldGoods->Name);
ClientGroup->AddComponent(2,true,true,true,seUldGoodsName,seUldGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,seUldUnit,seUldUnit->Name);
ClientGroup->AddComponent(2,true,true,true,seUldPoQty,seUldPoQty->Name);
ClientGroup->AddComponent(2,true,true,true,GroupBox2,GroupBox2->Name);
ClientGroup->AddComponent(2,false,false,true,seUldUrQty,seUldUrQty->Name);
AnsiString sSQL;
sSQL=" select supplyname,supplycode ";
sSQL=sSQL+" from sdsupply ";
sSQL=sSQL+" where supplycancel=0 order by supplycode ";
FillComboBox(Handle,scUlhSupply,sSQL,"supplyname","SupplyCode");
FillEdit(Handle,seUldUnit,"select unitcode,unitname from sdunit","UnitName","UnitCode");
FillEdit(Handle,seUldPsite,"select PsiteName,PsiteCode from sdPsite","PsiteName","PsiteCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seUlhCode->Text = "";
scUlhSupply->ItemIndex=-1;
deUlhDate->Text = g_sdCurDate;
labSystemDate->Caption = g_sdCurDate;
labUserCode->Caption = g_sdUserCode;
}
sgUlh->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seUldLine->Text = AnsiString(comServer->ItemCount+1);
seUldPoCode->Text = "";
seUldPodLine->Text="";
seUldGoods->Text = "";
seUldGoodsName->Text = "";
seUldUnit->ItemIndex = -1;
seUldPoQty->Text = "";
seUldUrQty->Text = "0";
deUldSendDate->Date = deUldSendDate->Date.CurrentDate();
seUldDelay->Text = "0";
seUldPsite->Text = "";
scUldStatus->ItemIndex=0;
deUldRecDate->Text = g_sdCurDate;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::GetDataFromComObject(int Section)
{
if (Section==1)
{
seUlhCode->Text=GetHeadValue("UlhCode");
scUlhSupply->LocateKey(GetHeadValue("UlhSupply")); //供应商
deUlhDate->Text=GetHeadValue("UlhDate");
labUserCode->Caption = GetHeadValue("UlhUser");
labSystemDate->Caption=GetHeadValue("UlhSysDate");
}
else
{
seUldLine->Text = GetDetailValue("UldLine");
seUldPoCode->Text = GetDetailValue("UldPoCode");
seUldPodLine->Text = GetDetailValue("UldPodLine");
seUldGoods->Text=GetDetailValue("UldGoods");
seUldGoodsName->Text =GetDetailValue("GoodsName");
GoodsSpec->Text =GetDetailValue("GoodsSpec");
seUldUnit->LocateKey(GetDetailValue("UldUnit"));
seUldUrQty->Text=GetDetailValue("UldUrQty");
seUldDelay->Text = GetDetailValue("UldDelay");
seUldPoQty->Text = GetDetailValue("Uldpoqty");
seUldPsite->LocateKey(GetDetailValue("UldPsite"));
scUldStatus->ItemIndex = StrToInt(GetDetailValue("UldStatus"))-1;
deUldRecDate->Text = GetDetailValue("UldRecDate");
deUldSendDate->Text = GetDetailValue("UldSendDate");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::SendDataToComObject(int Section)
{
if (Section==1) //保存抬头
{
if(seUlhCode->Text == "")
throw Exception("请输入催货单号");
if(scUlhSupply->ItemData[1] == "")
throw Exception("请输入供应商代码");
SetHeadValue("UlhCode",seUlhCode->Text);
SetHeadValue("UlhSupply",scUlhSupply->ItemData[1]);
SetHeadValue("UlhDate",deUlhDate->Text);
SetHeadValue("UlhUser",labUserCode->Caption);
}else //保存细表记录
{
if(seUldLine->Text == "")
throw Exception("请输入催货单行号");
if(seUldPodLine->Text == "")
throw Exception("请输入采购单号");
if(seUldUrQty->Text =="0")
throw Exception("请输入未到货数量");
//check before update;
SetDetailValue("UldCode", seUlhCode->Text);
SetDetailValue("UldLine", seUldLine->Text);
SetDetailValue("UldPoCode", seUldPoCode->Text);
SetDetailValue("UldPodLine", seUldPodLine->Text);
SetDetailValue("UldGoods", seUldGoods->Text);
SetDetailValue("goodsname", seUldGoodsName->Text);
SetDetailValue("goodsspec", GoodsSpec->Text);
SetDetailValue("UldSendDate", deUldSendDate->Text);
SetDetailValue("UldDelay", seUldDelay->Text);
SetDetailValue("UldUrQty",seUldUrQty->Text);
SetDetailValue("UldPOqty",seUldPoQty->Text);
SetDetailValue("UldPsite",seUldPsite->ItemData[1]);
SetDetailValue("Uldunit",seUldUnit->ItemData[1]);
SetDetailValue("Uldrecdate",deUldRecDate->Text);
SetDetailValue("UldStatus",AnsiString(scUldStatus->ItemIndex+1));
AnsiString s = seUldPsite->ItemData[1];
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetDataToGrid();
switch(mAction)
{
case 0:
sgUlh->AddItem(ItemStr);
break;
case 1:
i=sgUlh->Row;
sgUlh->ChangeItem(ItemStr,i);
break;
case 2:
sgUlh->RemoveItem(sgUlh->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::DisplayBill()
{
if (comServer->RecordCount > 0)
{
GetDataFromComObject(1); //向抬头中增加记录
FillGridWithData();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::GetBill(AnsiString BillID)
{
int iRow;
iRow=comServer->Find("UlhCode='"+BillID+"'");
if (iRow>0) //FIND THIS BILL
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgUlh->RowCount=1;
if(comServer->RecordCount>0)
{
for (i=0;i<comServer->ItemCount;i++) {
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmUlh::GetHeadValue(AnsiString fieldname)
{
Variant vTmp;
vTmp=comServer->DataSet->GetHeadValue(fieldname);
if(vTmp.IsNull())
return "";
else
return AnsiString(vTmp);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmUlh::GetDetailValue(AnsiString fieldname)
{
Variant vTmp;
vTmp=comServer->DataSet->GetItemValue(fieldname);
if(vTmp.IsNull())
return "";
else
return AnsiString(vTmp);
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::SetHeadValue(AnsiString fieldname,AnsiString Value)
{
comServer->DataSet->SetMasterValue(fieldname,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmUlh::SetDetailValue(AnsiString fieldname,AnsiString Value)
{
comServer->DataSet->SetDetailValue(fieldname,Value);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?