以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]求助表达式问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31989) |
-- 作者:ilacs14 -- 发布时间:2013/4/24 9:00:00 -- [求助]求助表达式问题 B表设置与A表按部门列关联,表A中有部门列,a数据列;B表中有部门列,b数据列,表达式列。但是想实现如下功能: 情况1:假设B表中部门列=外一科,A表中部门列=外一科那行的a数据列不为0,则表达式结果为相应的 a数据列*b数据列; 情况2:假设B表中部门列=120,A表中部门列=120那行的a数据列为0,则表达式结果为 a数据列(值为A表 部门=门急诊 这行的a数据值)*b数据列 不知道公式该怎么来写了,麻烦帮帮忙,谢谢
[此贴子已经被作者于2013-4-24 9:00:20编辑过]
|
-- 作者:Bin -- 发布时间:2013/4/24 9:08:00 -- 1.外一科那行的a数据列不为0,则表达式结果为相应的 a数据列*b数据列; 为0的话怎么处理? 2.表达式无法实现必须用代码.
|
-- 作者:XYT -- 发布时间:2013/4/24 9:09:00 -- 如果你要先判断 B表的部门和A部门对应的列就不能用单纯用表达式,要用代码才行 |
-- 作者:ilacs14 -- 发布时间:2013/4/24 9:33:00 -- 以下是引用Bin在2013-4-24 9:08:00的发言:
1.外一科那行的a数据列不为0,则表达式结果为相应的 a数据列*b数据列; 为0的话怎么处理? 2.表达式无法实现必须用代码. 谢谢哈,我是举例,主要是想用一个公式实现情况1跟情况2两种情况的计算。 用代码实现的话,该怎么写呢?代码在哪写呢?麻烦帮下忙谢谢
|
-- 作者:ilacs14 -- 发布时间:2013/4/24 9:37:00 -- 以下是引用XYT在2013-4-24 9:09:00的发言: 如果你要先判断 B表的部门和A部门对应的列就不能用单纯用表达式,要用代码才行 请问用代码该怎么实现呢?
|
-- 作者:Bin -- 发布时间:2013/4/24 9:39:00 -- 写在DataCloChanged事件中. 则表达式结果为 a数据列(值为A表 部门=门急诊 这行的a数据值) 120 A数据列 等于 门急诊 A数据列?
|
-- 作者:ilacs14 -- 发布时间:2013/4/24 9:42:00 -- 以下是引用Bin在2013-4-24 9:39:00的发言:
写在DataCloChanged事件中. 则表达式结果为 a数据列(值为A表 部门=门急诊 这行的a数据值) 120 A数据列 等于 门急诊 A数据列? 对,相当于A表中 部门=120 这行的a数据列为0时,在B表中计算时,调取A表中 部门=门急诊 这行的a数据列值
|
-- 作者:Bin -- 发布时间:2013/4/24 9:44:00 -- 以下是引用ilacs14在2013-4-24 9:42:00的发言:
那你A表 部门为120的行意义何在? 怎么感觉很混乱的样子.
|
-- 作者:ilacs14 -- 发布时间:2013/4/24 9:47:00 -- 额是我整复杂了,我是为了方便举例,不好意思哈。其实更多情况应该是A表中没有 部门=120这行数据。。。那么B表计算 部门=120 这行的值时,调用A表 部门=门急诊的数据来计算 |
-- 作者:Bin -- 发布时间:2013/4/24 10:01:00 -- 那就在B表的 DataCloChanged事件中 if e.dataCol.Name="B数据列" andalso e.datarow("部门")="120" then dim dr as datarow = datatables("A表").Find("部门-门急诊") if e.datarow("B数据列") <> 0 andalso dr("A数据列") <> 0 then e.datarow("表达式列")=e.datarow("B数据列")*dr("A数据列") end if end if
|