Foxtable(狐表)用户栏目专家坐堂 → [求助]求助表达式问题


  共有5344人关注过本帖树形打印复制链接

主题:[求助]求助表达式问题

帅哥哟,离线,有人找我吗?
ilacs14
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:203 威望:0 精华:0 注册:2013/3/29 23:51:00
[求助]求助表达式问题  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/24 9:08:00 [只看该作者]

1.外一科那行的a数据列不为0,则表达式结果为相应的 a数据列*b数据列; 为0的话怎么处理?
2.表达式无法实现必须用代码.

 回到顶部
帅哥哟,离线,有人找我吗?
XYT
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1418 积分:7167 威望:0 精华:0 注册:2013/3/18 8:37:00
  发帖心情 Post By:2013/4/24 9:09:00 [只看该作者]

如果你要先判断 B表的部门和A部门对应的列就不能用单纯用表达式,要用代码才行

 回到顶部
帅哥哟,离线,有人找我吗?
ilacs14
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:203 威望:0 精华:0 注册:2013/3/29 23:51:00
  发帖心情 Post By:2013/4/24 9:33:00 [只看该作者]

以下是引用Bin在2013-4-24 9:08:00的发言:
1.外一科那行的a数据列不为0,则表达式结果为相应的 a数据列*b数据列; 为0的话怎么处理?
2.表达式无法实现必须用代码.

谢谢哈,我是举例,主要是想用一个公式实现情况1跟情况2两种情况的计算。
用代码实现的话,该怎么写呢?代码在哪写呢?麻烦帮下忙谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
ilacs14
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:203 威望:0 精华:0 注册:2013/3/29 23:51:00
  发帖心情 Post By:2013/4/24 9:37:00 [只看该作者]

以下是引用XYT在2013-4-24 9:09:00的发言:
如果你要先判断 B表的部门和A部门对应的列就不能用单纯用表达式,要用代码才行
请问用代码该怎么实现呢?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/24 9:39:00 [只看该作者]

写在DataCloChanged事件中.
则表达式结果为 a数据列(值为A表 部门=门急诊 这行的a数据值) 120 A数据列 等于 门急诊 A数据列?

 回到顶部
帅哥哟,离线,有人找我吗?
ilacs14
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:203 威望:0 精华:0 注册:2013/3/29 23:51:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/24 9:44:00 [只看该作者]

以下是引用ilacs14在2013-4-24 9:42:00的发言:

那你A表 部门为120的行意义何在? 怎么感觉很混乱的样子.

 回到顶部
帅哥哟,离线,有人找我吗?
ilacs14
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:203 威望:0 精华:0 注册:2013/3/29 23:51:00
  发帖心情 Post By:2013/4/24 9:47:00 [只看该作者]

额是我整复杂了,我是为了方便举例,不好意思哈。其实更多情况应该是A表中没有 部门=120这行数据。。。那么B表计算 部门=120 这行的值时,调用A表 部门=门急诊的数据来计算

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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

 回到顶部