📄 poh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Poh.h"
#include "Pod.h"
#include "Func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#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)
: TGenBaseForm(Owner,euSdPoh,"")
{
//传采购单号控件指针
AutoCtl=sePohCode;
}
//---------------------------------------------------------------------------
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(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(scPohPmode,"SELECT PmodeCode,PmodeName FROM sdPmode order by PmodeCode","PmodeName","PmodeCode");
FillComboBox(scPohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
FillComboBox(scPohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode","SettleModeName","SettleModeCode");
FillComboBox(scPohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
FillComboBox(scPohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode Order by TransModeCode","TransModeName","TransModeCode");
FillComboBox(scPohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver Order by DeliverCode","DeliverName","DeliverCode");
FillEdit(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(sePohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillComboBox(scPohBuyer,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");
//pod
FillEdit(sePodUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
FillComboBox(scPodDept,"select deptname memo,deptcode from sddept order by deptCode","Memo","DeptCode");
FillComboBox(scPodBatch,"SELECT BatchCode FROM sdBatch Order by BatchCode","BatchCode");
FillEdit(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(fiPohCode);
dePohDate->Text=GetHeadValue(fiPohDate);
scPohPmode->LocateKey(GetHeadValue(fiPohPmode));
scPohPmode->Text=scPohPmode->ItemData[cbItem1];
sePohContract->Text=GetHeadValue(fiPohContract);
scPohSupply->LocateKey(GetHeadValue(fiPohSupply));
scPohSupplyClick(this);
sePohCurrency->LocateKey(GetHeadValue(fiPohCurrency));
scPohSettleMode->LocateKey(GetHeadValue(fiPohSettleMode));
scPohDeliver->LocateKey(GetHeadValue(fiPohDeliver));
scPohTransMode->LocateKey(GetHeadValue(fiPohTransMode));
sePohPsite->LocateKey(GetHeadValue(fiPohPsite));
chkPohClose->Checked=GetHeadValue(fiPohClose)=="1";
chkPohStop->Checked=GetHeadValue(fiPohStop)=="1";
labPohUser->Caption=GetHeadValue(fiPohUser);
dePohSugDate->Text =GetHeadValue(fiPohSugDate);
scPohBuyer->LocateKey(GetHeadValue(fiPohBuyer));
sePohEnrate->Text=GetHeadValue(fiPohEnrate);
scPohTaxCode->LocateKey(GetHeadValue(fiPohTaxCode));
sePohPrePayAmt->Text=GetHeadValue(fiPohPrePayAmt);
sePohPayTerm->Text=GetHeadValue(fiPohPayTerm);
sePohCarriage->Text=GetHeadValue(fiPohCarriage);
chkPohCheck->Checked=GetHeadValue(fiPohCheck)=="1";
labPohChecker->Caption=GetHeadValue(fiPohChecker);
chkPohCancel->Checked=GetHeadValue(fiPohCancel)=="1";
labPohCanceler->Caption=GetHeadValue(fiPohCanceler);
chkPohStop->Checked=GetHeadValue(fiPohStop)=="1";
chkPohClose->Checked=GetHeadValue(fiPohClose)=="1";
memPohDesc->Text=GetHeadValue(fiPohDesc);
//根据审核、取消状态,设置工具栏
if(GetHeadValue(fiPohCheck)=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue(fiPohCancel)=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
//根据结清状态,设置工具栏
if(GetHeadValue(fiPohClose)=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
sePodLine->Text=GetDetailValue(fiPodLine);
g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPodGoods)));
sePodGoods->Text = GetGoodsValue("GoodsCode");
sePodGoodsName->Text = GetGoodsValue("GoodsName");
sePodUnit->LocateKey(GetDetailValue(fiPodUnit));
sePodConvRate->Text=GetDetailValue(fiPodConvRate);
sePodQty->Text=GetDetailValue(fiPodQty);
sePodPrice->Text=GetDetailValue(fiPodPrice);
sePodAmt->Text=GetDetailValue(fiPodAmt);
dePodRecDate->Text=GetDetailValue(fiPodRecDate);
scPodType->LocateKey(GetDetailValue(fiPodType));
scPodFrom->LocateKey(GetDetailValue(fiPodFrom));
scPodStatus->LocateKey(GetDetailValue(fiPodStatus));
sePodFromCode->Text=(GetDetailValue(fiPodFromCode));
sePodFromLine->Text=(GetDetailValue(fiPodFromLine));
chkPodClose->Checked=GetDetailValue(fiPodClose)=="1";
dePodReqDate->Text=GetDetailValue(fiPodReqDate);
dePodSendDate->Text=GetDetailValue(fiPodSendDate);
scPodDept->LocateKey(GetDetailValue(fiPodDept));
sePodLoc->LocateKey(GetDetailValue(fiPodLoc));
scPodBatch->LocateKey(GetDetailValue(fiPodBatch));
sePodSo->Text=GetDetailValue(fiPodSo);
sePodSodLine->Text=GetDetailValue(fiPodSodLine);
labPodDQty->Caption=GetDetailValue(fiPodDQty);
labPodRQty->Caption=GetDetailValue(fiPodRQty);
labPodBQty->Caption=GetDetailValue(fiPodBQty);
labPodFQty->Caption=GetDetailValue(fiPodFQty);
labPodEQty->Caption=GetDetailValue(fiPodEQty);
labPodWQty->Caption=GetDetailValue(fiPodWQty);
memPodDesc->Text=GetDetailValue(fiPodDesc);
//根据结清状态,设置工具栏
if(GetDetailValue(fiPodClose)=="1")
SetCloseDetailStatus(true);
else
SetCloseDetailStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::SendDataToComObject(int Section)
{
double FVal;
if (Section==1)
{
SetHeadValue(fiPohCode,sePohCode->Text);
SetHeadValue(fiPohDate,dePohDate->Text);
SetHeadValue(fiPohPmode,scPohPmode->ItemData[cbItem2]);
SetHeadValue(fiPohContract,sePohContract->Text);
SetHeadValue(fiPohSupply,scPohSupply->ItemData[cbItem2]);
SetHeadValue(fiPohSettleMode,scPohSettleMode->ItemData[cbItem2]);
SetHeadValue(fiPohDeliver,scPohDeliver->ItemData[cbItem2]);
SetHeadValue(fiPohTransMode,scPohTransMode->ItemData[cbItem2]);
SetHeadValue(fiPohPsite,sePohPsite->ItemData[cbItem2]);
SetHeadValue(fiPohBuyer,scPohBuyer->ItemData[1]);
SetHeadValue(fiPohSugDate,dePohSugDate->Text);
SetHeadValue(fiPohCurrency,sePohCurrency->ItemData[cbItem2]);
if(sePohEnrate->Text == "")
throw Exception("请输入货币汇率");
SetHeadValue(fiPohEnrate,sePohEnrate->Text);
SetHeadValue(fiPohTaxCode,scPohTaxCode->ItemData[cbItem2]);
SetHeadValue(fiPohUser,labPohUser->Caption);
if(sePohPayTerm->Text == "")
sePohPayTerm->Text="0";
SetHeadValue(fiPohPayTerm,sePohPayTerm->Text);
if(sePohPrePayAmt->Text == "")
sePohPrePayAmt->Text="0.00";
SetHeadValue(fiPohPrePayAmt,sePohPrePayAmt->Text);
if(sePohCarriage->Text == "")
sePohCarriage->Text="0.00";
SetHeadValue(fiPohCarriage,sePohCarriage->Text);
SetHeadValue(fiPohDesc,memPohDesc->Text);
}
else
{
if(sePodQty->Text.IsEmpty())
sePodQty->Text="0";
if(sePodPrice->Text.IsEmpty())
sePodPrice->Text="0";
FVal=sePodQty->Text.ToDouble()*sePodPrice->Text.ToDouble();
sePodAmt->Text=DataCarry(FVal,2,0);
//给单行的采购单赋值
SetDetailValue(fiPodCode,sePohCode->Text);
if(sePodLine->Text == "")
throw Exception("请输入采购单行号");
SetDetailValue(fiPodLine,sePodLine->Text);
SetDetailValue(fiPodGoods,sePodGoods->Text);
SetDetailValue(fiPodLoc,sePodLoc->ItemData[cbItem2]);
SetDetailValue(fiPodUnit,sePodUnit->ItemData[cbItem2]);
if(sePodConvRate->Text == "")
throw Exception("请输入单位转换系数");
SetDetailValue(fiPodConvRate,sePodConvRate->Text);
if(sePodQty->Text == "")
throw Exception("请输入采购数量");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -