rpoh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 904 行 · 第 1/3 页
CPP
904 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Rpoh.h"
#include "Rpod.h"
#include "KSPurFuc.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"
//-------------------------------------------------------------------------------
TfrmRpoh *frmRpoh;
//---------------------------------------------------------------------------
__fastcall TfrmRpoh::TfrmRpoh(TComponent* Owner, HWND chWnd, AnsiString ClassCode,
AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
SetAutoCodeString(seRpohCode,"Acm-001");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::InitEditControl()
{
ClientGroup->AddComponent(1,true,true,false,sgRpoh,sgRpoh->Name);
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,true,scRpohSupplyCode,scRpohSupplyCode->Name);
ClientGroup->AddComponent(1,false,true,true,SupplyCodeButton,SupplyCodeButton->Name);
ClientGroup->AddComponent(1,false,true,true,seRpohCode,seRpohCode->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,true,GroupBox2,GroupBox2->Name);
ClientGroup->AddComponent(2,true,true,true,scRpodStatus,scRpodStatus->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,scRpodFrom,scRpodFrom->Name);
ClientGroup->AddComponent(2,false,false,true,seRpodQty,seRpodQty->Name);
ClientGroup->AddComponent(2,true,true,true,seRpodAmt,seRpodAmt->Name);
ClientGroup->AddComponent(2,false,false,true,seRpodGoodsCode,seRpodGoodsCode->Name);
ClientGroup->AddComponent(2,false,false,true,seRpodUnitCode,seRpodUnitCode->Name);
//Rpoh
FillEdit(Handle,seRpohCurrencyCode,"SELECT CurrencyCode,CurrencyName FROM sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
FillComboBox(Handle,scRpohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
FillEdit(Handle,seRpohPsiteCode,"SELECT distinct PsiteCode,PsiteName FROM sdPsite Order by PsiteCode","PsiteName","PsiteCode");
FillComboBox(Handle,scRpohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode",
"SettleModeName","SettleModeCode");
FillComboBox(Handle,scRpohSupplyCode,"SELECT SupplyCode,SupplyName,SupplyTaxCode FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyCode");
FillComboBox(Handle,scRpohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver order by DeliverCode","DeliverName","DeliverCode");
FillComboBox(Handle,scRpohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeCode","TransModeName","TransModeCode");
FillComboBox(Handle,scRpohBuyerCode,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");
//Rpod
FillEdit(Handle,seRpodUnitCode,"SELECT UnitCode,UnitName,UnitRate FROM sdUnit order by UnitCode","UnitName","UnitCode","UnitRate");
FillComboBox(Handle,scRpodDeptCode,"SELECT DeptCode,DeptName FROM sdDept order by DeptCode","DeptName","DeptCode");
AnsiString sSql;
// 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(Handle,seRpodLocCode,sSql,"LocName","LocCode");
scRpodStatus->ClearAll();
scRpodStatus->AddItems("1-手工","1");
scRpodStatus->AddItems("2-生成","2");
scRpodStatus->AddItems("3-完毕","3");
scRpodFrom->ClearAll();
scRpodFrom->AddItems("1-常规需求","1");
scRpodFrom->AddItems("2-MRP需求","2");
scRpodFrom->AddItems("3-库存需求","3");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (!BringToNext)
{
seRpohCode->Text ="";
scRpohSupplyCode->Text ="";
scRpohSupplyCode->ItemIndex=-1;
deRpohDate->Text=g_sdCurDate;
scRpohBuyerCode->LocateKey(g_sdUserCode);
scRpohTaxCode->Text = "";
scRpohTaxCode->ItemIndex=-1;
scRpohSettleMode->Text = "";
scRpohSettleMode->ItemIndex=-1;
seRpohPsiteCode->Text="";
seRpohPsiteCode->ItemIndex=-1;
scRpohTransMode->Text="";
scRpohTransMode->ItemIndex=-1;
scRpohDeliver->Text="";
scRpohDeliver->ItemIndex=-1;
seRpohCurrencyCode->ItemIndex=-1;
cbxRpohCheck->Checked =false;
labRpohChecker->Caption ="";
cbxRpohCancel->Checked=false;
cbxRpohClose->Checked=false;
labRpohSysDate->Caption = "";
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgRpoh->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seRpodLine->Text =AnsiString(comServer->ItemCount+1);
seRpodGoodsCode->Text="";
pv_GoodsCode="";
labRpodGoodsName->Caption ="";
GoodsSpec->Caption="";//goodsspec clear
seRpodUnitCode->Text ="";
seRpodUnitCode->ItemIndex=-1;
seRpodConvRate->Text="1";
labRpodPQty->Caption="0.00";
seRpodQty->Text="0.00";
seRpodPrice->Text="0.00";
seRpodAmt->Text="0.00";
deRpodRecDate->Text="";
scRpodFrom->ItemIndex=0;
scRpodStatus->ItemIndex=0;
ChkRpodClose->Checked = false;
seRpodCloseDate->Text="";
deRpodReqDate->Text="";
scRpodDeptCode->Text="";
scRpodDeptCode->ItemIndex=-1;
seRpodLocCode->Text="";
seRpodLocCode->ItemIndex=-1;
memRpodDesc->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::GetDataFromComObject(int Section)
{
if (Section==1)
{
seRpohCode->Text=GetHeadValue("RpohCode");
AnsiString s= GetHeadValue("RpohSupplyCode");
scRpohSupplyCode->LocateKey(GetHeadValue("RpohSupplyCode"));
AnsiString y = scRpohSupplyCode->Text ;
deRpohDate->Text=GetHeadValue("RpohDate");
scRpohBuyerCode->LocateKey(GetHeadValue("RpohBuyerCode"));
scRpohTaxCode->LocateKey(GetHeadValue("RpohTaxCode"));
scRpohSettleMode->LocateKey(GetHeadValue("RpohSettleMode"));
scRpohDeliver->LocateKey(GetHeadValue("RpohDeliver"));
scRpohTransMode->LocateKey(GetHeadValue("RpohTransMode"));
seRpohPsiteCode->LocateKey(GetHeadValue("RpohPsite"));
seRpohCurrencyCode->LocateKey(GetHeadValue("RpohCurrencyCode"));
labRpohSysDate->Caption =GetHeadValue("RpohSysDate");
cbxRpohCheck->Checked =GetHeadValue("RpohCheck")=="1";
labRpohChecker->Caption=GetHeadValue("RpohChecker");
cbxRpohCancel->Checked =GetHeadValue("RpohCancel")=="1";
cbxRpohClose->Checked =GetHeadValue("RpohClose")=="1";
//根据审核、取消状态,设置工具栏
if((GetHeadValue("RpohCheck")=="1"))
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue("RpohCancel")=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
if(GetHeadValue("RpohClose")=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
seRpodLine->Text=GetDetailValue("RpodLine");
seRpodGoodsCode->Text = GetDetailValue("RpodGoodsCode");
labRpodGoodsName->Caption = GetDetailValue("GoodsName");
GoodsSpec->Caption= GetDetailValue("GoodsSpec");
SetDetail(seRpodGoodsCode->Text);
seRpodUnitCode->LocateKey(GetDetailValue("RpodUnitCode"));
seRpodConvRate->Text=GetDetailValue("RpodConvRate");
seRpodQty->Text=GetDetailValue("RpodQty");
seRpodPrice->Text=GetDetailValue("RpodPrice");
seRpodAmt->Text=GetDetailValue("RpodAmt");
deRpodRecDate->Text=GetDetailValue("RpodRecDate");
scRpodFrom->LocateKey(GetDetailValue("RpodFrom"));
scRpodStatus->LocateKey(GetDetailValue("RpodStatus"));
ChkRpodClose->Checked=GetDetailValue("RpodClose")=="1";
seRpodCloseDate->Text=GetDetailValue("RpodCloseDate");
deRpodReqDate->Text=GetDetailValue("RpodReqDate");
scRpodDeptCode->LocateKey(GetDetailValue("RpodDept"));
seRpodLocCode->LocateKey(GetDetailValue("RpodLocCode"));
labRpodPQty->Caption=GetDetailValue("RpodPQty");
memRpodDesc->Text=GetDetailValue("RpodDesc");
if(GetDetailValue("RpodClose")=="1")
SetCloseItemStatus(true);
else
SetCloseItemStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::SendDataToComObject(int Section)
{
if (Section==1)
{
if(seRpohCode->Text=="")
throw Exception("请购单单号不能为空");
if(scRpohSupplyCode->ItemData[cbItem2]=="")
throw Exception("供应商不能为空");
if(seRpohCurrencyCode->ItemData[cbItem2]=="")
throw Exception("币种不能为空");
if(scRpohTaxCode->ItemData[cbItem2]=="")
throw Exception("税码不能为空");
SetHeadValue("RpohCode",seRpohCode->Text );
SetHeadValue("RpohSupplyCode",scRpohSupplyCode->ItemData[cbItem2]);
SetHeadValue("RpohDate",deRpohDate->Text);
SetHeadValue("RpohBuyerCode",scRpohBuyerCode->ItemData[1]);
SetHeadValue("RpohTaxCode",scRpohTaxCode->ItemData[cbItem2]);
SetHeadValue("RpohSettleMode",scRpohSettleMode->ItemData[cbItem2]);
SetHeadValue("RpohPsite",seRpohPsiteCode->ItemData[cbItem2]);
SetHeadValue("RpohDeliver",scRpohDeliver->ItemData[cbItem2]);
SetHeadValue("RpohTransMode",scRpohTransMode->ItemData[cbItem2]);
SetHeadValue("RpohCurrencyCode",seRpohCurrencyCode->ItemData[cbItem2]);
SetHeadValue("RpohSysDate",TDateTime().CurrentDate().DateString());
}
else
{
if(seRpodLine->Text == "")
throw Exception("请输入请购单行号");
if(seRpodGoodsCode->Text=="")
throw Exception("请输入物料编码");
if(seRpodConvRate->Text == "")
throw Exception("请输入单位转换系数");
if(seRpodQty->Text=="0.00" )
throw Exception("请输入请购数量");
if(seRpodPrice->Text == "0.00")
throw Exception("请输入请购单价");
if(int(deRpodRecDate->Date) >int(deRpodReqDate->Date))
throw Exception("停用日期不能早于启用日期");
//自动计算行金额
AutoCalculation();
//给请购单号(RpodCode)赋值
//2001.12.23 lu set default value
SetDetailValue("RpodPQty","0");
//over
SetDetailValue("RpodCode",seRpohCode->Text);
//----------
SetDetailValue("RpodQty",seRpodQty->Text);
SetDetailValue("RpodLine",seRpodLine->Text);
SetDetailValue("RpodGoodsCode",seRpodGoodsCode->Text);
SetDetailValue("RpodUnitCode",seRpodUnitCode->ItemData[cbItem2]);
SetDetailValue("RpodConvRate",seRpodConvRate->Text);
SetDetailValue("RpodPrice",seRpodPrice->Text);
if(seRpodAmt->Text == "")
seRpodAmt->Text ="0.00";
SetDetailValue("RpodAmt",seRpodAmt->Text);
SetDetailValue("RpodRecDate",deRpodRecDate->Text);
SetDetailValue("RpodFrom",scRpodFrom->ItemData[cbItem2]);
SetDetailValue("RpodStatus",scRpodStatus->ItemData[cbItem2]);
SetDetailValue("RpodReqDate",deRpodReqDate->Text);
SetDetailValue("RpodDept",scRpodDeptCode->ItemData[cbItem2]);
SetDetailValue("RpodLocCode",seRpodLocCode->ItemData[cbItem2]);
SetDetailValue("RpodDesc",memRpodDesc->Text);
SetDetailValue("GoodsName",labRpodGoodsName->Caption);
SetDetailValue("GoodsSpec",GoodsSpec->Caption);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::WaitUserInput(int Section)
{
if (Section ==1)
{
if(seRpohCode->Enabled)
seRpohCode->SetFocus();
}
else
{
sgRpoh->Visible=false;
FloatPanel2->Visible=true;
pv_GoodsCode=Trim(seRpodGoodsCode->Text);
SetDetail(Trim(seRpodGoodsCode->Text+"\t"));
if(scRpodStatus->ItemData[1] == "2")
{
seRpodGoodsCode->Enabled=false;
seRpodUnitCode->Enabled=false;
seRpodQty->Enabled=false;
deRpodReqDate->Enabled=false;
}
if(seRpodGoodsCode->Enabled)
seRpodGoodsCode->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::RefreshGridData(int mAction)
{
int i;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?