📄 sreth.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sreth.h"
#include "Sretd.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"
TfrmSreth *frmSreth;
//---------------------------------------------------------------------------
__fastcall TfrmSreth::TfrmSreth(TComponent* Owner)
: TGenBaseForm(Owner,euSdSreth,"")
{
AutoCtl=seSrethCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::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, sgSretd,sgSretd->Name);
ClientGroup->AddComponent(1,false,true,false,seSrethCode,seSrethCode->Name);
ClientGroup->AddComponent(1,false,true,true,scSrethType,scSrethType->Name);
ClientGroup->AddComponent(1,true,true,true,scSrethFmonth,scSrethFmonth->Name);
ClientGroup->AddComponent(1,false,true,true,seSrethClient,seSrethClient->Name);
ClientGroup->AddComponent(1,false,true,true, scSrethTaxCode,scSrethTaxCode->Name);
ClientGroup->AddComponent(1,false,true,true,scSrethSaler,scSrethSaler->Name);
ClientGroup->AddComponent(2,false,false,true, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,true,GroupBox4,GroupBox4->Name);
ClientGroup->AddComponent(2,true,true,true,seSretdSogdLine,seSretdSogdLine->Name);
ClientGroup->AddComponent(2,false,true,true,seSretdSogCode,seSretdSogCode->Name);
ClientGroup->AddComponent(2,true,true,true, seSretdGoodsName,seSretdGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,seSretdConv,seSretdConv->Name);
ClientGroup->AddComponent(2,true,true,true,seSretdAmt,seSretdAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSretdTaxAmt,seSretdTaxAmt->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
DynamicSetControlState();
//Sreth
FillComboBox(scSrethTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax","TaxName","TaxCode","TaxRate");
FillComboBox(scSrethFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
FillComboBox(scSrethPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=2 order by PosTypeCode","PosTypeName","PosTypeCode");
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(seSrethCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillEdit(seSrethClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
FillComboBox(scSrethSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by settlemodename","SettleModeName","SettleModeCode");
FillComboBox(scSrethDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver order by delivername","DeliverName","DeliverCode");
FillEdit(seSrethSsite,"SELECT SsiteCode,SSiteName FROM sdSsite","SsiteName","SsiteCode");
FillComboBox(scSrethTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeName","TransModeName","TransModeCode");
FillComboBox(scSrethRr,"SELECT SretRrCode,SretRrDesc FROM sdSretRr order by sretrrdesc","Sretrrdesc","SretRrCode");
FillComboBox(scSrethSaler,"Select usercode,username from sduser,sdsaler where salercode=usercode order by username","UserName","UserCode");
FillEdit(seSrethUser,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
FillEdit(seSrethChecker,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
//Sretd
FillEdit(seSretdUnit,"SELECT UnitCode,UnitName FROM sdUnit","UnitName","UnitCode");
FillEdit(seSretdLoc,"SELECT LocCode,LocName FROM sdLoc ","LocName","LocCode");
FillEdit(seSretdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch ","BatchDesc","BatchCode");
scSrethType->ClearAll();
scSrethType->AddItems("据发货单退货","1");
scSrethType->AddItems("据客户退货","2");
scSretdState->ClearAll();
scSretdState->AddItems("预备","1");
scSretdState->AddItems("确认","2");
scSretdState->AddItems("待下达","3");
scSretdState->AddItems("已下达","4");
scSretdState->AddItems("已完成","5");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seSrethCode->Text = "";
scSrethType->ItemIndex = 0;
DynamicSetControlState();
tbGenDetail->Enabled=true;
scSrethFmonth->Text =g_sdSMonth;
scSrethPosType->ItemIndex=-1;
deSrethDate->Text=g_sdCurDate;;
seSrethClient->ItemIndex=-1;
seSrethCurrency->ItemIndex =-1;
seSrethEnrate->Text = "1";
scSrethTaxCode->ItemIndex=-1;
scSrethSettleMode->ItemIndex=-1;
scSrethDeliver->ItemIndex=-1;
seSrethSsite->ItemIndex =-1;
scSrethTransMode->ItemIndex=-1;
seSrethUser->LocateKey(g_sdUserCode);
cheSrethCheck->Checked = false;
seSrethChecker->Text = "";
cheSrethClose->Checked=false;
cheSrethCancel->Checked = false;
lbSrethSysDate->Caption = "";
scSrethRr->ItemIndex=-1;
scSrethSaler->ItemIndex=-1;
memSrethDesc->Text = "";
}
sgSretd->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
if(comServer->ItemCount==0)
seSretdLine->Text ="1";
else
{
comServer->LocateItemByIndex(comServer->ItemCount-1);
seSretdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSretdLine))+1);
}
seSretdSogCode->Text="";
seSretdSogdLine->Text="";
seSretdGoods->Text="";
seSretdGoodsName->Text ="";
seSretdUnit->ItemIndex =-1;
seSretdConv->Text="1";
seSretdQty->Text="0";
seSretdPrice->Text="0";
seSretdAmt->Text="0.00";
seSretdTaxAmt->Text="0.00";
scSretdState->ItemIndex=1;
seSretdExes->Text="0.00";
seSretdLoc->ItemIndex=-1;
seSretdBatch->ItemIndex=-1;
memSretdDesc->Text="";
cheSretdClose->Checked=false;
seSretdCloseDate->Text="";
seSretdOQty->Text="0";
seSretdFQty->Text="0";
seSretdEQty->Text="0";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::GetDataFromComObject(int Section)
{
if (Section==1)
{
seSrethCode->Text = GetHeadValue(fiSrethCode);
scSrethType->LocateKey(GetHeadValue(fiSrethType));
scSrethPosType->LocateKey(GetHeadValue(fiSrethPosType));
DynamicSetControlState();
scSrethFmonth->Text = GetHeadValue(fiSrethFmonth);
deSrethDate->Text= GetHeadValue(fiSrethDate);
seSrethClient->LocateKey(GetHeadValue(fiSrethClient));
seSrethCurrency->LocateKey(GetHeadValue(fiSrethCurrency));
if(seSrethCurrency->ItemData[cbItem4]=="1")
seSrethEnrate->Enabled=false;
seSrethEnrate->Text = GetHeadValue(fiSrethEnrate);
scSrethTaxCode->LocateKey(GetHeadValue(fiSrethTaxCode));
scSrethSettleMode->LocateKey(GetHeadValue(fiSrethSettleMode));
scSrethDeliver->LocateKey(GetHeadValue(fiSrethDeliver));
seSrethSsite->LocateKey(GetHeadValue(fiSrethSsite));
scSrethTransMode->Text = GetHeadValue(fiSrethTransMode);
seSrethUser->LocateKey(GetHeadValue(fiSrethUser));
scSrethSaler->LocateKey(GetHeadValue(fiSrethSaler));
cheSrethCheck->Checked =(GetHeadValue(fiSrethCheck)=="1");
seSrethChecker->LocateKey(GetHeadValue(fiSrethChecker));
cheSrethClose->Checked =(GetHeadValue(fiSrethClose)=="1");
cheSrethCancel->Checked =(GetHeadValue(fiSrethCancel)=="1");
scSrethRr->LocateKey(GetHeadValue(fiSrethRr));
lbSrethSysDate->Caption = GetHeadValue(fiSrethSysDate);
memSrethDesc->Text = GetHeadValue(fiSrethDesc);
SetCheckToolbarStatus(cheSrethCheck->Checked);
SetCancelToolbarStatus(cheSrethCancel->Checked);
SetCloseToolbarStatus(cheSrethClose->Checked);
}
else
{
seSretdLine->Text = GetDetailValue(fiSretdLine);
seSretdSogCode->Text = GetDetailValue(fiSretdSogCode);
seSretdSogdLine->Text = GetDetailValue(fiSretdSogdLine);
seSretdGoods->Text = GetDetailValue(fiSretdGoods);
SetRelativeState(GetDetailValue(fiSretdGoods));
seSretdUnit->LocateKey(GetDetailValue(fiSretdUnit));
seSretdConv->Text = GetDetailValue(fiSretdConv);
seSretdQty->Text = GetDetailValue(fiSretdQty);
seSretdPrice->Text=GetDetailValue(fiSretdPrice);
seSretdAmt->Text=GetDetailValue(fiSretdAmt);
seSretdTaxAmt->Text=GetDetailValue(fiSretdTaxAmt);
scSretdState->ItemIndex=StrToInt(GetDetailValue(fiSretdState))-1;
seSretdExes->Text = GetDetailValue(fiSretdExes);
seSretdLoc->LocateKey(GetDetailValue(fiSretdLoc));
seSretdBatch->LocateKey(GetDetailValue(fiSretdBatch));
memSretdDesc->Text=GetDetailValue(fiSretdDesc);
seSretdOQty->Text=GetDetailValue(fiSretdOQty);
seSretdFQty->Text=GetDetailValue(fiSretdFQty);
seSretdEQty->Text=GetDetailValue(fiSretdEQty);
cheSretdClose->Checked=GetDetailValue(fiSretdClose)=="1";
seSretdCloseDate->Text=GetDetailValue(fiSretdCloseDate);
SetCloseDetailStatus(cheSretdClose->Checked);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
SetHeadValue(fiSrethCode,seSrethCode->Text);
SetHeadValue(fiSrethType,scSrethType->ItemData[cbItem2]);
SetHeadValue(fiSrethPosType,scSrethPosType->ItemData[cbItem2]);
SetHeadValue(fiSrethFmonth,scSrethFmonth->Text);
SetHeadValue(fiSrethDate,deSrethDate->Text);
SetHeadValue(fiSrethClient,seSrethClient->ItemData[cbItem2]);
SetHeadValue(fiSrethUser,g_sdUserCode/*scSrethUser->Text*/);
SetHeadValue(fiSrethSaler,scSrethSaler->ItemData[cbItem2]);
SetHeadValue(fiSrethCurrency,seSrethCurrency->ItemData[cbItem2]);
SetHeadValue(fiSrethEnrate,seSrethEnrate->Text);
SetHeadValue(fiSrethTaxCode,scSrethTaxCode->ItemData[cbItem2]);
SetHeadValue(fiSrethSettleMode,scSrethSettleMode->ItemData[cbItem2]);
SetHeadValue(fiSrethDeliver,scSrethDeliver->ItemData[cbItem2]);
SetHeadValue(fiSrethSsite,seSrethSsite->ItemData[cbItem2]);
SetHeadValue(fiSrethTransMode,scSrethTransMode->ItemData[cbItem2]);
SetHeadValue(fiSrethRr,scSrethRr->ItemData[cbItem2]);
SetHeadValue(fiSrethDesc,memSrethDesc->Text);
}
else
{
CalculateAmt();
SetDetailValue(fiSretdCode,seSrethCode->Text);
SetDetailValue(fiSretdLine,seSretdLine->Text);
SetDetailValue(fiSretdSogCode,seSretdSogCode->Text);
SetDetailValue(fiSretdSogdLine,seSretdSogdLine->Text);
SetDetailValue(fiSretdGoods,seSretdGoods->Text);
SetDetailValue(fiSretdUnit,seSretdUnit->ItemData[cbItem2]);
SetDetailValue(fiSretdConv,seSretdConv->Text);
SetDetailValue(fiSretdLoc,seSretdLoc->ItemData[cbItem2]);
SetDetailValue(fiSretdQty,seSretdQty->Text);
SetDetailValue(fiSretdPrice,seSretdPrice->Text);
SetDetailValue(fiSretdAmt,seSretdAmt->Text);
SetDetailValue(fiSretdTaxAmt,seSretdTaxAmt->Text);
SetDetailValue(fiSretdBatch,seSretdBatch->ItemData[1]);
SetDetailValue(fiSretdExes,seSretdExes->Text);
SetDetailValue(fiSretdDesc,memSretdDesc->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::WaitUserInput(int Section)
{
if (Section ==1)
{
FloatPanel1->Enabled=true;
if(seSrethCode->Enabled)
seSrethCode->SetFocus();
}
else
{
FloatPanel1->Enabled=false;
sgSretd->Visible=false;
sgSretd->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if(seSretdLine->Enabled)
seSretdLine->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::RefreshGridData(int mAction)
{
AnsiString ItemStr;
switch(mAction)
{
case 0:
ItemStr="\t"+GetDetailValue(fiSretdLine)+"\t"+GetDetailValue(fiSretdSogCode)+"\t"+
GetDetailValue(fiSretdSogdLine)+"\t"+GetDetailValue(fiSretdGoods)+"\t"+
GetDetailValue(fiSretdUnit)+"\t"+GetDetailValue(fiSretdConv)+"\t"+
GetDetailValue(fiSretdLoc)+"\t"+GetDetailValue(fiSretdQty)+"\t"+
GetDetailValue(fiSretdPrice)+"\t"+GetDetailValue(fiSretdAmt)+"\t"+
GetDetailValue(fiSretdTaxAmt);
sgSretd->AddItem(ItemStr);
break;
case 1:
ItemStr="\t"+GetDetailValue(fiSretdLine)+"\t"+GetDetailValue(fiSretdSogCode)+"\t"+
GetDetailValue(fiSretdSogdLine)+"\t"+GetDetailValue(fiSretdGoods)+"\t"+
GetDetailValue(fiSretdUnit)+"\t"+GetDetailValue(fiSretdConv)+"\t"+
GetDetailValue(fiSretdLoc)+"\t"+GetDetailValue(fiSretdQty)+"\t"+
GetDetailValue(fiSretdPrice)+"\t"+GetDetailValue(fiSretdAmt)+"\t"+
GetDetailValue(fiSretdTaxAmt);
sgSretd->ChangeItem(ItemStr,sgSretd->Row);
break;
case 2:
sgSretd->RemoveItem(sgSretd->Row);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -