在datamodule中:
计算扣税金的过程
------------
procedure TSSDM.KouShuiJin;
var
calcSJ : Currency;
up1,up2,up3,sub1,sub2,sub3,sub4:Currency;
rat1,rat2,rat3,rat4 : Single;
begin
// get upperlimit(下限) 从表中取得某个网格的值
qryTax.SQL.Clear ;
qryTax.SQL.Add('select UpperLimit from TABLE_TAX where Rank=1');
up1 := qryTax.FieldByName('UpperLimit').AsCurrency ;
qryTax.SQL.Clear ;
qryTax.SQL.Add('select UpperLimit from TABLE_TAX where Rank=2');
up2 := qryTax.FieldByName('UpperLimit').AsCurrency ;
...
//get rate(税率)
qryTax.SQL.Clear ;
qryTax.SQL.Add('select Rate from TABLE_TAX where Rank=1');
rat1 := qryTax.FieldByName('Rate').AsFloat ;
qryTax.SQL.Clear ;
qryTax.SQL.Add('select Rate from TABLE_TAX where Rank=2');
rat2 := qryTax.FieldByName('Rate').AsFloat ;
...
//计算税金的范围 ,tblZZKSJ 是税金计算字段
if calcSJ<=up1 then
tblZZKSJ.Value := calcSJ*rat1-sub1
else if calcSJ<=up2 then
tblZZKSJ.Value := calcSJ*rat2-sub2
else if calcSJ<=up3 then
tblZZKSJ.Value := calcSJ*rat3-sub3
else
tblZZKSJ.Value := calcSJ*rat4-sub4;
end;
----------------------------------------
然后在dm中的calcFields过程中调用此过程
KouShuiJin;
tblZZSFJE.Value := tblZZYFJE.Value-tblZZKCJE.Value-tblZZKSJ.Value ;//实发金额= 应发金额-扣除金额-税金
--------------
但运行程序后表中显示税金为0,说明koushuijin过程中的变量没有得到值。
是不是因为跳出单元后变量生命结束?
请问如何解决?
计算扣税金的过程
------------
procedure TSSDM.KouShuiJin;
var
calcSJ : Currency;
up1,up2,up3,sub1,sub2,sub3,sub4:Currency;
rat1,rat2,rat3,rat4 : Single;
begin
// get upperlimit(下限) 从表中取得某个网格的值
qryTax.SQL.Clear ;
qryTax.SQL.Add('select UpperLimit from TABLE_TAX where Rank=1');
up1 := qryTax.FieldByName('UpperLimit').AsCurrency ;
qryTax.SQL.Clear ;
qryTax.SQL.Add('select UpperLimit from TABLE_TAX where Rank=2');
up2 := qryTax.FieldByName('UpperLimit').AsCurrency ;
...
//get rate(税率)
qryTax.SQL.Clear ;
qryTax.SQL.Add('select Rate from TABLE_TAX where Rank=1');
rat1 := qryTax.FieldByName('Rate').AsFloat ;
qryTax.SQL.Clear ;
qryTax.SQL.Add('select Rate from TABLE_TAX where Rank=2');
rat2 := qryTax.FieldByName('Rate').AsFloat ;
...
//计算税金的范围 ,tblZZKSJ 是税金计算字段
if calcSJ<=up1 then
tblZZKSJ.Value := calcSJ*rat1-sub1
else if calcSJ<=up2 then
tblZZKSJ.Value := calcSJ*rat2-sub2
else if calcSJ<=up3 then
tblZZKSJ.Value := calcSJ*rat3-sub3
else
tblZZKSJ.Value := calcSJ*rat4-sub4;
end;
----------------------------------------
然后在dm中的calcFields过程中调用此过程
KouShuiJin;
tblZZSFJE.Value := tblZZYFJE.Value-tblZZKCJE.Value-tblZZKSJ.Value ;//实发金额= 应发金额-扣除金额-税金
--------------
但运行程序后表中显示税金为0,说明koushuijin过程中的变量没有得到值。
是不是因为跳出单元后变量生命结束?
请问如何解决?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货