以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通过某一条件计算,怎么设置啊  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50842)

--  作者:qdtz
--  发布时间:2014/5/14 15:01:00
--  通过某一条件计算,怎么设置啊
假如有A\\B\\C三列,A=B+C,条件是如果c列有数值或者为0,则计算A=B+C,否则不进行计算。这个条件怎么编写啊


--  作者:Bin
--  发布时间:2014/5/14 15:03:00
--  
IIF([C] is null,0,[B]+[C])
--  作者:qdtz
--  发布时间:2014/5/14 15:17:00
--  
假如有A\\B\\C三列,A=B+C,条件是如果c列有数值,则计算A=B+C, 如果c列没有数值, 则计算 A=B 。这个条件怎么编写呢?
--  作者:Bin
--  发布时间:2014/5/14 15:20:00
--  
表达式看2楼
 把 [B]+[C] 改为[B]
代码如下

datacolchanged 事件

select case e.datacol.name
     case "B","C"
     if e.datarow.isnull("C")=false then
          e.datarow("A")=e.datarow("B")
     end if
end select

--  作者:qdtz
--  发布时间:2014/5/14 15:35:00
--  
我想编的是
有“人工费\\市场价\\野外补助”三列,A=B+C,条件是如果野外补助列有数值,则计算人工费=市场价*(1+费率)+野外补助, 如果野外补助列没有数值, 则计算 人工费=市场价*(1+费率)  
按您给的方法改了一下,可是不成功。还请您再给看看


--  作者:Bin
--  发布时间:2014/5/14 15:37:00
--  
上例子,没道理不成功
--  作者:qdtz
--  发布时间:2014/5/14 15:52:00
--  
我把表达式改为    IIF([野外补助]is null,0,IsNull([市场价] ),0))

datacolchanged 事件中改为
Select Case e.DataCol.name
     Case "市场价","野外补助"
     If e.DataRow.Isnull("野外补助")=False Then
          e.DataRow("人工费单价")=e.DataRow("市场价")
     End If
End Select

现在是这样:在[野外补助]输入0,市场价输入120,人工费才计算得120,如果野外补助里什么也不输入,则人工费里就是0,输入20人工费里就变成120了。我的想法是如果野外补助里什么也不输入,则人工费里就是市场价120,野外补助里输入20,人工费里就是市场价+野外补助=140

--  作者:有点甜
--  发布时间:2014/5/14 16:03:00
--  

 这么简单的问题,为什么要搞得这么复杂?

 

Select Case e.DataCol.name
    Case "市场价","野外补助"
        e.DataRow("人工费单价")=e.DataRow("市场价") + e.DataRow("野外补助")
End Select


--  作者:有点甜
--  发布时间:2014/5/14 16:06:00
--  

 如果要设置表达式

 

isnull(市场价,0) + isnull(野外补助,0)


--  作者:qdtz
--  发布时间:2014/5/14 16:10:00
--  
呵呵,我实在是调不了了。对英文字母的意思都是模模糊糊的,您能用QQ远程帮我一下吗