以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]DataColChanged如何将改动的列名设为动态  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108830)

--  作者:syjylyq
--  发布时间:2017/10/30 16:29:00
--  [求助]DataColChanged如何将改动的列名设为动态
我用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
图片点击可在新窗口打开查看



--  作者:有点甜
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2021/12/18 9:17:00
--  
应该可以。这种问题测试一下不就知道了