Foxtable(狐表)用户栏目专家坐堂 → 跨表引用不能自动更新


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

主题:跨表引用不能自动更新

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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
跨表引用不能自动更新  发帖心情 Post By:2017/11/10 16:07:00 [只看该作者]

跨表引用不能自动更新,只能重置,错在哪了?


在完成明细表中跨表引用进度计划表中计划开始列(有配合)

Select Case e.DataCol.Name
    Case "单位工程","项目ID"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("单位工程") OrElse dr.IsNull("项目ID") Then
            dr("计划开始") = Nothing
        Else
            Dim filter As String
            filter = "单位工程= '" & dr("单位工程") & "' And 项目ID= '" & dr("项目ID") & "'"
            pr = DataTables("进度计划").Find(filter)'此为工料单价表
            If pr IsNot Nothing Then
                dr("计划开始") = pr("计划开始")
            End If
        End If
End Select


'跨表引用进度计划表中计划完成列(有配合)

Select Case e.DataCol.Name
    Case "单位工程","项目ID"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("单位工程") OrElse dr.IsNull("项目ID") Then
            dr("计划完成") = Nothing
        Else
            Dim filter As String
            filter = "单位工程= '" & dr("单位工程") & "' And 项目ID= '" & dr("项目ID") & "'"
            pr = DataTables("进度计划").Find(filter)'此为工料单价表
            If pr IsNot Nothing Then
                dr("计划完成") = pr("计划完成")
            End If
        End If
End Select


在进度计划表中

''配合完成明细表跨表引用计划开始计划完成

Select Case e.DataCol.Name

    Case "计划开始","计划完成"

     '   Dim Filter As String = "[清单ID] = '" & e.DataRow("清单ID") & "'"

         Dim Filter As String = "[单位工程] = '" & e.DataRow("单位工程") & "' and [项目ID] = '" & e.DataRow("项目ID") & "'"

       DataTables("完成明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)

End Select


[此贴子已经被作者于2017/11/10 16:07:54编辑过]

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


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

代码没问题的。你操作什么的时候没有【自动更新】?

 

如果你执行代码时,使用了 systemready = false,是不会触发datacolchanged事件的。


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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/11/10 16:31:00 [只看该作者]

我希望新建统计表完成明细子表后自动引用进度计划表内计划完成列和计划开始列,不需要任何另外操作

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


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

以下是引用chengjingliang在2017/11/10 16:31:00的发言:
我希望新建统计表完成明细子表后自动引用进度计划表内计划完成列和计划开始列,不需要任何另外操作

 

你新建完成明细子表的代码的后面,加上重置列的代码,如

 

For Each r As Row In Tables("统计.完成明细").rows
    r.DataRow.DataTable.DataCols("项目ID").RaiseDataColChanged(r.DataRow)
Next

 

 


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


加好友 发短信
等级:童狐 帖子:250 积分:1813 威望:0 精华:0 注册:2012/6/28 13:53:00
  发帖心情 Post By:2017/11/10 17:17:00 [只看该作者]

修改日期后怎么办,不能自动计算

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


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

修改日期后如何计算?你可以在datacolchanged事件判断日期列,然后计算。

 回到顶部