Foxtable(狐表)用户栏目专家坐堂 → 请教动态表达式


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

主题:请教动态表达式

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


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
请教动态表达式  发帖心情 Post By:2014/11/12 21:14:00 [只看该作者]

请问能不能实现,在动态增加列(列名统一有相同前缀“月计划')的同时,在”合计“列对所有月计划列数量汇总


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 21:16:00 [只看该作者]

1、你这样设计,肯定是不合理的。

 

2、你可以在afteropenproject事件,循环所有的列,满足条件的,合并成表达式,设置进去即可。


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


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/11/12 21:26:00 [只看该作者]

那可以在窗口的afterload事件中增加临时合计列来实现这个功能吗,就是打开单独的窗口来合计,如果可以,这个表达式应该怎样设计呢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 21:29:00 [只看该作者]

 

Dim str As String = ""
For Each dc As DataCol In DataTables("表A").DataCols
    If dc.Name.StartsWith("第") Then
        str &= dc.Name & "+"
    End If
Next

DataTables("表A").DataCols.Add("合计", Gettype(Double), str.Trim("+"))


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


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/11/12 21:35:00 [只看该作者]

这个("第") 指的是("月计划”)前缀吗?,好像像不管用,各列的名称是不一样的,只是有一个相同前缀“月计划”

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 21:37:00 [只看该作者]

肯定有效

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


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/11/12 21:40:00 [只看该作者]

Dim str As String = ""
For Each dc As DataCol In DataTables("材料表").DataCols
    If dc.Name.StartsWith("月计划") Then
        str &= dc.Name & "+"
    End If
Next

DataTables("材料表").DataCols.Add("合计", Gettype(Double), str.Trim("+"))

 

是这样吗/


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 21:41:00 [只看该作者]

Dim str As String = ""
For Each dc As DataCol In DataTables("材料表").DataCols
    If dc.Name.StartsWith("月计划") Then
        str &= "isnull(" & dc.Name & ",0)+"
    End If
Next

DataTables("材料表").DataCols.Add("合计", Gettype(Double), str.Trim("+"))


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


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2014/11/12 21:47:00 [只看该作者]

OK了,我的列属性是高精度小数,代码是双精度就不显示结果,改为高精度就OK了

 回到顶部