📄 sogh_s_o.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sogh_S_O.h"
#include "Sogd_S_O.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"
TfrmSogh_S_O *frmSogh_S_O;
//---------------------------------------------------------------------------
__fastcall TfrmSogh_S_O::TfrmSogh_S_O(TComponent* Owner)
: TGenBaseForm(Owner,euSdSogh,"SoghType=1")
{
AutoCtl=seSoghCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,true,true,true, FloatPanel3,FloatPanel3->Name);
ClientGroup->AddComponent(1,true,true,false, sgSogd,sgSogd->Name);
ClientGroup->AddComponent(1,false,true,false,seSoghCode,seSoghCode->Name);
ClientGroup->AddComponent(1,false,true,true,seSoghClient,seSoghClient->Name);
ClientGroup->AddComponent(1,true,true,true, scSoghType,scSoghType->Name);
ClientGroup->AddComponent(1,true,true,true,scSoghState,scSoghState->Name);
ClientGroup->AddComponent(1,false,true,true, scSoghTaxCode,scSoghTaxCode->Name);
ClientGroup->AddComponent(1,true,true,true,scSoghFmonth,scSoghFmonth->Name);
ClientGroup->AddComponent(1,false,true,true,scSoghSaler,scSoghSaler->Name);
ClientGroup->AddComponent(2,false,false,true, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true,seSogdSoCode,seSogdSoCode->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdSodLine,seSogdSodLine->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdGoods,seSogdGoods->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdGoodsName,seSogdGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdUnit,seSogdUnit->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdConv,seSogdConv->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdAmt,seSogdAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdDAmt,seSogdDAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSogdTaxAmt,seSogdTaxAmt->Name);
ClientGroup->AddComponent(2,true,true,true,deSogdRecDate,deSogdRecDate->Name);
ClientGroup->AddComponent(2,true,true,true,GroupBox4,GroupBox4->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
//Sogh
FillComboBox(scSoghFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
FillComboBox(scSoghPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=2 order by PosTypeCode","PosTypeName","PosTypeCode");
FillEdit(seSoghClient,"SELECT ClientName,ClientCode,ClientCurrency,ClientTaxCode FROM sdClient where ClientCancel=0","ClientName","ClientCode","ClientCurrency","ClientTaxCode");
FillComboBox(scSoghDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver order by DeliverCode","DeliverName","DeliverCode");
FillComboBox(scSoghTaxCode,"SELECT TaxName,TaxCode,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");
FillEdit(scSoghUser,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
FillEdit(seSoghChecker,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
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(seSoghCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillEdit(seSoghSsite,"SELECT SsiteName,SsiteCode FROM sdSsite","SSiteName","SsiteCode");
FillComboBox(scSoghTransMode,"SELECT TransModeName,TransModeCode FROM sdTransMode order by TransModeCode","TransModeName","TransModeCode");
FillComboBox(scSoghSettleMode,"select settlemodename,settlemodecode from sdsettlemode order by settlemodename","settleModeName","SettleModeCode");
FillComboBox(scSoghSaler,"select UserName,UserCode from sdSaler,sdUser where UserCode=SalerCode order by usercode","UserName","UserCode");
//Sogd
FillEdit(seSogdLoc,"select LocCode,LocName from sdLoc where Loctype=1 or loctype=4 order by LocCode","LocName","LocCode");
FillEdit(seSogdUnit,"SELECT UnitCode,UnitName FROM sdUnit ","UnitName","UnitCode");
FillEdit(seSogdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch","BatchDesc","BatchCode");
scSoghType->ClearAll();
scSoghType->AddItems("据订单发货","1");
scSoghType->AddItems("非订单发货","2");
scSoghState->ClearAll();
scSoghState->AddItems("预备","1");
scSoghState->AddItems("确认","2");
scSoghState->AddItems("待下达","3");
scSoghState->AddItems("已下达","4");
scSoghState->AddItems("已完成","5");
scSogdState->ClearAll();
scSogdState->AddItems("预备","1");
scSogdState->AddItems("确认","2");
scSogdState->AddItems("待下达","3");
scSogdState->AddItems("已下达","4");
scSogdState->AddItems("已完成","5");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seSoghCode->Text = "";
scSoghType->LocateKey("1");
scSoghFmonth->Text = g_sdSMonth;
scSoghPosType->ItemIndex = -1;
deSoghDate->Text=g_sdCurDate;
seSoghClient->ItemIndex = -1;
scSoghDeliver->ItemIndex = -1;
seSoghSsite->ItemIndex = -1;
seSoghCurrency->ItemIndex=-1;
seSoghEnrate->Text ="1";
scSoghTransMode->ItemIndex = -1;
seSoghTransCode->Text = "";
scSoghTaxCode->ItemIndex=-1;
seSoghDesc->Text ="";
scSoghSettleMode->ItemIndex=-1;
scSoghSaler->ItemIndex=-1;
scSoghUser->LocateKey(g_sdUserCode);
cheSoghCheck->Checked = false;
seSoghChecker->ItemIndex =-1;
cheSoghCancel->Checked = false;
cheSoghClose->Checked = false;
lbSoghSysDate->Caption = "";
scSoghState->ItemIndex=0;
}
sgSogd->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
if(comServer->ItemCount==0)
seSogdLine->Text ="1";
else
{
comServer->LocateItemByIndex(comServer->ItemCount-1);
seSogdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSogdLine))+1);
}
seSogdSoCode->Text="";
seSogdSodLine->Text="0";
seSogdGoods->Text="";
seSogdGoodsName->Text ="";
seSogdUnit->ItemIndex=-1;
seSogdConv->Text="1";
seSogdPrice->Text="0";
seSogdQty->Text="0";
seSogdAmt->Text="0.00";
seSogdTaxAmt->Text="0.00";
seSogdDisc->Text="0.00";
seSogdDAmt->Text="0.00";
labSogdOQty->Caption="0";
labSogdBQty->Caption="0";
labSogdVQty->Caption="0";
labSogdFQty->Caption="0";
labSogdEQty->Caption="0";
cheSogdClose->Checked = false;
seSogdCloseDate->Text ="";
scSogdState->ItemIndex=1;
deSogdRecDate->Text="";
seSogdLoc->ItemIndex=-1;
seSogdBatch->ItemIndex=-1;
memSogdDesc->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::GetDataFromComObject(int Section)
{
if (Section==1)
{
seSoghCode->Text = GetHeadValue(fiSoghCode);
scSoghType->LocateKey(GetHeadValue(fiSoghType));
scSoghFmonth->Text = GetHeadValue(fiSoghFmonth);
scSoghPosType->LocateKey(GetHeadValue(fiSoghPosType));
deSoghDate->Text= GetHeadValue(fiSoghDate);
seSoghClient->LocateKey(GetHeadValue(fiSoghClient));
seSoghCurrency->LocateKey(GetHeadValue(fiSoghCurrency));
if(seSoghCurrency->ItemData[cbItem4]=="1")
seSoghEnrate->Enabled=false;
seSoghEnrate->Text = GetHeadValue(fiSoghEnrate);
scSoghTaxCode->LocateKey(GetHeadValue(fiSoghTaxCode));
scSoghDeliver->LocateKey(GetHeadValue(fiSoghDeliver));
seSoghSsite->LocateKey(GetHeadValue(fiSoghSsite));
scSoghTransMode->LocateKey(GetHeadValue(fiSoghTransMode));
seSoghTransCode->Text = GetHeadValue(fiSoghTransCode);
scSoghUser->LocateKey(GetHeadValue(fiSoghUser));
scSoghState->LocateKey(GetHeadValue(fiSoghState));
scSoghSaler->LocateKey(GetHeadValue(fiSoghSaler));
scSoghSettleMode->LocateKey(GetHeadValue(fiSoghSettleMode));
cheSoghCheck->Checked = GetHeadValue(fiSoghCheck)=="1";
seSoghChecker->LocateKey(GetHeadValue(fiSoghChecker));
cheSoghCancel->Checked = GetHeadValue(fiSoghCancel)=="1";
cheSoghClose->Checked=GetHeadValue(fiSoghClose)=="1";
lbSoghSysDate->Caption = GetHeadValue(fiSoghSysDate);
seSoghDesc->Text = GetHeadValue(fiSoghDesc);
SetCheckToolbarStatus(cheSoghCheck->Checked);
SetCancelToolbarStatus(cheSoghCancel->Checked);
SetCloseToolbarStatus(cheSoghClose->Checked);
}
else
{
seSogdLine->Text = GetDetailValue(fiSogdLine);
seSogdSoCode->Text=GetDetailValue(fiSogdSoCode);
seSogdSodLine->Text=GetDetailValue(fiSogdSodLine);
seSogdGoods->Text=GetDetailValue(fiSogdGoods);
SetRelativeState(GetDetailValue(fiSogdGoods));
seSogdUnit->LocateKey(GetDetailValue(fiSogdUnit));
seSogdConv->Text = GetDetailValue(fiSogdConv);
seSogdQty->Text = GetDetailValue(fiSogdQty);
seSogdPrice->Text=GetDetailValue(fiSogdPrice);
seSogdAmt->Text=GetDetailValue(fiSogdAmt);
seSogdTaxAmt->Text=GetDetailValue(fiSogdTaxAmt);
seSogdDisc->Text=GetDetailValue(fiSogdDisc);
seSogdDAmt->Text=GetDetailValue(fiSogdDAmt);
labSogdOQty->Caption=GetDetailValue(fiSogdOQty);
labSogdBQty->Caption=GetDetailValue(fiSogdBQty);
labSogdVQty->Caption=GetDetailValue(fiSogdVQty);
labSogdFQty->Caption=GetDetailValue(fiSogdFQty);
labSogdEQty->Caption=GetDetailValue(fiSogdEQty);
seSogdLoc->LocateKey(GetDetailValue(fiSogdLoc));
seSogdBatch->LocateKey(GetDetailValue(fiSogdBatch));
deSogdRecDate->Text = GetDetailValue(fiSogdRecDate);
memSogdDesc->Text=GetDetailValue(fiSogdDesc);
cheSogdClose->Checked = GetDetailValue(fiSogdClose)=="1";
seSogdCloseDate->Text = GetDetailValue(fiSogdCloseDate);
scSogdState->LocateKey(GetDetailValue(fiSogdState));
SetCloseDetailStatus(cheSogdClose->Checked);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
SetHeadValue(fiSoghCode,seSoghCode->Text);
SetHeadValue(fiSoghType,"1"/*scSoghType->ItemData[cbItem2]*/);
SetHeadValue(fiSoghPosType,scSoghPosType->ItemData[cbItem2]);
SetHeadValue(fiSoghFmonth,scSoghFmonth->Text);
SetHeadValue(fiSoghDate,deSoghDate->Text);
SetHeadValue(fiSoghClient,seSoghClient->ItemData[cbItem2]);
SetHeadValue(fiSoghCurrency,seSoghCurrency->ItemData[cbItem2]);
SetHeadValue(fiSoghEnrate,seSoghEnrate->Text);
SetHeadValue(fiSoghTaxCode,scSoghTaxCode->ItemData[cbItem2]);
SetHeadValue(fiSoghTransCode,seSoghTransCode->Text);
SetHeadValue(fiSoghDeliver,scSoghDeliver->ItemData[cbItem2]);
SetHeadValue(fiSoghSsite,seSoghSsite->ItemData[cbItem2]);
SetHeadValue(fiSoghTransMode,scSoghTransMode->ItemData[cbItem2]);
SetHeadValue(fiSoghSettleMode,scSoghSettleMode->ItemData[cbItem2]);
SetHeadValue(fiSoghSaler,scSoghSaler->ItemData[cbItem2]);
SetHeadValue(fiSoghDesc,seSoghDesc->Text);
SetHeadValue(fiSoghUser,g_sdUserCode);
SetHeadValue(fiSoghState,scSoghState->ItemData[cbItem2]);
}
else
{
g_sdRsGoods->LocateByKey(WideString(seSogdGoods->Text));
if(GetGoodsValue("GoodsBatch")=="1"&&seSogdBatch->Text.IsEmpty())
throw Exception("该物料需要批次管理");
CalculateAmt();
SetDetailValue(fiSogdCode,seSoghCode->Text);
SetDetailValue(fiSogdLine,seSogdLine->Text);
SetDetailValue(fiSogdSoCode,seSogdSoCode->Text);
SetDetailValue(fiSogdSodLine,seSogdSodLine->Text);
SetDetailValue(fiSogdGoods,seSogdGoods->Text);
SetDetailValue(fiSogdUnit,seSogdUnit->ItemData[cbItem2]);
SetDetailValue(fiSogdConv,seSogdConv->Text);
SetDetailValue(fiSogdQty,seSogdQty->Text);
SetDetailValue(fiSogdPrice,seSogdPrice->Text);
SetDetailValue(fiSogdAmt,seSogdAmt->Text);
SetDetailValue(fiSogdTaxAmt,seSogdTaxAmt->Text);
SetDetailValue(fiSogdDisc,seSogdDisc->Text);
SetDetailValue(fiSogdDAmt,seSogdDAmt->Text);
SetDetailValue(fiSogdLoc,seSogdLoc->ItemData[cbItem2]);
SetDetailValue(fiSogdRecDate,deSogdRecDate->Text);
SetDetailValue(fiSogdBatch,seSogdBatch->ItemData[cbItem2]);
SetDetailValue(fiSogdDesc,memSogdDesc->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::WaitUserInput(int Section)
{
if (Section ==1)
{
// FloatPanel1->Enabled=true;
if(seSoghCode->Enabled)
seSoghCode->SetFocus();
}
else
{
// FloatPanel1->Enabled=false;
sgSogd->Visible=false;
sgSogd->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if(CurrentState==caAddDetail||CurrentState==caAddBill)
btnOK->Enabled=true;
else
btnOK->Enabled=false;
btnCancel->Enabled=true;
if(seSogdLine->Enabled)
seSogdLine->SetFocus();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -