以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  有条件计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19582)

--  作者:jiwawa0420
--  发布时间:2012/5/15 11:36:00
--  有条件计算

有三列:A=付款类型(文本型)    B=合同金额     C=付款金额(是设置表达式还是一般列?)

想达到以下效果:若A=‘税款’ C=B*6.3*0.17


--  作者:狐狸爸爸
--  发布时间:2012/5/15 11:38:00
--  

设置成表达式就行:

 

iif(A=\'税款\',B * 6.3* 0.17, Null)


--  作者:jiwawa0420
--  发布时间:2012/5/15 20:33:00
--  

还是有问题呀!A不是税款的情况,就可能是其他数据,我做这个的目的就只是想当A时税款的时候,付款金额可以自动算出来,其他情况全部手动填写。你给我的公式出来的结果是:A是税款,计算出来了没错,但是A不是税款的时候,付款金额那一列就只能是空,没法手动填写。


--  作者:狐狸爸爸
--  发布时间:2012/5/15 22:14:00
--  

那就不能用表达式,改为数据列,在DataColChanged事件设置代码:

 

Select Case e.DataCol.Name

    Case “A”

         if e.DataRow("A") = "税款\' Then

              e.DataRow("B") = e.DataRow("A") * 6.3 * 0.17

        end if

End Select

 


--  作者:jiwawa0420
--  发布时间:2012/5/18 11:13:00
--  

狐狸爸爸,不行呢,按照你给我的代码,B没反应,根本没有自动算出数据。


--  作者:狐狸爸爸
--  发布时间:2012/5/18 11:32:00
--  

对于原有的数据,设置完代码后,要重置一下A列,B列才会出现计算结果。

之后增加或修改A,B都会自动计算.