Foxtable(狐表)用户栏目专家坐堂 → 关于表格数据自动更新问题


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

主题:关于表格数据自动更新问题

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


加好友 发短信
等级:婴狐 帖子:47 积分:521 威望:0 精华:0 注册:2017/1/2 21:35:00
关于表格数据自动更新问题  发帖心情 Post By:2021/2/7 16:06:00 [只看该作者]

我做了个表格表达式列,目的是:技能得分=技能达标率*15,一个很简单的列,现在主要问题是:即使技能达标率自动变化了,但技能得分的值不能自动变化;
请大神帮忙看看,到底是哪的问题?
补充一下: 技能达标率 是通过关联表 自动更新的值,非人工直接输入。

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

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


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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105959 积分:538870 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/7 16:14:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:47 积分:521 威望:0 精华:0 注册:2017/1/2 21:35:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105959 积分:538870 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部