Foxtable(狐表)用户栏目专家坐堂 → [求助]列标题不同的跨表引用及更新


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

主题:[求助]列标题不同的跨表引用及更新

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]列标题不同的跨表引用及更新  发帖心情 Post By:2017/8/25 9:46:00 [只看该作者]

数据表(总表)与事务总表(分表)的部分列的内容相同,但是列名不同,对应关系是:
    数据表:   对象、      日期、                          时间、                          地点、            
    事务总表:案号、      开庭排期_开庭日期、      开庭排期_开庭时间、      开庭排期_开庭地点
我在事务总表的DataColChanged事件写下了跨表引用的代码:

If e.DataCol.Name = "对象" Then
    If e.NewValue Is Nothing Then
        e.DataRow("日期") = Nothing
        e.DataRow("时间") = Nothing
        e.DataRow("地点") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("数据表").Find("[案号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("日期") = dr("开庭排期_开庭日期")
            e.DataRow("时间") = dr("开庭排期_开庭时间")
            e.DataRow("地点") = dr("开庭排期_开庭地点")
        End If
    End If
End If

上述代码在增加新行时可以引用,我想通过两个表的[对象]、[案号]列建立关联,互相引用、更新(只要其中一个表的值发生变动,另一个表跟随变动),应该怎样改动代码。

谢谢!

 

附件:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表关联 - 副本.table


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


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

Select Case e.DataCol.name
    Case "对象"
        Dim dr As DataRow
        If e.OldValue = Nothing Then
            dr = DataTables("数据表").Find("[案号] = '" & e.NewValue & "'")
        Else
            dr = DataTables("数据表").Find("[案号] = '" & e.oldvalue & "'")
        End If
        If dr Is Nothing Then dr = DataTables("数据表").AddNew
        dr("案号") = e.DataRow("对象")
        dr("开庭排期_开庭日期") = e.DataRow("日期")
        dr("开庭排期_开庭时间") = e.DataRow("时间")
        dr("开庭排期_开庭地点") = e.DataRow("地点")
       
       
    Case "地点","日期","时间"
       
        Dim dr = DataTables("数据表").Find("[案号] = '" & e.DataRow("对象") & "'")
       
        If dr IsNot Nothing Then
            dr("案号") = e.DataRow("对象")
            dr("开庭排期_开庭日期") = e.DataRow("日期")
            dr("开庭排期_开庭时间") = e.DataRow("时间")
            dr("开庭排期_开庭地点") = e.DataRow("地点")
        End If
End Select

 

[此贴子已经被作者于2017/8/25 14:41:55编辑过]

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/8/25 13:23:00 [只看该作者]

由于数据表是主表,当在数据表的现有行编辑时,如果事务表里没有对应的案号,就新增一行与之对应。请版主指教!

谢谢!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表关联 - 副本.table


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


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

Select Case e.DataCol.name
    Case "案号"
        Dim dr As DataRow
        If e.OldValue = Nothing Then
            dr = DataTables("事务主表").Find("[对象] = '" & e.NewValue & "'")
        Else
            dr = DataTables("事务主表").Find("[对象] = '" & e.oldvalue & "'")
        End If
        If dr Is Nothing Then dr = DataTables("事务主表").AddNew
        dr("对象") = e.DataRow("案号")
        dr("日期") = e.DataRow("开庭排期_开庭日期")
        dr("时间") = e.DataRow("开庭排期_开庭时间")
        dr("地点") = e.DataRow("开庭排期_开庭地点")
       
    Case "开庭排期_开庭日期","开庭排期_开庭时间","开庭排期_开庭地点"
        Dim dr = DataTables("事务主表").Find("[对象] = '" & e.DataRow("案号") & "'")
        If dr Is Nothing Then
            dr = DataTables("事务主表").AddNew
            dr("对象") = e.DataRow("案号")
        End If

        dr("对象") = e.DataRow("案号")
        dr("日期") = e.DataRow("开庭排期_开庭日期")
        dr("时间") = e.DataRow("开庭排期_开庭时间")
        dr("地点") = e.DataRow("开庭排期_开庭地点")
       
End Select


 回到顶部