📄 preth.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Preth.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 link "GenBaseForm"
#pragma resource "*.dfm"
#include "func.h"
#include "Pretd.h"
TfrmPreth *frmPreth;
//---------------------------------------------------------------------------
__fastcall TfrmPreth::TfrmPreth(TComponent* Owner)
: TGenBaseForm(Owner,euSdPreth,"")
{
AutoCtl=sePrethCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,sePrethCode,sePrethCode->Name);
ClientGroup->AddComponent(1,false,true,true,sePrethSupply,sePrethSupply->Name);
ClientGroup->AddComponent(1,false,true,true,sePrethCurrency,sePrethCurrency->Name);
ClientGroup->AddComponent(1,false,true,true,sePrethEnrate,sePrethEnrate->Name);
ClientGroup->AddComponent(1,false,true,true,scPrethTaxCode,scPrethTaxCode->Name);
ClientGroup->AddComponent(1,true,true,true,scPrethFMonth,scPrethFMonth->Name);
ClientGroup->AddComponent(1,false,true,true,scPrethType,scPrethType->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdPrecCode,sePretdPrecCode->Name);
ClientGroup->AddComponent(2,true,true,true,sePretdPrecdLine,sePretdPrecdLine->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdGoods,sePretdGoods->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdUnit,sePretdUnit->Name);
ClientGroup->AddComponent(2,true,true,true,sePretdTaxAmt,sePretdTaxAmt->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdConv,sePretdConv->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdBatch,sePretdBatch->Name);
// ClientGroup->AddComponent(2,true,true,true,sePretdSo,sePretdSo->Name);
ClientGroup->AddComponent(2,true,true,true,sePretdSodLine,sePretdSodLine->Name);
ClientGroup->AddComponent(2,true,true,true,chkPretdClose,chkPretdClose->Name);
ClientGroup->AddComponent(2,true,true,true,dePretdCloseDate,dePretdCloseDate->Name);
ClientGroup->AddComponent(2,true,true,true,scPretdState,scPretdState->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
//Preth
FillComboBox(scPrethTransMode,"select transmodename memo,transmodecode from sdtransmode order by transmodecode","memo","transmodecode");
FillComboBox(scPrethSettleMode,"select SettleModeName memo,SettleModeCode from sdSettleMode order by SettleModeCode","memo","SettleModeCode");
FillComboBox(scPrethRr,"select pretrrdesc memo,pretrrcode from sdpretrr order by pretrrcode","memo","pretrrcode");
FillEdit(sePrethPsite,"select psitename,psitecode from sdpsite order by psitecode","Psitename","psitecode");
FillEdit(sePrethSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
FillComboBox(scPrethPosType,"select PosTypeName memo,PosTypeCode from sdPosType where postypeflg=1 order by PosTypeCode","memo","PosTypeCode");
FillComboBox(scPrethDeliver,"Select DeliverName memo,DeliverCode from sdDeliver order by DeliverCode","memo","DeliverCode");
FillComboBox(scPrethTaxCode,"select taxname,taxcode,taxrate from sdtax order by taxcode","taxName","taxcode","taxrate");
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(sePrethCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
//Pretd
FillEdit(sePretdUnit,"select unitname,unitcode from sdunit order by UnitCode","UnitName","UnitCode");
sSql="select loccode,locname from sdloc order by locName";
FillEdit(sePretdLoc,sSql,"LocName","LocCode");
scPretdState->ClearAll();
scPretdState->AddItems("1-准备","1");
scPretdState->AddItems("2-确认","2");
scPretdState->AddItems("3-已执行","3");
scPrethType->ClearAll();
scPrethType->AddItems("1-据收货单退货","1");
scPrethType->AddItems("2-据供应商退货","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
sePrethCode->Text ="";
scPrethFMonth->Text =g_sdPMonth;
scPrethPosType->ItemIndex =-1;
scPrethType->ItemIndex=-1;
DynamicSetControlState();
scPrethRr->ItemIndex =-1;
scPrethRr->Text="";
sePrethPsite->ItemIndex =-1;
scPrethDeliver->ItemIndex =-1;
scPrethDeliver->Text="";
sePrethSupply->ItemIndex =-1;
scPrethSettleMode->ItemIndex =-1;
sePrethCurrency->ItemIndex =-1;
scPrethTaxCode->ItemIndex =-1;
sePrethEnrate->Text ="1";
scPrethTransMode->ItemIndex =-1;
scPrethTransMode->Text="";
dePrethDate->Text=g_sdCurDate;
labPrethSysDate->Caption="";
sePrethDesc->Text="";
cbxPrethCheck->Checked=false;
cbxPrethCancel->Checked=false;
labPrethChecker->Caption="";
labPrethUser->Caption=g_sdUserCode;
chkPrethClose->Checked=false;
//新增单据,工具栏使能
SetCheckToolbarStatus(false);
}
sgPreth->RowCount=1;
}
else if (Section==2)
if(!BringToNext)
{
sePretdLine->Text=AnsiString(comServer->ItemCount+1);
sePretdPrecCode->Text="";
sePretdPrecdLine->Text="";
sePretdGoods->Text="";
pv_GoodsCode="";
labPretdGoodsName->Caption="";
sePretdUnit->ItemIndex=-1;
sePretdPrice->Text="0.00";
sePretdQty->Text="0";
sePretdAmt->Text="0";
sePretdTaxAmt->Text="0";
sePretdExes->Text="0";
scPretdState->ItemIndex=0;
sePretdBatch->ItemIndex=-1;
sePretdSo->Text="";
sePretdSodLine->Text="";
sePretdDesc->Text="";
sePretdLoc->ItemIndex=-1;
dePretdCloseDate->Text="";
chkPretdClose->Checked=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePrethCode->Text =GetHeadValue(fiPrethCode);
scPrethFMonth->Text =GetHeadValue(fiPrethFmonth);
dePrethDate->Text =GetHeadValue(fiPrethDate);
scPrethType->LocateKey(GetHeadValue(fiPrethType));
DynamicSetControlState();
scPrethPosType->LocateKey(GetHeadValue(fiPrethPosType));
scPrethRr->LocateKey(GetHeadValue(fiPrethRr));
sePrethSupply->LocateKey(GetHeadValue(fiPrethSupply));
sePrethCurrency->LocateKey(GetHeadValue(fiPrethCurrency));
sePrethEnrate->Text =GetHeadValue(fiPrethEnrate);
scPrethTaxCode->LocateKey(GetHeadValue(fiPrethTaxCode));
scPrethSettleMode->LocateKey(GetHeadValue(fiPrethSettleMode));
sePrethPsite->LocateKey(GetHeadValue(fiPrethPsite));
scPrethTransMode->LocateKey(GetHeadValue(fiPrethTransMode));
scPrethDeliver->LocateKey(GetHeadValue(fiPrethDeliver));
labPrethSysDate->Caption=GetHeadValue(fiPrethSysDate);
labPrethUser->Caption =GetHeadValue(fiPrethUser);
sePrethDesc->Text =GetHeadValue(fiPrethDesc);
cbxPrethCheck->Checked =GetHeadValue(fiPrethCheck)=="1";
cbxPrethCancel->Checked =GetHeadValue(fiPrethCancel)=="1";
labPrethChecker->Caption=GetHeadValue(fiPrethChecker);
chkPrethClose->Checked=(GetHeadValue(fiPrethClose)=="1");
//根据审核、取消状态,设置工具栏
if(GetHeadValue(fiPrethCheck)=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue(fiPrethCancel)=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
if(GetHeadValue(fiPrethClose)=="1")
SetCloseToolbarStatus(true);
else
SetCloseToolbarStatus(false);
}
else
{
sePretdLine->Text =GetDetailValue(fiPretdLine);
sePretdPrecCode->Text=GetDetailValue(fiPretdPrecCode);
sePretdPrecdLine->Text=GetDetailValue(fiPretdPrecdLine);
sePretdGoods->Text=GetDetailValue(fiPretdGoods);
g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPretdGoods)));
labPretdGoodsName->Caption=GetGoodsValue("GoodsName");
sePretdUnit->LocateKey(GetDetailValue(fiPretdUnit));
sePretdConv->Text=GetDetailValue(fiPretdConv);
sePretdPrice->Text=GetDetailValue(fiPretdPrice);
sePretdQty->Text=GetDetailValue(fiPretdQty);
sePretdAmt->Text=GetDetailValue(fiPretdAmt);
sePretdTaxAmt->Text =GetDetailValue(fiPretdTaxAmt);
sePretdExes->Text =GetDetailValue(fiPretdExes);
sePretdLoc->LocateKey(GetDetailValue(fiPretdLoc));
scPretdState->LocateKey(GetDetailValue(fiPretdState));
sePretdDesc->Text =GetDetailValue(fiPretdDesc);
sePretdBatch->Text=GetDetailValue(fiPretdBatch);
sePretdSo->Text=GetDetailValue(fiPretdSo);
sePretdSodLine->Text=GetDetailValue(fiPretdSodLine);
chkPretdClose->Checked=(GetDetailValue(fiPretdClose)=="1");
dePretdCloseDate->Text=GetDetailValue(fiPretdCloseDate);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::SendDataToComObject(int Section)
{
if (Section==1)
{
SetHeadValue(fiPrethCode ,sePrethCode->Text );
SetHeadValue(fiPrethFmonth ,scPrethFMonth->Text );
SetHeadValue(fiPrethType ,scPrethType->ItemData[cbItem2]);
SetHeadValue(fiPrethPosType ,scPrethPosType->ItemData[1]);
SetHeadValue(fiPrethRr ,scPrethRr->ItemData[1]);
SetHeadValue(fiPrethSupply ,sePrethSupply->ItemData[1]);
SetHeadValue(fiPrethCurrency ,sePrethCurrency->ItemData[1]);
SetHeadValue(fiPrethEnrate ,sePrethEnrate->Text );
SetHeadValue(fiPrethTaxCode ,scPrethTaxCode->ItemData[1]);
SetHeadValue(fiPrethSettleMode ,scPrethSettleMode->ItemData[1]);
SetHeadValue(fiPrethPsite ,sePrethPsite->ItemData[1]);
SetHeadValue(fiPrethDeliver ,scPrethDeliver->ItemData[1]);
SetHeadValue(fiPrethTransMode ,scPrethTransMode->ItemData[1]);
SetHeadValue(fiPrethDate ,dePrethDate->Text );
SetHeadValue(fiPrethUser ,labPrethUser->Caption );
SetHeadValue(fiPrethDesc ,sePrethDesc->Text );
}
else
{
//自动计算退货金额
AutoCalculation();
SetDetailValue(fiPretdCode,sePrethCode->Text);
SetDetailValue(fiPretdLine,sePretdLine->Text );
SetDetailValue(fiPretdPrecCode,sePretdPrecCode->Text );
SetDetailValue(fiPretdPrecdLine,sePretdPrecdLine->Text);
SetDetailValue(fiPretdGoods,sePretdGoods->Text);
SetDetailValue(fiPretdUnit,sePretdUnit->ItemData[1]);
SetDetailValue(fiPretdConv,sePretdConv->Text);
SetDetailValue(fiPretdQty,sePretdQty->Text);
SetDetailValue(fiPretdPrice,sePretdPrice->Text);
SetDetailValue(fiPretdAmt,sePretdAmt->Text);
SetDetailValue(fiPretdTaxAmt,sePretdTaxAmt->Text);
SetDetailValue(fiPretdExes,sePretdExes->Text);
SetDetailValue(fiPretdLoc,sePretdLoc->ItemData[cbItem2]);
SetDetailValue(fiPretdSo,sePretdSo->Text);
SetDetailValue(fiPretdSodLine,sePretdSodLine->Text);
SetDetailValue(fiPretdBatch,sePretdBatch->Text);
SetDetailValue(fiPretdDesc,sePretdDesc->Text );
SetDetailValue(fiPretdState,scPretdState->ItemData[1]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::WaitUserInput(int Section)
{
if (Section ==1)
{
if(sePrethCode->Enabled)
sePrethCode->SetFocus();
}
else
{
sgPreth->Visible=false;
FloatPanel2->Visible=true;
if(sePretdPrecCode->Enabled)
sePretdPrecCode->SetFocus();
pv_GoodsCode=sePretdGoods->Text;
SetDetail(sePretdGoods->Text);
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreth::GetItemStringToGrid()
{
AnsiString s_ItemStr,str;
s_ItemStr = "\t"+GetDetailValue(fiPretdLine)+
"\t"+GetDetailValue(fiPretdPrecCode)+
"\t"+GetDetailValue(fiPretdPrecdLine)+
"\t"+GetDetailValue(fiPretdGoods)+
"\t"+GetDetailValue(fiPretdUnit)+
"\t"+GetDetailValue(fiPretdQty);
return(s_ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetItemStringToGrid();
switch(mAction)
{
case 0:
sgPreth->AddItem(ItemStr);
break;
case 1:
i=frmPreth->sgPreth->Row;
sgPreth->ChangeItem(ItemStr,i);
break;
case 2:
sgPreth->RemoveItem(sgPreth->Row);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -