soh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 941 行 · 第 1/3 页
CPP
941 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Soh.h"
#include "KSSaleFuc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmSoh *frmSoh;
//---------------------------------------------------------------------------
__fastcall TfrmSoh::TfrmSoh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seSohCode,"Acm-010");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::InitEditControl()
{
ClientGroup->AddComponent(1,true,true,false, sgSod,sgSod->Name);
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false, seSohCode,seSohCode->Name);
ClientGroup->AddComponent(1,true,true,true, FloatPanel3,FloatPanel3->Name);
ClientGroup->AddComponent(1,false,true,true,seSohClient,seSohClient->Name);
ClientGroup->AddComponent(1,false,true,true, scSohSaler,scSohSaler->Name);
ClientGroup->AddComponent(1,false,true,true, scSohTaxCode,scSohTaxCode->Name);
ClientGroup->AddComponent(1,false,false,true,seSohEnrate,seSohEnrate->Name);
ClientGroup->AddComponent(2,false,false,true, GpDetail2,GpDetail2->Name);
ClientGroup->AddComponent(2,false,false,true, GpDetail1,GpDetail1->Name);
ClientGroup->AddComponent(2,true,true,true, GpDetailClose,GpDetailClose->Name);
ClientGroup->AddComponent(2,false,true,true,seSodGoods,seSodGoods->Name);
ClientGroup->AddComponent(2,true,true,true,seSodGoodsName,seSodGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,seSodAmt,seSodAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSodDAmt,seSodDAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSodConv,seSodConv->Name);
ClientGroup->AddComponent(2,true,true,true,seSodTaxAmt,seSodTaxAmt->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
//Soh
FillComboBox(Handle,scSohTaxCode,"SELECT TaxName,TaxCode,TaxRate FROM sdTax","TaxName","TaxCode","TaxRate");
FillComboBox(Handle,scSohSaler,"Select Salercode,UserName As SalerName from sduser,sdsaler where salercode=usercode order by username","SalerName","SalerCode");
AnsiString sSql;
sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
sSql+=" where currencycode*=ratecurrency and ";
sSql+=" ratefmonth='"+g_sdSMonth+"'";
FillEdit(Query,seSohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillEdit(Query,seSohClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
FillEdit(Query,seSohSsite,"select SsiteName,SsiteCode from sdSsite","SsiteName","SsiteCode");
FillComboBox(Handle,scSohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeName","SettleModeName","SettleModeCode");
FillComboBox(Handle,scSohDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver order by DeliverName","DeliverName","DeliverCode");
FillComboBox(Handle,scSohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeName","TransModeName","TransModeCode");
//Sod
FillEdit(Query,seSodUnit,"SELECT UnitCode,UnitName FROM sdUnit order by UnitName","UnitName","UnitCode");
FillEdit(Query,seSodSptCode,"SELECT SptCode,SptName FROM sdSpt order by SptName","SptName","SptCode");
scSohType->ClearAll();
scSohType->AddItems("销售订单","1");
scSohType->AddItems("来料加工订单","2");
scSodState->ClearAll();
scSodState->AddItems("预备","0");
scSodState->AddItems("确认","1");
scSodState->AddItems("待下达","2");
scSodState->AddItems("已下达","3");
scSodState->AddItems("已完成","4");
scSohPayTrans->ClearAll();
scSohPayTrans->AddItems("买方","0");
scSohPayTrans->AddItems("卖方","1");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seSohCode->Text = "";
scSohType->LocateKey("1");
deSohDate->Text = g_sdCurDate;
seSohClient->ItemIndex = -1;
seSohContract->Text = "";
seSohEnrate->Text = "1";
seSohCurrency->ItemIndex=-1;
scSohTaxCode->ItemIndex =-1;
scSohSettleMode->ItemIndex =-1;
seSohSsite->ItemIndex = -1;
scSohTransMode->ItemIndex = -1;
scSohSaler->Text = "";
scSohUser->Text = g_sdUserCode;
seSohDj->Text = "0.00";
cheSohCheck->Checked = false;
seSohChecker->Text = "";
cheSohCancel->Checked = false;
cheSohClose->Checked = false;
lbSohSysDate->Caption = "";
scSohPayTrans->ItemIndex= -1;
memSohDesc->Text = "";
}
sgSod->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seSodLine->Text = AnsiString(comServer->ItemCount+1);
seSodGoods->Text = "";
seSodGoodsName->Text = "";
seSodUnit->ItemIndex = -1;
seSodConv->Text = "1";
seSodQty->Text = "0";
seSodSptCode->ItemIndex = -1;
seSodPrice->Text = "0";
seSodAmt->Text = "0.00";
seSodTaxAmt->Text = "0.00";
seSodDisc->Text = "0.00";
seSodDAmt->Text = "0.00";
cheSodClose->Checked = false;
deSodCloseDate->Text = "";
scSodState->ItemIndex = 1;
deSodSendDate->Text = "";
deSodRecDate->Text ="";
seSodPoCode->Text ="";
meSodDesc->Text ="";
seSodPQty->Text = "0";
seSodSQty->Text = "0";
seSodBQty->Text = "0";
seSodFQty->Text = "0";
seSodEQty->Text = "0";
deSodSendDate->Text = DateToStr(Date());
deSodRecDate->Text = DateToStr(Date());
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::GetDataFromComObject(int Section)
{
if (Section==1)
{
seSohCode->Text = GetHeadValue("SohCode");
scSohType->LocateKey(GetHeadValue("SohType"));
deSohDate->Text= GetHeadValue("SohDate");
seSohClient->LocateKey(GetHeadValue("SohClient"));
scSohSaler->Text=GetHeadValue("SohSaler");
seSohContract->Text = GetHeadValue("SohContract");
seSohCurrency->LocateKey(GetHeadValue("SohCurrency"));
if(seSohCurrency->ItemData[cbItem4]=="1")
seSohEnrate->Enabled=false;
seSohEnrate->Text = GetHeadValue("SohEnrate");
scSohTaxCode->LocateKey(GetHeadValue("SohTaxCode"));
scSohSettleMode->LocateKey(GetHeadValue("SohSettleMode"));
scSohDeliver->LocateKey(GetHeadValue("SohDeliver"));
seSohSsite->LocateKey(GetHeadValue("SohSsite"));
scSohTransMode->LocateKey(GetHeadValue("SohTransMode"));
seSohDj->Text = GetHeadValue("SohDj");
cheSohCheck->Checked = GetHeadValue("SohCheck")=="1";
seSohChecker->Text=GetHeadValue("SohChecker");
cheSohCancel->Checked = GetHeadValue("SohCancel")=="1";
scSohPayTrans->LocateKey(GetHeadValue("SohPayTrans"));
cheSohClose->Checked = GetHeadValue("SohClose")=="1";
lbSohSysDate->Caption = GetHeadValue("SohSysDate");
scSohUser->Text=GetHeadValue("SohUser");
memSohDesc->Text = GetHeadValue("SohDesc");
SetCheckToolbarStatus(cheSohCheck->Checked);
SetCancelToolbarStatus(cheSohCancel->Checked);
SetCloseToolbarStatus(cheSohClose->Checked);
}
else
{
seSodLine->Text = GetDetailValue("SodLine");
seSodGoods->Text=GetDetailValue("SodGoods");
seSodGoodsName->Text =GetDetailValue("SodGoodsName");
seSodGoodsSpec->Text =GetDetailValue("SodGoodsSpec");
seSodUnit->LocateKey(GetDetailValue("SodUnit"));
seSodConv->Text=GetDetailValue("SodConv");
seSodQty->Text=GetDetailValue("SodQty");
seSodSptCode->LocateKey(GetDetailValue("SodSptCode"));
seSodPrice->Text=GetDetailValue("SodPrice");
seSodDisc->Text=GetDetailValue("SodDisc");
seSodAmt->Text=GetDetailValue("SodAmt");
seSodTaxAmt->Text=GetDetailValue("SodTaxAmt");
seSodDAmt->Text=GetDetailValue("SodDAmt");
seSodSQty->Text=GetDetailValue("SodSQty");
seSodPQty->Text=GetDetailValue("SodPQty");
seSodBQty->Text=GetDetailValue("SodBQty");
seSodFQty->Text=GetDetailValue("SodFQty");
seSodEQty->Text=GetDetailValue("SodEQty");
cheSodClose->Checked = GetDetailValue("SodClose")=="1";
deSodCloseDate->Text=GetDetailValue("SodCloseDate");
scSodState->ItemIndex=StrToInt(GetDetailValue("SodState"));
deSodSendDate->Text=GetDetailValue("SodSendDate");
deSodRecDate->Text=GetDetailValue("SodRecDate");
seSodPoCode->Text=GetDetailValue("SodPoCode");
SetCloseItemStatus(cheSodClose->Checked);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
if ( Trim(seSohCode->Text)=="" )
throw Exception("订单号不能为空!");
if ( deSohDate->Text=="" )
throw Exception("订单日期不能为空!");
if ( seSohClient->ItemData[cbItem2]=="" )
throw Exception("客户名称不能为空!");
if ( seSohCurrency->ItemData[cbItem2]=="" )
throw Exception("币种不能为空!");
if ( scSohTaxCode->ItemData[cbItem2]=="" )
throw Exception("税码不能为空!");
if(scSohSaler->Text=="" )
throw Exception("业务员不能为空!");
SetHeadValue("SohCode",Trim(seSohCode->Text));
SetHeadValue("SohType",scSohType->ItemData[cbItem2]);
SetHeadValue("SohDate",deSohDate->Text);
SetHeadValue("SohClient",seSohClient->ItemData[cbItem2]);
SetHeadValue("SohSaler",scSohSaler->ItemData[cbItem2]);
SetHeadValue("SohUser",g_sdUserCode/*scSohUser->Text*/);
SetHeadValue("SohContract",seSohContract->Text);
SetHeadValue("SohCurrency",seSohCurrency->ItemData[cbItem2]);
SetHeadValue("SohEnrate",seSohEnrate->Text);
SetHeadValue("SohTaxCode",scSohTaxCode->ItemData[cbItem2]);
SetHeadValue("SohSettleMode",scSohSettleMode->ItemData[cbItem2]);
SetHeadValue("SohDeliver",scSohDeliver->ItemData[cbItem2]);
SetHeadValue("SohSsite",seSohSsite->ItemData[cbItem2]);
SetHeadValue("SohTransMode",scSohTransMode->ItemData[cbItem2]);
SetHeadValue("SohPayTrans",scSohPayTrans->ItemData[cbItem2]);
SetHeadValue("SohDj",seSohDj->Text);
SetHeadValue("SohDesc",memSohDesc->Text);
}
else
{
if(seSodGoods->Text.IsEmpty())
throw Exception("货品编码不能为空!");
if(seSodUnit->ItemData[cbItem2]=="")
throw Exception("计量单位不能为空!");
if(seSodPrice->Text.IsEmpty())
throw Exception("销售单价!");
if(deSodSendDate->Text.IsEmpty())
throw Exception("发货日期不能为空!");
if(deSodRecDate->Text.IsEmpty())
throw Exception("交货日不能为空");
if(deSodRecDate->Text<deSodSendDate->Text)
throw Exception("收货日期不应早于发货日期!");
if(deSodSendDate->Text<deSohDate->Text)
throw Exception("发货日期应在订单日期之后");
CalculateAmt();
SetDetailValue("SodCode", seSohCode->Text);
SetDetailValue("SodLine", seSodLine->Text);
SetDetailValue("SodGoods", seSodGoods->Text);
SetDetailValue("SodGoodsName", seSodGoodsName->Text);
SetDetailValue("SodGoodsSpec", seSodGoodsSpec->Text);
SetDetailValue("SodUnit", seSodUnit->ItemData[cbItem2]);
SetDetailValue("SodConv", seSodConv->Text);
SetDetailValue("SodSptCode",seSodSptCode->ItemData[cbItem2]);
SetDetailValue("SodQty",seSodQty->Text);
SetDetailValue("SodPrice",seSodPrice->Text);
SetDetailValue("SodAmt",seSodAmt->Text);
SetDetailValue("SodTaxAmt",seSodTaxAmt->Text);
SetDetailValue("SodDisc",seSodDisc->Text);
SetDetailValue("SodDAmt",seSodDAmt->Text);
SetDetailValue("SodSendDate",deSodSendDate->Text);
SetDetailValue("SodRecDate",deSodRecDate->Text);
SetDetailValue("SodPoCode",seSodPoCode->Text);
SetDetailValue("SodDesc",meSodDesc->Text);
SetDetailValue("SodState",scSodState->ItemData[cbItem2]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::WaitUserInput(int Section)
{
if (Section ==1)
{
FloatPanel1->Enabled=true;
if(seSohCode->Enabled)
seSohCode->SetFocus();
}
else
{
sgSod->Visible=false;
sgSod->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if(seSodGoods->Enabled)
seSodGoods->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSoh::RefreshGridData(int mAction)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?