以文本方式查看主题 - 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 |
-- 作者:有点甜 -- 发布时间:2014/5/14 16:06:00 -- 如果要设置表达式
isnull(市场价,0) + isnull(野外补助,0) |
-- 作者:qdtz -- 发布时间:2014/5/14 16:10:00 -- 呵呵,我实在是调不了了。对英文字母的意思都是模模糊糊的,您能用QQ远程帮我一下吗 |