📄 pivoh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Pivoh.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmPivoh *frmPivoh;
//---------------------------------------------------------------------------
__fastcall TfrmPivoh::TfrmPivoh(TComponent* Owner)
: TBillBaseForm(Owner,euSdPivoh,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false,sePivohCode,sePivohCode->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohType,scPivohType->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohPoCode,scPivohPoCode->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohTaxCode,scPivohTaxCode->Name);
ClientGroup->AddComponent(1,true,true,true,sePivohTaxNo,sePivohTaxNo->Name);
ClientGroup->AddComponent(1,true,true,true,scPivohCurrency,scPivohCurrency->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohBankName,scPivohBankName->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohBankNo,scPivohBankNo->Name);
ClientGroup->AddComponent(1,false,true,true,scPivohSupply,scPivohSupply->Name);
ClientGroup->AddComponent(1,true,true,true,sePivohTaxNo,sePivohTaxNo->Name);
ClientGroup->AddComponent(1,true,true,true,sePivohTaxRate,sePivohTaxRate->Name);
ClientGroup->AddComponent(1,true,true,true,scPivohFmonth,scPivohFmonth->Name);
ClientGroup->AddComponent(1,true,true,true,scPivohBuyer,scPivohBuyer->Name);
ClientGroup->AddComponent(1,true,true,true,sePivohTel,sePivohTel->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,sePivodGoods,sePivodGoods->Name);
ClientGroup->AddComponent(2,true,true,true,sePivodGoodsName,sePivodGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,sePivodUnit,sePivodUnit->Name);
ClientGroup->AddComponent(2,true,true,true,sePivodAmt,sePivodAmt->Name);
ClientGroup->AddComponent(2,true,true,true,sePivodSumAmt,sePivodSumAmt->Name);
AnsiString sSQL;
sSQL=" select pohcode,PohContract,PohSupply,PohSettleMode,supplyaddr ";
sSQL=sSQL+" from sdpoh,sdsupply ";
sSQL=sSQL+" where pohcheck=1 and pohcancel=0 and pohstop=0 and pohsupply=supplycode order by pohcode";
FillComboBox(scPivohPoCode,sSQL,"pohcode","PohContract","PohSupply","PohSettleMode","supplyaddr");
FillComboBox(scPivohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo,supplyaddr FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo","supplyaddr");
FillComboBox(scPivohCurrency,"SELECT currencyname memo,currencycode FROM sdCurrency order by currencycode","memo","CurrencyCode");
FillComboBox(scPivohTaxCode,"SELECT taxname memo,TaxCode,taxrate FROM sdTax order by taxcode","memo","TaxCode","taxrate");
FillComboBox(scPivohSettleMode,"SELECT SettleModeName memo,SettleModeCode FROM sdSettleMode order by settlemodename","memo","SettleModeCode");
FillComboBox(scPivohDept,"SELECT DeptName memo,DeptCode FROM sdDept where deptend=1 order by deptcode","memo","DeptCode");
FillComboBox(scPivohBuyer,"SELECT BuyerName memo,BuyerCode,BuyerTel FROM sdBuyer order by buyercode","memo","BuyerCode","BuyerTel");
FillComboBox(scPivohCacCode,"SELECT CacbankName memo,CacCode FROM sdCac order by caccode","memo","CacCode");
scPivohType->ClearAll();
scPivohType->AddItems("1-普通发票","1");
scPivohType->AddItems("2-增值税发票","2");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
sePivohCode->Text = "";
scPivohFmonth->Text =g_sdPMonth;
dePivohDate->Text = g_sdCurDate;
scPivohType->ItemIndex=1;
scPivohPoCode->Text="";
scPivohPoCode->ItemIndex=-1;
scPivohSupply->Text = "";
scPivohSupply->ItemIndex=-1;
sePivohAddr->Text = "";
sePivohContract->Text = "";
scPivohBankName->ItemIndex=-1;
scPivohBankNo->ItemIndex=-1;
scPivohCurrency->Text = "";
scPivohCurrency->ItemIndex=-1;
sePivohEnrate->Text = "1";
scPivohTaxCode->Text = "";
scPivohTaxCode->ItemIndex=-1;
sePivohTaxRate->Text = "0";
scPivohSettleMode->Text = "";
scPivohSettleMode->ItemIndex=-1;
dePivohApDate->Text = g_sdCurDate;
sePivohTaxNo->Text = "";
sePivohAmt->Text = "0";
sePivohTaxAmt->Text = "0";
sePivohSumAmt->Text = "0";
sePivohZkAmt->Text = "0";
chkPivohRed->Checked = false;
scPivohDept->Text = "";
scPivohDept->ItemIndex=-1;
scPivohBuyer->Text = "";
scPivohBuyer->LocateKey(g_sdUserCode);
sePivohTel->Text=scPivohBuyer->ItemData[2];
scPivohCacCode->Text = "";
chkPivohCheck->Checked = false;
chkPivohCancel->Checked = false;
memPivohDesc->Text = "";
labSystemDate->Caption = "";
labUserCode->Caption = g_sdUserCode;
labChecker->Caption = "";
//新增,工具栏使能
SetCheckToolbarStatus(false);
}
sgPivoh->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
sePivodLine->Text = AnsiString(comServer->ItemCount+1);
scPivodPodLine->Text = "";
scPivodPodLine->ItemIndex=-1;
sePivodGoods->Text = "";
sePivodGoodsName->Text = "";
sePivodUnit->Text = "";
sePivodQty->Text = "0.0";
sePivodPrice->Text = "0.0";
sePivodAmt->Text = "0.0";
sePivodTaxAmt->Text = "0.0";
sePivodTaxPrice->Text = "0.0";
sePivodSumAmt->Text = "0.0";
sePivodZkAmt->Text = "0.0";
memPivodDesc->Text = "";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::GetDataFromComObject(int Section)
{
if (Section==1)
{
sePivohCode->Text=GetHeadValue(fiPivohCode);
dePivohDate->Text=GetHeadValue(fiPivohDate);
scPivohType->LocateKey(GetHeadValue(fiPivohType));
scPivohTypeClick(NULL);
scPivohPoCode->LocateKey(GetHeadValue(fiPivohPoCode));
sePivohContract->Text=GetHeadValue(fiPivohContract);
scPivohSupply->LocateKey(GetHeadValue(fiPivohSupply));
scPivohSupplyClick(NULL);
sePivohAddr->Text=GetHeadValue(fiPivohAddr);
scPivohBankName->LocateKey(GetHeadValue(fiPivohBankName));
scPivohBankNameClick(NULL);
scPivohBankNo->LocateKey(GetHeadValue(fiPivohBankNo));
scPivohDept->LocateKey(GetHeadValue(fiPivohDept));
scPivohDept->Text=scPivohDept->ItemData[0];
scPivohBuyer->LocateKey(GetHeadValue(fiPivohBuyer));
scPivohBuyer->Text=scPivohBuyer->ItemData[0];
scPivohCurrency->LocateKey(GetHeadValue(fiPivohCurrency));
scPivohCurrency->Text=scPivohCurrency->ItemData[0];
sePivohEnrate->Text=GetHeadValue(fiPivohEnrate);
scPivohTaxCode->LocateKey(GetHeadValue(fiPivohTaxCode));
scPivohTaxCode->Text=scPivohTaxCode->ItemData[0];
sePivohTaxRate->Text=GetHeadValue(fiPivohTaxRate);
memPivohDesc->Text=GetHeadValue(fiPivohDesc);
scPivohSettleMode->LocateKey(GetHeadValue(fiPivohSettleMode));
scPivohSettleMode->Text=scPivohSettleMode->ItemData[0];
dePivohApDate->Text=GetHeadValue(fiPivohApDate);
scPivohFmonth->Text=GetHeadValue(fiPivohFmonth);
chkPivohRed->Checked=GetHeadValue(fiPivohRed)=="1";
sePivohTaxNo->Text=GetHeadValue(fiPivohTaxNo);
sePivohTel->Text=GetHeadValue(fiPivohTel);
scPivohCacCode->LocateKey(GetHeadValue(fiPivohCacCode));
scPivohCacCode->Text=scPivohCacCode->ItemData[0];
sePivohAmt->Text=GetHeadValue(fiPivohAmt);
sePivohTaxAmt->Text=GetHeadValue(fiPivohTaxAmt);
sePivohSumAmt->Text=GetHeadValue(fiPivohSumAmt);
sePivohZkAmt->Text=GetHeadValue(fiPivohZkAmt);
labUserCode->Caption=GetHeadValue(fiPivohUser);
chkPivohCheck->Checked=GetHeadValue(fiPivohCheck)=="1";
labChecker->Caption=GetHeadValue(fiPivohChecker);
chkPivohCancel->Checked=GetHeadValue(fiPivohCancel)=="1";
labSystemDate->Caption=GetHeadValue(fiPivohSysDate);
//根据采购单,填充采购单行号
FillPodLine();
//根据审核、取消状态,设置工具栏
if(GetHeadValue(fiPivohCheck)=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
if(GetHeadValue(fiPivohCancel)=="1")
SetCancelToolbarStatus(true);
else
SetCancelToolbarStatus(false);
}
else {
sePivodLine->Text=GetDetailValue(fiPivodLine);
scPivodPodLine->LocateKey(GetDetailValue(fiPivodPodLine));
scPivodPodLine->Text=scPivodPodLine->ItemData[0];
g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPivodGoods)));
sePivodGoods->Text = GetGoodsValue("GoodsCode");
sePivodGoodsName->Text = GetGoodsValue("GoodsName");
sePivodUnit->Text=GetGoodsValue("GoodsUnitCode");
sePivodQty->Text=GetDetailValue(fiPivodQty);
sePivodPrice->Text=GetDetailValue(fiPivodPrice);
sePivodTaxPrice->Text=GetDetailValue(fiPivodTaxPrice);
sePivodAmt->Text=GetDetailValue(fiPivodAmt);
sePivodTaxAmt->Text=GetDetailValue(fiPivodTaxAmt);
sePivodSumAmt->Text=GetDetailValue(fiPivodSumAmt);
sePivodZkAmt->Text=GetDetailValue(fiPivodZkAmt);
memPivodDesc->Text=GetDetailValue(fiPivodDesc);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::SendDataToComObject(int Section)
{
if (Section==1) //保存抬头
{
SetHeadValue(fiPivohCode,sePivohCode->Text);
SetHeadValue(fiPivohDate,dePivohDate->Text);
SetHeadValue(fiPivohType,scPivohType->ItemData[1]);
SetHeadValue(fiPivohPoCode,scPivohPoCode->Text);
SetHeadValue(fiPivohContract,sePivohContract->Text);
SetHeadValue(fiPivohSupply,scPivohSupply->ItemData[1]);
SetHeadValue(fiPivohAddr,sePivohAddr->Text);
SetHeadValue(fiPivohBankName,scPivohBankName->Text);
SetHeadValue(fiPivohBankNo,scPivohBankNo->Text);
SetHeadValue(fiPivohDept,scPivohDept->ItemData[1]);
SetHeadValue(fiPivohBuyer,scPivohBuyer->ItemData[1]);
SetHeadValue(fiPivohCurrency,scPivohCurrency->ItemData[1]);
if(sePivohEnrate->Text == "")
throw Exception("请输入货币的汇率");
SetHeadValue(fiPivohEnrate,sePivohEnrate->Text);
SetHeadValue(fiPivohTaxCode,scPivohTaxCode->ItemData[1]);
if(sePivohTaxRate->Text == "")
throw Exception("请输入税率");
SetHeadValue(fiPivohTaxRate,sePivohTaxRate->Text);
SetHeadValue(fiPivohDesc,memPivohDesc->Text);
SetHeadValue(fiPivohSettleMode,scPivohSettleMode->ItemData[1]);
SetHeadValue(fiPivohApDate,dePivohApDate->Text);
SetHeadValue(fiPivohFmonth,scPivohFmonth->Text);
SetHeadValue(fiPivohRed,chkPivohRed->Checked ? "1":"0");
SetHeadValue(fiPivohTaxNo,sePivohTaxNo->Text);
SetHeadValue(fiPivohTel,sePivohTel->Text);
SetHeadValue(fiPivohCacCode,scPivohCacCode->ItemData[1]);
if(sePivohAmt->Text == "")
sePivohAmt->Text="0";
SetHeadValue(fiPivohAmt,sePivohAmt->Text);
if(sePivohTaxAmt->Text == "")
sePivohTaxAmt->Text="0";
SetHeadValue(fiPivohTaxAmt,sePivohTaxAmt->Text);
if(sePivohSumAmt->Text == "")
sePivohSumAmt->Text="0";
SetHeadValue(fiPivohSumAmt,sePivohSumAmt->Text);
if(sePivohZkAmt->Text == "")
sePivohZkAmt->Text="0";
SetHeadValue(fiPivohZkAmt,sePivohZkAmt->Text);
SetHeadValue(fiPivohUser,labUserCode->Caption);
//根据采购单,填充采购单行号
FillPodLine();
}
else //保存细表记录
{
//自动计算合计金额
AutoCalculate();
SetDetailValue(fiPivodCode,sePivohCode->Text);
if(sePivodLine->Text == "")
throw Exception("请输入发票行号");
SetDetailValue(fiPivodLine,sePivodLine->Text);
SetDetailValue(fiPivodPoCode,scPivohPoCode->Text);
if(scPivodPodLine->ItemIndex > -1)
SetDetailValue(fiPivodPodLine,scPivodPodLine->ItemData[1]);
else
SetDetailValue(fiPivodPodLine,"0");
SetDetailValue(fiPivodGoods,sePivodGoods->Text);
SetDetailValue(fiPivodUnit,sePivodUnit->Text);
if(sePivodQty->Text == "")
throw Exception("请输入发票数量");
SetDetailValue(fiPivodQty,sePivodQty->Text);
if(sePivodPrice->Text == "")
sePivodPrice->Text="0";
SetDetailValue(fiPivodPrice,sePivodPrice->Text);
if(sePivodTaxPrice->Text == "")
throw Exception("请输入含税价");
SetDetailValue(fiPivodTaxPrice,sePivodTaxPrice->Text);
if(sePivodAmt->Text == "")
sePivodAmt->Text="0";
SetDetailValue(fiPivodAmt,sePivodAmt->Text);
if(sePivodTaxAmt->Text == "")
sePivodTaxAmt->Text="0";
SetDetailValue(fiPivodTaxAmt,sePivodTaxAmt->Text);
if(sePivodSumAmt->Text == "")
sePivodSumAmt->Text="0";
SetDetailValue(fiPivodSumAmt,sePivodSumAmt->Text);
if(sePivodZkAmt->Text == "")
sePivodZkAmt->Text="0";
SetDetailValue(fiPivodZkAmt,sePivodZkAmt->Text);
SetDetailValue(fiPivodDesc,memPivodDesc->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetDataToGrid();
switch(mAction)
{
case 0:
sgPivoh->AddItem(ItemStr);
CalculateAmt('+', sgPivoh->RowCount-1); // Add
break;
case 1:
i=sgPivoh->Row;
CalculateAmt('-', i); // Substract
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -