📄 pivoh.cpp
字号:
}
sePivohAddr->Text=scPivohSupply->ItemData[4];
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohBankNameClick(TObject *Sender)
{
AnsiString m_Sql;
m_Sql = AnsiString("select distinct PsdBankNo,PsdCurrencyCode")
+ AnsiString(" FROM sdPsd")
+ AnsiString(" where PsdSupplyCode = '"+ Trim(scPivohSupply->ItemData[1])+"'")
+ AnsiString(" and PsdBankName = '"+ Trim(scPivohBankName->Text)+"' order by psdbankno");
FillComboBox(scPivohBankNo,m_Sql,"PsdBankNo","PsdCurrencyCode");
scPivohBankNo->ItemIndex=-1;
scPivohBankNoClick(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::CalculateAmt(char mAction, int iRow)
{
double PivodAmt,PivohAmt;
double PivodTaxAmt,PivohTaxAmt;
double PivodSumAmt,PivohSumAmt;
double PivodZkAmt,PivohZkAmt;
PivodAmt=StrToFloat(sgPivoh->TextMatrix[iRow][6]);
PivodTaxAmt=StrToFloat(sgPivoh->TextMatrix[iRow][8]);
PivodSumAmt=StrToFloat(sgPivoh->TextMatrix[iRow][9]);
PivodZkAmt=StrToFloat(sgPivoh->TextMatrix[iRow][10]);
if(mAction=='+')
{
PivohAmt = StrToFloat(sePivohAmt->Text) + PivodAmt;
PivohTaxAmt = StrToFloat(sePivohTaxAmt->Text) + PivodTaxAmt;
PivohSumAmt = StrToFloat(sePivohSumAmt->Text) + PivodSumAmt;
PivohZkAmt = StrToFloat(sePivohZkAmt->Text) + PivodZkAmt;
}
else //mAction == "-"
{
PivohAmt = StrToFloat(sePivohAmt->Text) - PivodAmt;
PivohTaxAmt = StrToFloat(sePivohTaxAmt->Text) - PivodTaxAmt;
PivohSumAmt = StrToFloat(sePivohSumAmt->Text) - PivodSumAmt;
PivohZkAmt = StrToFloat(sePivohZkAmt->Text) - PivodZkAmt;
}
sePivohAmt->Text = AnsiString(PivohAmt);
sePivohTaxAmt->Text = AnsiString(PivohTaxAmt);
sePivohSumAmt->Text = AnsiString(PivohSumAmt);
sePivohZkAmt->Text = AnsiString(PivohZkAmt);
}
void __fastcall TfrmPivoh::FillPodLine()
{
if(scPivohPoCode->Text != "")
{
AnsiString sSQL;
sSQL=" select podcode+'-'+ltrim(str(podline)) memo,podline,podgoods,podprice,podqty ";
sSQL=sSQL+" from sdpod ";
sSQL=sSQL+" where podcode ='"+scPivohPoCode->Text+"' order by podline";
FillComboBox(scPivodPodLine,sSQL,"memo","podline","podgoods","podqty","podprice");
scPivodPodLine->ItemIndex=-1;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::AutoCalculate()
{
//自动计算合计金额和含税合计
double TempAmt,TempPrice,TempQty;
if((sePivodTaxPrice->Text!="")&&(sePivodQty->Text!=""))
{
TempQty=StrToFloat(sePivodQty->Text);
//单价=含税价/(1+税率)
TempPrice=StrToFloat(sePivodTaxPrice->Text);
//Func.h double _EXPORT_TYPE DataCarry(double data,int scale,int method)
//精度scale:0,1,2 方式method:0-四舍五入,1-取整,2-向上取整
sePivodPrice->Text=FloatToStr(DataCarry(TempPrice/(1+StrToFloat(sePivohTaxRate->Text)),2,0));
//金额=单价*数量
TempAmt=StrToFloat(sePivodPrice->Text)*TempQty;
sePivodAmt->Text = AnsiString(TempAmt);
if((sePivodAmt->Text!="")&&(sePivohEnrate->Text!=""))
{
//税额=金额*税率
TempAmt=StrToFloat(sePivodAmt->Text)*StrToFloat(sePivohTaxRate->Text);
sePivodTaxAmt->Text=AnsiString(TempAmt);
//价税合计=金额+税额
TempAmt=StrToFloat(sePivodAmt->Text)+StrToFloat(sePivodTaxAmt->Text);
sePivodSumAmt->Text = AnsiString(TempAmt);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::sePivodQtyExit(TObject *Sender)
{
AutoCalculate();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohBuyerClick(TObject *Sender)
{
if(scPivohBuyer->ItemIndex > -1)
sePivohTel->Text=scPivohBuyer->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::sePivodGoodsButtonClick(TObject *Sender)
{
OpenGoodsQuery("select * from sdgoods,sdpgd where goodscode=pgdgoodscode and pgdsupplycode='"
+scPivohSupply->ItemData[1]+"'");
if(QueryStatus==1)
{
sePivodGoods->Text=GetGoodsValue("GoodsCode");
sePivodGoodsName->Text=GetGoodsValue("GoodsName");
sePivodUnit->Text=GetGoodsValue("GoodsUnitCode");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohCurrencyClick(TObject *Sender)
{
//获取汇率
TComResultSet *RsRate;
AnsiString sSql;
if(scPivohCurrency->ItemIndex > -1)
{
sSql=" select rateratio from sdrate where ratefmonth ='"
+scPivohFmonth->Text+"' and ratecurrency = '"+scPivohCurrency->ItemData[1]+"'";
RsRate=NewResultSet();
RsRate->Open(sSql,"");
if(RsRate->RecordCount > 0)
sePivohEnrate->Text=RsRate->FieldByName("rateratio");
else
sePivohEnrate->Text="1";
RsRate->Close();
}
delete RsRate;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::sePivodGoodsExit(TObject *Sender)
{
if(Trim(sePivodGoods->Text)!="")
{
g_sdRsGoods->LocateByKey(WideString(Trim(sePivodGoods->Text)));
sePivodGoods->Text=GetGoodsValue("GoodsCode");
sePivodGoodsName->Text=GetGoodsValue("GoodsName");
sePivodUnit->Text=GetGoodsValue("GoodsUnitCode");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
{
case euSdPoh:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
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");
}
break;
case euSdFc:
scPivohFmonth->Text=g_sdPMonth;
break;
case euSdSupply:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo,supplyaddr FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo","supplyaddr");
}
break;
case euSdCurrency:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohCurrency,"SELECT currencyname memo,currencycode FROM sdCurrency order by currencycode","memo","CurrencyCode");
}
break;
case euSdTax:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohTaxCode,"SELECT taxname memo,TaxCode,taxrate FROM sdTax order by taxcode","memo","TaxCode","taxrate");
}
break;
case euSdSettleMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohSettleMode,"SELECT SettleModeName memo,SettleModeCode FROM sdSettleMode order by settlemodename","memo","SettleModeCode");
}
break;
case euSdDept:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohDept,"SELECT DeptName memo,DeptCode FROM sdDept where deptend=1 order by deptcode","memo","DeptCode");
}
break;
case euSdBuyer:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohBuyer,"SELECT BuyerName memo,BuyerCode,BuyerTel FROM sdBuyer order by buyercode","memo","BuyerCode","BuyerTel");
}
break;
case euSdCac:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPivohCacCode,"SELECT CacbankName memo,CacCode FROM sdCac order by caccode","memo","CacCode");
}
break;
default:
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::sePivohCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(sePivohCode->Text));
DisplayBill();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohBankNoClick(TObject *Sender)
{
if(scPivohBankNo->Text!="")
{
scPivohCurrency->LocateKey(scPivohBankNo->ItemData[1]);
scPivohCurrencyClick(NULL);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohTypeClick(TObject *Sender)
{
if(scPivohType->ItemIndex==0) // 普通发票
{
scPivohTaxCode->ItemIndex=-1;
scPivohTaxCode->Enabled=false;
sePivohTaxNo->Text="";
sePivohTaxRate->Text="0";
}
else
{
scPivohTaxCode->Enabled=true;
scPivohTaxCode->LocateKey(scPivohSupply->ItemData[2]);
scPivohTaxCodeExit(NULL);
sePivohTaxNo->Text=scPivohSupply->ItemData[3];
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohPoCodeExit(TObject *Sender)
{
CheckComboBoxText(scPivohPoCode);
if(scPivohPoCode->ItemIndex > -1)
{
sePivohContract->Text=scPivohPoCode->ItemData[1];
scPivohSupply->LocateKey(scPivohPoCode->ItemData[2]);
scPivohSupplyClick(NULL);
scPivohSettleMode->LocateKey(scPivohPoCode->ItemData[3]);
sePivohAddr->Text=scPivohPoCode->ItemData[4];
sePivohContract->Enabled=false;
scPivohSupply->Enabled=false;
scPivohSettleMode->Enabled=false;
}
else
{
sePivohContract->Text="";
scPivohSupply->Text="";
scPivohSupplyClick(NULL);
scPivohSettleMode->ItemIndex=-1;
scPivohSettleMode->Text="";
sePivohAddr->Text="";
sePivohContract->Enabled=true;
scPivohSupply->Enabled=true;
scPivohSettleMode->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohTaxCodeExit(TObject *Sender)
{
CheckComboBoxText(scPivohTaxCode);
if(scPivohTaxCode->ItemIndex >-1)
{
sePivohTaxRate->Text=scPivohTaxCode->ItemData[2];
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivohDeptExit(TObject *Sender)
{
CheckComboBoxText(scPivohDept);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::scPivodPodLineExit(TObject *Sender)
{
CheckComboBoxText(scPivodPodLine);
if(scPivodPodLine->ItemIndex > -1)
{
g_sdRsGoods->LocateByKey(WideString(scPivodPodLine->ItemData[cbItem3]));
sePivodGoods->Text = GetGoodsValue("GoodsCode");
sePivodGoodsName->Text = GetGoodsValue("GoodsName");
sePivodUnit->Text = GetGoodsValue("GoodsUnitCode");
sePivodPrice->Text=scPivodPodLine->ItemData[cbItem5];
sePivodQty->Text=scPivodPodLine->ItemData[cbItem4];
sePivodQtyExit(NULL);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -