poh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 1,098 行 · 第 1/3 页
CPP
1,098 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "KSPurFuc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Poh.h"
#include "Pod.h"
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
//-------------------------------------------------------------------------------
TfrmPoh *frmPoh;
//---------------------------------------------------------------------------
__fastcall TfrmPoh::TfrmPoh(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
SetAutoCodeString(sePohCode,"Acm-004");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,sePohCode,sePohCode->Name);
ClientGroup->AddComponent(1,false,true,true,scPohSupply,scPohSupply->Name);
ClientGroup->AddComponent(1,false,false,true,scPohTaxCode,scPohTaxCode->Name);
ClientGroup->AddComponent(1,false,true,true,SupplyCodeButton,SupplyCodeButton->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,true,chkPodClose,chkPodClose->Name);
ClientGroup->AddComponent(2,true,true,true,scPodStatus,scPodStatus->Name);
ClientGroup->AddComponent(2,true,true,true,scPodType,scPodType->Name);
ClientGroup->AddComponent(2,false,true,true,sePodGoods,sePodGoods->Name);
ClientGroup->AddComponent(2,true,true,true,scPodFrom,scPodFrom->Name);
ClientGroup->AddComponent(2,true,true,true,sePodAmt,sePodAmt->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
ClientGroup->AddComponent(2,true,true,true,sePodFromCode,sePodFromCode->Name);
ClientGroup->AddComponent(2,true,true,true,sePodFromLine,sePodFromLine->Name);
ClientGroup->AddComponent(2,true,true,true,sePodSodLine,sePodSodLine->Name);
//poh
FillComboBox(Handle,scPohPmode,"SELECT PmodeCode,PmodeName FROM sdPmode order by PmodeCode","PmodeName","PmodeCode");
FillComboBox(Handle,scPohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
FillComboBox(Handle,scPohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode","SettleModeName","SettleModeCode");
FillComboBox(Handle,scPohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
FillComboBox(Handle,scPohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode Order by TransModeCode","TransModeName","TransModeCode");
FillComboBox(Handle,scPohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver Order by DeliverCode","DeliverName","DeliverCode");
FillEdit(Handle,sePohPsite,"SELECT distinct PsiteCode,PsiteName FROM sdPsite Order by PsiteCode","PsiteName","PsiteCode");
AnsiString sSql;
sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
sSql+=" where currencycode*=ratecurrency and ";
sSql+=" ratefmonth='"+g_sdPMonth+"'";
FillEdit(Handle,sePohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillComboBox(Handle,scPohBuyer,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");
//pod
FillEdit(Handle,sePodUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
FillComboBox(Handle,scPodDept,"select deptname memo,deptcode from sddept order by deptCode","Memo","DeptCode");
FillComboBox(Handle,scPodBatch,"SELECT BatchCode FROM sdBatch Order by BatchCode","BatchCode");
FillEdit(Handle,sePodLoc,"SELECT LocName,LocCode FROM sdLoc where LocType=1 Order by LocCode","LocName","LocCode");
scPodType->ClearAll();
scPodType->AddItems("1-手工录入","1");
scPodType->AddItems("2-系统生成","2");
scPodFrom->ClearAll();
scPodFrom->AddItems("1-常规需求","1");
scPodFrom->AddItems("2-MRP需求","2");
scPodFrom->AddItems("3-库存需求","3");
scPodStatus->ClearAll();
scPodStatus->AddItems("1-待审核","1");
scPodStatus->AddItems("2-已确认","2");
scPodStatus->AddItems("3-已下达","3");
scPodStatus->AddItems("4-已关闭","4");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
sePohCode->Text ="";
dePohDate->Text = g_sdCurDate;
scPohPmode->Text ="";
scPohPmode->ItemIndex=-1;
sePohContract->Text ="";
scPohSupply->ItemIndex=-1;
scPohSettleMode->Text = "";
scPohSettleMode->ItemIndex=-1;
scPohDeliver->Text="";
scPohDeliver->ItemIndex=-1;
sePohPsite->ItemIndex=-1;
chkPohClose->Checked=false;
scPohTransMode->Text="";
scPohTransMode->ItemIndex=-1;
chkPohStop->Checked=false;
scPohBuyer->LocateKey(g_sdUserCode);
dePohSugDate->Text=g_sdCurDate ;
sePohCurrency->ItemIndex=-1;
sePohEnrate->Text ="1.00";
scPohTaxCode->Text = "";
scPohTaxCode->ItemIndex=-1;
sePohPrePayAmt->Text="0.00";
sePohPayTerm->Text ="0";
sePohCarriage->Text="0.00";
labPohUser->Caption=g_sdUserCode;
chkPohCheck->Checked=false;
labPohChecker->Caption="";
chkPohCancel->Checked=false;
labPohCanceler->Caption="";
memPohDesc->Text="";
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgPoh->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
sePodLine->Text =AnsiString(comServer->ItemCount+1);
sePodGoods->Text="";
pv_GoodsCode="";
sePodGoodsName->Text ="";
sePodUnit->ItemIndex=-1;
sePodConvRate->Text="1";
sePodPrice->Text="0.00";
sePodQty->Text="0.00";
sePodAmt->Text="0.00";
labPodDQty->Caption="0.00";
labPodRQty->Caption="0.00";
labPodBQty->Caption="0.00";
labPodFQty->Caption="0.00";
labPodEQty->Caption="0.00";
labPodWQty->Caption="0.00";
dePodRecDate->Text=g_sdCurDate;
scPodType->ItemIndex=0;
scPodFrom->ItemIndex=0;
scPodStatus->ItemIndex=0;
sePodFromCode->Text="";
sePodFromLine->Text="0";
chkPodClose->Checked = false;
dePodReqDate->Text=g_sdCurDate;
dePodSendDate->Text=g_sdCurDate;
scPodDept->Text="";
scPodDept->ItemIndex=-1;
sePodLoc->ItemIndex=-1;
scPodBatch->Text="";
scPodBatch->ItemIndex=-1;
sePodSo->Text="";
sePodSodLine->Text="";
memPodDesc->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePohCode->Text=GetHeadValue("PohCode");
dePohDate->Text=GetHeadValue("PohDate");
scPohPmode->LocateKey(GetHeadValue("PohPmode"));
scPohPmode->Text=scPohPmode->ItemData[cbItem1];
sePohContract->Text=GetHeadValue("PohContract");
scPohSupply->LocateKey(GetHeadValue("PohSupply"));
scPohSupplyClick(this);
sePohCurrency->LocateKey(GetHeadValue("PohCurrency"));
scPohSettleMode->LocateKey(GetHeadValue("PohSettleMode"));
scPohDeliver->LocateKey(GetHeadValue("PohDeliver"));
scPohTransMode->LocateKey(GetHeadValue("PohTransMode"));
sePohPsite->LocateKey(GetHeadValue("PohPsite"));
chkPohClose->Checked=GetHeadValue("PohClose")=="1";
chkPohStop->Checked=GetHeadValue("PohStop")=="1";
labPohUser->Caption=GetHeadValue("PohUser");
dePohSugDate->Text =GetHeadValue("PohSugDate");
scPohBuyer->LocateKey(GetHeadValue("PohBuyer"));
sePohEnrate->Text=GetHeadValue("PohEnrate");
scPohTaxCode->LocateKey(GetHeadValue("PohTaxCode"));
sePohPrePayAmt->Text=GetHeadValue("PohPrePayAmt");
sePohPayTerm->Text=GetHeadValue("PohPayTerm");
sePohCarriage->Text=GetHeadValue("PohCarriage");
chkPohCheck->Checked=GetHeadValue("PohCheck")=="1";
labPohChecker->Caption=GetHeadValue("PohChecker");
chkPohCancel->Checked=GetHeadValue("PohCancel")=="1";
labPohCanceler->Caption=GetHeadValue("PohCanceler");
chkPohStop->Checked=GetHeadValue("PohStop")=="1";
chkPohClose->Checked=GetHeadValue("PohClose")=="1";
memPohDesc->Text=GetHeadValue("PohDesc");
//根据审核、取消状态,设置工具栏
if(GetHeadValue("PohCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue("PohCancel")=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
//根据结清状态,设置工具栏
if(GetHeadValue("PohClose")=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
sePodLine->Text=GetDetailValue("PodLine");
sePodGoods->Text =GetDetailValue("PodGoods");
sePodGoodsName->Text = GetDetailValue("GoodsName");
GoodsSpec->Text = GetDetailValue("Goodsspec");
sePodUnit->LocateKey(GetDetailValue("PodUnit"));
sePodConvRate->Text=GetDetailValue("PodConvRate");
sePodQty->Text=GetDetailValue("PodQty");
sePodPrice->Text=GetDetailValue("PodPrice");
sePodAmt->Text=GetDetailValue("PodAmt");
dePodRecDate->Text=GetDetailValue("PodRecDate");
scPodType->LocateKey(GetDetailValue("PodType"));
scPodFrom->LocateKey(GetDetailValue("PodFrom"));
scPodStatus->LocateKey(GetDetailValue("PodStatus"));
sePodFromCode->Text=(GetDetailValue("PodFromCode"));
sePodFromLine->Text=(GetDetailValue("PodFromLine"));
chkPodClose->Checked=GetDetailValue("PodClose")=="1";
dePodReqDate->Text=GetDetailValue("PodReqDate");
dePodSendDate->Text=GetDetailValue("PodSendDate");
scPodDept->LocateKey(GetDetailValue("PodDept"));
sePodLoc->LocateKey(GetDetailValue("PodLoc"));
scPodBatch->LocateKey(GetDetailValue("PodBatch"));
sePodSo->Text=GetDetailValue("PodSo");
sePodSodLine->Text=GetDetailValue("PodSodLine");
labPodDQty->Caption=GetDetailValue("PodDQty");
labPodRQty->Caption=GetDetailValue("PodRQty");
labPodBQty->Caption=GetDetailValue("PodBQty");
labPodFQty->Caption=GetDetailValue("PodFQty");
labPodEQty->Caption=GetDetailValue("PodEQty");
labPodWQty->Caption=GetDetailValue("PodWQty");
memPodDesc->Text=GetDetailValue("PodDesc");
//根据结清状态,设置工具栏
if(GetDetailValue("PodClose")=="1")
SetCloseItemStatus(true);
else
SetCloseItemStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::SendDataToComObject(int Section)
{
double DVal=0;
if (Section==1)
{
if(scPohSupply->ItemData[cbItem2]=="")
throw Exception("请输入供应商代码");
if(scPohSettleMode->ItemData[cbItem2]=="")
throw Exception("请输入结算方式");
if(sePohCurrency->ItemData[cbItem2]=="")
throw Exception("请输入币种");
if(scPohTaxCode->ItemData[cbItem2]=="")
throw Exception("请输入税码");
if(scPohBuyer->ItemData[1]=="")
throw Exception("请输入采购员");
SetHeadValue("PohCode",sePohCode->Text);
SetHeadValue("PohDate",dePohDate->Text);
SetHeadValue("PohPmode",scPohPmode->ItemData[cbItem2]);
SetHeadValue("PohContract",sePohContract->Text);
SetHeadValue("PohSupply",scPohSupply->ItemData[cbItem2]);
SetHeadValue("PohSettleMode",scPohSettleMode->ItemData[cbItem2]);
SetHeadValue("PohDeliver",scPohDeliver->ItemData[cbItem2]);
SetHeadValue("PohTransMode",scPohTransMode->ItemData[cbItem2]);
SetHeadValue("PohPsite",sePohPsite->ItemData[cbItem2]);
SetHeadValue("PohBuyer",scPohBuyer->ItemData[1]);
SetHeadValue("PohSugDate",dePohSugDate->Text);
SetHeadValue("PohCurrency",sePohCurrency->ItemData[cbItem2]);
if(sePohEnrate->Text == "")
throw Exception("请输入货币汇率");
SetHeadValue("PohEnrate",sePohEnrate->Text);
SetHeadValue("PohTaxCode",scPohTaxCode->ItemData[cbItem2]);
SetHeadValue("PohUser",labPohUser->Caption);
if(sePohPayTerm->Text == "")
sePohPayTerm->Text="0";
SetHeadValue("PohPayTerm",sePohPayTerm->Text);
if(sePohPrePayAmt->Text == "")
sePohPrePayAmt->Text="0.00";
SetHeadValue("PohPrePayAmt",sePohPrePayAmt->Text);
if(sePohCarriage->Text == "")
sePohCarriage->Text="0.00";
SetHeadValue("PohCarriage",sePohCarriage->Text);
SetHeadValue("PohDesc",memPohDesc->Text);
}
else
{
if(sePodGoods->Text=="")
throw Exception("请输入物料编码");
if(sePodQty->Text.IsEmpty())
sePodQty->Text="0";
if(sePodPrice->Text.IsEmpty())
sePodPrice->Text="0";
DVal=sePodQty->Text.ToDouble()*sePodPrice->Text.ToDouble();
sePodAmt->Text=DataCarry(DVal,2,0);
//给单行的采购单赋值
SetDetailValue("PodCode",sePohCode->Text);
if(sePodLine->Text == "")
throw Exception("请输入采购单行号");
SetDetailValue("PodLine",sePodLine->Text);
SetDetailValue("PodGoods",sePodGoods->Text);
SetDetailValue("PodLoc",sePodLoc->ItemData[cbItem2]);
SetDetailValue("PodUnit",sePodUnit->ItemData[cbItem2]);
if(sePodConvRate->Text == ""||sePodConvRate->Text == "0")
throw Exception("请输入单位转换系数");
SetDetailValue("PodConvRate",sePodConvRate->Text);
if(sePodQty->Text == "0.00")
throw Exception("请输入采购数量");
SetDetailValue("PodQty",sePodQty->Text);
if(sePodPrice->Text == "0.00")
throw Exception("请输入采购单价");
SetDetailValue("PodPrice",sePodPrice->Text);
SetDetailValue("PodType",scPodType->ItemData[cbItem2]);
SetDetailValue("PodFrom",scPodFrom->ItemData[cbItem2]);
SetDetailValue("PodStatus",scPodStatus->ItemData[cbItem2]);
SetDetailValue("PodDept",scPodDept->ItemData[cbItem2]);
SetDetailValue("PodFromCode",sePodFromCode->Text);
SetDetailValue("PodFromLine",sePodFromLine->Text);
SetDetailValue("PodBatch",scPodBatch->Text);
SetDetailValue("PodSendDate",dePodSendDate->Text);
SetDetailValue("PodRecDate",dePodRecDate->Text);
SetDetailValue("PodReqDate",dePodReqDate->Text);
SetDetailValue("PodSo",sePodSo->Text);
SetDetailValue("PodSodLine",sePodSodLine->Text);
SetDetailValue("PodDesc",memPodDesc->Text);
SetDetailValue("PodDesc",memPodDesc->Text);
SetDetailValue("PodAmt",sePodAmt->Text);
SetDetailValue("goodsname",sePodGoodsName->Text);
SetDetailValue("goodsspec",GoodsSpec->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::WaitUserInput(int Section)
{
if (Section ==1)
{
if(sePohCode->Enabled)
sePohCode->SetFocus();
sePohCurrencyExit(NULL);
}
else
{
sgPoh->Visible=false;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?