以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于表格数据自动更新问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160591)

--  作者:aoyanghongwei
--  发布时间:2021/2/7 16:06:00
--  关于表格数据自动更新问题
我做了个表格表达式列,目的是:技能得分=技能达标率*15,一个很简单的列,现在主要问题是:即使技能达标率自动变化了,但技能得分的值不能自动变化;
请大神帮忙看看,到底是哪的问题?
补充一下: 技能达标率 是通过关联表 自动更新的值,非人工直接输入。

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

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


[此贴子已经被作者于2021/2/7 16:06:47编辑过]

--  作者:有点蓝
--  发布时间:2021/2/7 16:14:00
--  
http://www.foxtable.com/webhelp/topics/2381.htm
--  作者:aoyanghongwei
--  发布时间:2021/2/7 17:19:00
--  
If e.DataCol.name = "数量" Then
    Dim 
pr As DataRow = e.DataRow.GetParentRow("订单"\'找出对应的父行
    If 
pr IsNot Nothing Then
        DataTables(
"订单").DataCols("数量").RaiseDataColChanged(pr)  \'通知系统此父行的数量列发生了改变,触发DataColChanged事件
    End If
End If


如上述代码中加下划线的这句,其中的datarow “订单”应该是子表中的某列列名吗? 因为是统计子表中的某列数据发生变化了,才导致父表中相应的行、列需要更新。

我的子表是“岗位ZC”,父表是当前表:“员工岗位ZC状态总表",目前根据帮助写的是这样的,但是不行。需怎么改呢?

If e.DataCol.name = "岗位技能达标率" Then
    Dim pr As DataRow = Tables("岗位ZC").DataRow.GetParentRow("批复结果") \'找出对应的父行
    If pr IsNot Nothing Then
        DataTables("员工岗位ZC状态总表").DataCols("岗位技能达标率").RaiseDataColChanged(pr)
    End If
End If

If e.DataCol.name = "岗位技能达标率" Then
    If e.DataRow("岗位ZC")<>"7-专家" Then \'这个”岗位ZC“是当前表里的行,与那个子表同名。
        e.DataRow("技能得分") = e.DataRow("岗位技能达标率")*15
    Else
        e.DataRow("技能得分") = e.DataRow("岗位技能达标率")*10
    End If
End If

--  作者:有点蓝
--  发布时间:2021/2/7 17:27:00
--  
http://www.foxtable.com/webhelp/topics/0432.htm


If e.DataCol.name = "岗位ZC" Then
    If e.DataRow("岗位ZC")<>"7-专家" Then \'这个”岗位ZC“是当前表里的行,与那个子表同名。
        e.DataRow("技能得分") = e.DataRow("岗位技能达标率")*15
    Else
        e.DataRow("技能得分") = e.DataRow("岗位技能达标率")*10
    End If
End If