Foxtable(狐表)用户栏目专家坐堂 → [求助]DataColChanged如何将改动的列名设为动态


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

主题:[求助]DataColChanged如何将改动的列名设为动态

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


加好友 发短信
等级:童狐 帖子:260 积分:3307 威望:0 精华:0 注册:2016/5/21 14:28:00
[求助]DataColChanged如何将改动的列名设为动态  发帖心情 Post By:2017/10/30 16:29:00 [只看该作者]

我用Eval函数动态设置公式,其中DataColChanged的更改的数据列希望可以动态设置,根据参与计算的字段判定是否触发公式,请问代码怎么写?

内部函数
'Functions.Execute(函数名, e,表名称,变更字段)
Dim e = Args(0)
Dim l As String = Args(1)
Dim b As String = args(2)
Dim p As String = "表名称 = '" & l & "' And 参与计算字段 Like '%" & b & "%'"
Dim drs As List(Of DataRow) = DataTables("计算公式").Select(p) '查找变更字段涉及的公式
Dim s As Single
For Each dr As DataRow In drs
    s = Eval(dr("公式"),e.DataRow)
    e.DataRow(dr("归属字段")) = Math.Ceiling(s)
Next

其中设置公式的表如下:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看



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


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

Dim fdr As DataRow = DataTables("计算公式").Find("',' + 参与计算字段 + ',' like '%," & e.datacol.name & ",%'")

If fdr IsNot Nothing Then

    msgbox("执行函数")

End If


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


加好友 发短信
等级:三尾狐 帖子:647 积分:5702 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2021/12/17 20:19:00 [只看该作者]

请教老师,可以根据公式来判断参与计算的字段吗?比如这样

Dim fdr As DataRow = DataTables("计算公式").Find("'[' + 公式 + ']' like '%[" & e.datacol.name & "]%'")

If fdr IsNot Nothing Then

    msgbox("执行函数")

End If

[此贴子已经被作者于2021/12/17 20:54:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/18 9:17:00 [只看该作者]

应该可以。这种问题测试一下不就知道了

 回到顶部