prech_n_i.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 929 行 · 第 1/3 页
CPP
929 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Prech_N_I.h"
#pragma link "GenBaseForm"
#include "KSPurFuc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmPrech_N_I *frmPrech_N_I;
//---------------------------------------------------------------------------
__fastcall TfrmPrech_N_I::TfrmPrech_N_I(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
pv_GoodsCode="";
SetAutoCodeString(sePrechCode,"Acm-020");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_N_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_N_I,sgPrech_N_I->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->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,sePrecdSodLine,sePrecdSodLine->Name);
ClientGroup->AddComponent(2,true,true,true,sePrecdTAmt,sePrecdTAmt->Name);
FillComboBox(Handle,scPrechPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=1 order by PosTypeCode",
"PosTypeName","PosTypeCode");
FillComboBox(Handle,scPrechSupply,"SELECT SupplyCode,SupplyName FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode");
FillComboBox(Handle,scPrechTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");
FillComboBox(Handle,scPrechSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode",
"SettleModeName","SettleModeCode");
FillComboBox(Handle,scPrechDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver order by DeliverCode",
"DeliverName","DeliverCode");
FillComboBox(Handle,scPrechTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeCode",
"TransModeName","TransModeCode");
FillEdit(Handle,sePrecdUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
FillComboBox(Handle,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(Handle,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(Handle,sePrecdLoc,sSql,"LocName","LocCode");
FillEdit(Handle,sePrechPsite,"select PsiteCode,PsiteName from sdpsite ","psitename","psitecode");
scPrecdState->ClearAll();
scPrecdState->AddItems("1-未检","1");
scPrecdState->AddItems("2-已检","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_N_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_N_I->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
sePrecdLine->Text=AnsiString(comServer->ItemCount+1);
sePrecdGoods->Text="";
sePrecdGoodsName->Text="";
sePrecdUnit->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_N_I::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePrechCode->Text =GetHeadValue("PrechCode");
scPrechFmonth->Text=GetHeadValue("PrechFmonth");
dePrechDate->Text=GetHeadValue("PrechDate");
scPrechPosType->LocateKey(GetHeadValue("PrechPosType"));
scPrechSupply->LocateKey(GetHeadValue("PrechSupply"));
sePrechCurrency->LocateKey(GetHeadValue("PrechCurrency"));
sePrechEnrate->Text=GetHeadValue("PrechEnrate");
scPrechTaxCode->LocateKey(GetHeadValue("PrechTaxCode"));
scPrechSettleMode->LocateKey(GetHeadValue("PrechSettleMode"));
scPrechSettleMode->Text=scPrechSettleMode->ItemData[0];
scPrechDeliver->LocateKey(GetHeadValue("PrechDeliver"));
scPrechTransMode->LocateKey(GetHeadValue("PrechTransMode"));
sePrechPsite->LocateKey(GetHeadValue("PrechPsite"));
dePrechSendDate->Text=GetHeadValue("PrechSendDate");
sePrechTransCode->Text=GetHeadValue("PrechTransCode");
labUserCode->Caption=GetHeadValue("PrechUser");
cbPrechCheck->Checked=GetHeadValue("PrechCheck")=="1";
labChecker->Caption=GetHeadValue("PrechChecker");
cbPrechCancel->Checked=GetHeadValue("PrechCancel")=="1";
cbPrechClose->Checked=GetHeadValue("PrechClose")=="1";
labSystemDate->Caption=GetHeadValue("PrechSysDate");
//根据审核、取消状态,设置工具栏
if(GetHeadValue("PrechCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue("PrechCancel")=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
if(GetHeadValue("PrechClose")=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
sePrecdLine->Text=GetDetailValue("PrecdLine");
sePrecdGoods->Text=GetDetailValue("PrecdGoods");
sePrecdGoodsName->Text=GetDetailValue("Goodsname");
GoodsSpec->Text=GetDetailValue("GoodsSpec");
sePrecdUnit->LocateKey(GetDetailValue("PrecdUnit"));
sePrecdConv->Text=GetDetailValue("PrecdConv");
sePrecdQty->Text=GetDetailValue("PrecdQty");
sePrecdPrice->Text=GetDetailValue("PrecdPrice");
sePrecdAmt->Text=GetDetailValue("PrecdAmt");
sePrecdTAmt->Text=GetDetailValue("PrecdTAmt");
sePrecdDQty->Text=GetDetailValue("PrecdDQty");
sePrecdKAmt->Text=GetDetailValue("PrecdKAmt");
sePrecdLoc->LocateKey(GetDetailValue("PrecdLoc"));
scPrecdBatch->LocateKey(GetDetailValue("PrecdBatch"));
sePrecdSo->Text=GetDetailValue("PrecdSo");
sePrecdSodLine->Text=GetDetailValue("PrecdSodLine");
sePrecdIQty->Text=GetDetailValue("PrecdIQty");
sePrecdBQty->Text=GetDetailValue("PrecdBQty");
sePrecdEQty->Text=GetDetailValue("PrecdEQty");
sePrecdVQty->Text=GetDetailValue("PrecdVQty");
scPrecdState->LocateKey(GetDetailValue("PrecdState"));
chkPrecdClose->Checked=(GetDetailValue("PrecdClose")=="1");
dePrecdCloseDate->Text=GetDetailValue("PrecdCloseDate");
//根据结清状态,设置工具栏
if(GetDetailValue("PrecdClose")=="1")
SetCloseItemStatus(true);
else
SetCloseItemStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_N_I::SendDataToComObject(int Section)
{
int iRow;
if (Section==1)
{
if(scPrechSupply->ItemData[cbItem2]=="")
throw Exception("请输入供应商");
if(sePrechCurrency->ItemData[cbItem2]=="")
throw Exception("请输入币种");
if(scPrechTaxCode->ItemData[cbItem2]=="")
throw Exception("请输入税码");
if(sePrechEnrate->Text=="")
throw Exception("请输入汇率");
SetHeadValue("PrechCode",sePrechCode->Text );
SetHeadValue("PrechFmonth",scPrechFmonth->Text);
SetHeadValue("PrechDate",dePrechDate->Text);
SetHeadValue("PrechPosType",scPrechPosType->ItemData[cbItem2]);
SetHeadValue("PrechSendDate",dePrechSendDate->Text);
SetHeadValue("PrechTransCode",sePrechTransCode->Text);
SetHeadValue("PrechUser",labUserCode->Caption);
SetHeadValue("PrechSupply",scPrechSupply->ItemData[cbItem2]);
SetHeadValue("PrechCurrency",sePrechCurrency->ItemData[cbItem2]);
SetHeadValue("PrechEnrate",sePrechEnrate->Text);
SetHeadValue("PrechSettleMode",scPrechSettleMode->ItemData[cbItem2]);
SetHeadValue("PrechDeliver",scPrechDeliver->ItemData[cbItem2]);
SetHeadValue("PrechTransMode",scPrechTransMode->ItemData[cbItem2]);
SetHeadValue("PrechTaxCode",scPrechTaxCode->ItemData[cbItem2]);
SetHeadValue("PrechPsite",sePrechPsite->ItemData[cbItem2]);
}
else
{
if(sePrecdLine->Text.IsEmpty())
throw Exception("请输入行号");
if(sePrecdGoods->Text.IsEmpty())
throw Exception("请输入物料编码");
if(sePrecdConv->Text == ""||sePrecdConv->Text == "0")
throw Exception("请输入单位转换系数");
if(sePrecdQty->Text == "0")
throw Exception("请输入收货数量");
if(sePrecdPrice->Text == "0")
throw Exception("请输入收货单价");
if(sePrecdAmt->Text == "0")
throw Exception("请输入金额");
if(sePrecdTAmt->Text == "")
sePrecdTAmt->Text ="0";
if(sePrecdDQty->Text == "0")
throw Exception("请输入送货数量");
if(sePrecdKAmt->Text == "")
sePrecdTAmt->Text ="0";
SetDetailValue("PrecdCode",sePrechCode->Text);
SetDetailValue("PrecdLine",sePrecdLine->Text);
SetDetailValue("PrecdGoods",sePrecdGoods->Text);
SetDetailValue("Goodsname",sePrecdGoodsName->Text);
SetDetailValue("Goodsspec",GoodsSpec->Text);
SetDetailValue("PrecdUnit",sePrecdUnit->ItemData[cbItem2]);
SetDetailValue("PrecdConv",sePrecdConv->Text);
SetDetailValue("PrecdQty",sePrecdQty->Text);
SetDetailValue("PrecdPrice",sePrecdPrice->Text);
SetDetailValue("PrecdAmt",sePrecdAmt->Text);
SetDetailValue("PrecdTAmt",sePrecdTAmt->Text);
SetDetailValue("PrecdDQty",sePrecdDQty->Text);
// SetDetailValue("PrecdKAmt",sePrecdKAmt->Text);
//这里需计算税
SetDetailValue("PrecdLoc",sePrecdLoc->ItemData[cbItem2]);
SetDetailValue("PrecdBatch",scPrecdBatch->Text);
SetDetailValue("PrecdSo",sePrecdSo->Text);
if(Trim(sePrecdSodLine->Text)!="")
SetDetailValue("PrecdSodLine",sePrecdSodLine->Text);
else
SetDetailValue("PrecdSodLine","0");
SetDetailValue("PrecdRDate",dePrecdRDate->Text);
SetDetailValue("PrecdCDate",dePrecdCDate->Text);
SetDetailValue("PrecdOAmt",0);
SetDetailValue("PrecdRAmt",0);
SetDetailValue("PrecdKAmt",0);
SetDetailValue("PrecdDesc","");
SetDetailValue("PrecdClose",0);
SetDetailValue("PrecdCloseDate",TDateTime().CurrentDate().DateString());
SetDetailValue("PrecdState",scPrecdState->ItemData[1]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_N_I::WaitUserInput(int Section)
{
if (Section ==1)
{
if(sePrechCode->Enabled)
sePrechCode->SetFocus();
}
else
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?