📄 prech_p_i.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Prech_P_I.h"
#include "Precd_P_I.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmPrech_P_I *frmPrech_P_I;
//---------------------------------------------------------------------------
__fastcall TfrmPrech_P_I::TfrmPrech_P_I(TComponent* Owner)
: TGenBaseForm(Owner,euSdPrech_P_I,"")
{
pv_GoodsCode="";
AutoCtl=sePrechCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,sePrechCode,sePrechCode->Name);
ClientGroup->AddComponent(1,true,true,true,scPrechFmonth,scPrechFmonth->Name);
ClientGroup->AddComponent(1,false,true,true,scPrechSupply,scPrechSupply->Name);
ClientGroup->AddComponent(1,false,true,true,sePrechCurrency,sePrechCurrency->Name);
ClientGroup->AddComponent(1,false,true,true,sePrechEnrate,sePrechEnrate->Name);
ClientGroup->AddComponent(1,false,true,true,sePrechEnrate,sePrechEnrate->Name);
ClientGroup->AddComponent(1,false,true,true,scPrechTaxCode,scPrechTaxCode->Name);
ClientGroup->AddComponent(2,true,true,false,sgPrech_P_I,sgPrech_P_I->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true,sePrecdPo,sePrecdPo->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdPodLine,sePrecdPodLine->Name);
ClientGroup->AddComponent(2,true,true,true,GroupBox5,GroupBox5->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,sePrecdGoods,sePrecdGoods->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdGoodsName,sePrecdGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,scPrecdUnit,scPrecdUnit->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdConv,sePrecdConv->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdTAmt,sePrecdTAmt->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdSodLine,sePrecdSodLine->Name);
FillComboBox(scPrechPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=1 order by PosTypeCode",
"PosTypeName","PosTypeCode");
FillComboBox(scPrechSupply,"SELECT SupplyCode,SupplyName FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode");
FillComboBox(scPrechTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");
FillComboBox(scPrechSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode",
"SettleModeName","SettleModeCode");
FillComboBox(scPrechDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver order by DeliverCode",
"DeliverName","DeliverCode");
FillComboBox(scPrechTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeCode",
"TransModeName","TransModeCode");
FillComboBox(scPrecdUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
FillComboBox(scPrecdBatch,"SELECT BatchCode FROM sdBatch order by BatchCode","BatchCode");
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(sePrechCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
if(g_sdQuality == false) //无需质量管理
sSql = "select LocCode,LocName from sdLoc where LocType=1 order by locCode";
else //需要质量管理
sSql = "select LocCode,LocName from sdLoc where LocType=3 order by loccode";
FillEdit(sePrecdLoc,sSql,"LocName","LocCode");
FillEdit(sePrechPsite,"select PsiteCode,PsiteName from sdpsite ","psitename","psitecode");
scPrecdState->ClearAll();
scPrecdState->AddItems("1-未检","1");
scPrecdState->AddItems("2-已检","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
sePrechCode->Text = "";
scPrechFmonth->Text = g_sdPMonth;
dePrechDate->Text = g_sdCurDate;
scPrechPosType->ItemIndex=0;
dePrechSendDate->Text=g_sdCurDate;
sePrechTransCode->Text = "";
scPrechSupply->ItemIndex=-1;
sePrechCurrency->ItemIndex=-1;
sePrechEnrate->Text = "1";
scPrechTaxCode->Text = "";
scPrechTaxCode->ItemIndex=-1;
scPrechSettleMode->Text = "";
scPrechSettleMode->ItemIndex=-1;
scPrechDeliver->Text = "";
scPrechDeliver->ItemIndex=-1;
scPrechTransMode->Text = "";
scPrechTransMode->ItemIndex=-1;
sePrechPsite->ItemIndex=-1;
labUserCode->Caption=g_sdUserCode;
cbPrechCheck->Checked=false;
labChecker->Caption="";
cbPrechCancel->Checked=false;
cbPrechClose->Checked =false;
labSystemDate->Caption = "";
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgPrech_P_I->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
sePrecdLine->Text=AnsiString(comServer->ItemCount+1);
sePrecdPo->Text="";
sePrecdPodLine->Text="";
sePrecdGoods->Text="";
sePrecdGoodsName->Text="";
scPrecdUnit->Text="";
scPrecdUnit->ItemIndex=-1;
sePrecdConv->Text="1";
sePrecdQty->Text="0";
sePrecdPrice->Text="0.00";
sePrecdAmt->Text="0";
sePrecdTAmt->Text="0";
sePrecdDQty->Text="0";
sePrecdKAmt->Text="0";
sePrecdLoc->ItemIndex=-1;
scPrecdBatch->Text="";
scPrecdBatch->ItemIndex=-1;
sePrecdSo->Text="";
sePrecdSodLine->Text="0";
sePrecdIQty->Text="0";
sePrecdBQty->Text="0";
sePrecdEQty->Text="0";
sePrecdVQty->Text="0";
scPrecdState->ItemIndex=0;
chkPrecdClose->Checked=false;
dePrecdCloseDate->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePrechCode->Text =GetHeadValue(fiPrechCode);
scPrechFmonth->Text=GetHeadValue(fiPrechFmonth);
dePrechDate->Text=GetHeadValue(fiPrechDate);
scPrechPosType->LocateKey(GetHeadValue(fiPrechPosType));
scPrechSupply->LocateKey(GetHeadValue(fiPrechSupply));
sePrechCurrency->LocateKey(GetHeadValue(fiPrechCurrency));
sePrechEnrate->Text=GetHeadValue(fiPrechEnrate);
scPrechTaxCode->LocateKey(GetHeadValue(fiPrechTaxCode));
scPrechSettleMode->LocateKey(GetHeadValue(fiPrechSettleMode));
scPrechSettleMode->Text=scPrechSettleMode->ItemData[0];
scPrechDeliver->LocateKey(GetHeadValue(fiPrechDeliver));
scPrechTransMode->LocateKey(GetHeadValue(fiPrechTransMode));
sePrechPsite->LocateKey(GetHeadValue(fiPrechPsite));
dePrechSendDate->Text=GetHeadValue(fiPrechSendDate);
sePrechTransCode->Text=GetHeadValue(fiPrechTransCode);
labUserCode->Caption=GetHeadValue(fiPrechUser);
cbPrechCheck->Checked=GetHeadValue(fiPrechCheck)=="1";
labChecker->Caption=GetHeadValue(fiPrechChecker);
cbPrechCancel->Checked=GetHeadValue(fiPrechCancel)=="1";
cbPrechClose->Checked=GetHeadValue(fiPrechClose)=="1";
labSystemDate->Caption=GetHeadValue(fiPrechSysDate);
//根据采购订单,填充行号
// FillLineData();
//根据审核、取消状态,设置工具栏
if(GetHeadValue(fiPrechCheck)=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue(fiPrechCancel)=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
if(GetHeadValue(fiPrechClose)=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
sePrecdPo->Text=GetDetailValue(fiPrecdPo);
sePrecdLine->Text=GetDetailValue(fiPrecdLine);
sePrecdPodLine->Text=GetDetailValue(fiPrecdPodLine);
g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPrecdGoods)));
sePrecdGoods->Text=GetGoodsValue("GoodsCode");
sePrecdGoodsName->Text=GetGoodsValue("GoodsName");
scPrecdUnit->LocateKey(GetDetailValue(fiPrecdUnit));
sePrecdConv->Text=GetDetailValue(fiPrecdConv);
sePrecdQty->Text=GetDetailValue(fiPrecdQty);
sePrecdPrice->Text=GetDetailValue(fiPrecdPrice);
sePrecdAmt->Text=GetDetailValue(fiPrecdAmt);
sePrecdTAmt->Text=GetDetailValue(fiPrecdTAmt);
sePrecdDQty->Text=GetDetailValue(fiPrecdDQty);
sePrecdKAmt->Text=GetDetailValue(fiPrecdKAmt);
sePrecdLoc->LocateKey(GetDetailValue(fiPrecdLoc));
scPrecdBatch->LocateKey(GetDetailValue(fiPrecdBatch));
sePrecdSo->Text=GetDetailValue(fiPrecdSo);
sePrecdSodLine->Text=GetDetailValue(fiPrecdSodLine);
sePrecdIQty->Text=GetDetailValue(fiPrecdIQty);
sePrecdBQty->Text=GetDetailValue(fiPrecdBQty);
sePrecdEQty->Text=GetDetailValue(fiPrecdEQty);
sePrecdVQty->Text=GetDetailValue(fiPrecdVQty);
scPrecdState->LocateKey(GetDetailValue(fiPrecdState));
chkPrecdClose->Checked=(GetDetailValue(fiPrecdClose)=="1");
dePrecdCloseDate->Text=GetDetailValue(fiPrecdCloseDate);
//根据结清状态,设置工具栏
if(GetDetailValue(fiPrecdClose)=="1")
SetCloseDetailStatus(true);
else
SetCloseDetailStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::SendDataToComObject(int Section)
{
int iRow;
if (Section==1)
{
SetHeadValue(fiPrechCode,sePrechCode->Text );
SetHeadValue(fiPrechFmonth,scPrechFmonth->Text);
SetHeadValue(fiPrechDate,dePrechDate->Text);
SetHeadValue(fiPrechPosType,scPrechPosType->ItemData[cbItem2]);
SetHeadValue(fiPrechSendDate,dePrechSendDate->Text);
SetHeadValue(fiPrechTransCode,sePrechTransCode->Text);
SetHeadValue(fiPrechUser,labUserCode->Caption);
SetHeadValue(fiPrechSupply,scPrechSupply->ItemData[cbItem2]);
SetHeadValue(fiPrechCurrency,sePrechCurrency->ItemData[cbItem2]);
if(sePrechEnrate->Text=="")
throw Exception("请输入汇率");
SetHeadValue(fiPrechEnrate,sePrechEnrate->Text);
SetHeadValue(fiPrechSettleMode,scPrechSettleMode->ItemData[cbItem2]);
SetHeadValue(fiPrechDeliver,scPrechDeliver->ItemData[cbItem2]);
SetHeadValue(fiPrechTransMode,scPrechTransMode->ItemData[cbItem2]);
SetHeadValue(fiPrechTaxCode,scPrechTaxCode->ItemData[cbItem2]);
SetHeadValue(fiPrechPsite,sePrechPsite->ItemData[cbItem2]);
}
else
{
SetDetailValue(fiPrecdCode,sePrechCode->Text);
if(sePrecdLine->Text.IsEmpty())
throw Exception("请输入行号");
SetDetailValue(fiPrecdLine,sePrecdLine->Text);
SetDetailValue(fiPrecdPo,sePrecdPo->Text);
SetDetailValue(fiPrecdPodLine,sePrecdPodLine->Text);
SetDetailValue(fiPrecdGoods,sePrecdGoods->Text);
SetDetailValue(fiPrecdUnit,scPrecdUnit->ItemData[cbItem2]);
if(sePrecdConv->Text == "")
sePrecdConv->Text="1";
SetDetailValue(fiPrecdConv,sePrecdConv->Text);
if(sePrecdQty->Text == "")
throw Exception("请输入收货数量");
SetDetailValue(fiPrecdQty,sePrecdQty->Text);
if(sePrecdPrice->Text == "")
throw Exception("请输入收货单价");
SetDetailValue(fiPrecdPrice,sePrecdPrice->Text);
if(sePrecdAmt->Text == "")
throw Exception("请输入金额");
SetDetailValue(fiPrecdAmt,sePrecdAmt->Text);
if(sePrecdTAmt->Text == "")
sePrecdTAmt->Text ="0";
SetDetailValue(fiPrecdTAmt,sePrecdTAmt->Text);
if(sePrecdDQty->Text == "")
throw Exception("请输入送货数量");
SetDetailValue(fiPrecdDQty,sePrecdDQty->Text);
if(sePrecdKAmt->Text == "")
sePrecdTAmt->Text ="0";
// SetDetailValue(fiPrecdKAmt,sePrecdKAmt->Text);
//这里需计算税
SetDetailValue(fiPrecdLoc,sePrecdLoc->ItemData[cbItem2]);
SetDetailValue(fiPrecdBatch,scPrecdBatch->Text);
SetDetailValue(fiPrecdSo,sePrecdSo->Text);
if(Trim(sePrecdSodLine->Text)!="")
SetDetailValue(fiPrecdSodLine,sePrecdSodLine->Text);
else
SetDetailValue(fiPrecdSodLine,"0");
SetDetailValue(fiPrecdRDate,dePrecdRDate->Text);
SetDetailValue(fiPrecdCDate,dePrecdCDate->Text);
// SetDetailValue(fiPrecdState,scPrecdState->ItemData[1]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::WaitUserInput(int Section)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -