Foxtable(狐表)用户栏目专家坐堂 → [求助]关于跨表引用


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

主题:[求助]关于跨表引用

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110622 积分:563012 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 10:00:00 [显示全部帖子]

没看懂,截图看看实际效果

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


加好友 发短信
等级:超级版主 帖子:110622 积分:563012 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 11:08:00 [显示全部帖子]

什么样的情况下会触发添加数据到表B,填入什么值,上图的12怎么来的

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


加好友 发短信
等级:超级版主 帖子:110622 积分:563012 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 11:58:00 [显示全部帖子]

表A在DataColChanged事件

 

Select Case e.DataCol.Name
    Case "属性","PER"
        Dim dr As DataRow
        If e.DataRow("属性") = "混码" Then
            dr = DataTables("表B").AddNew
            dr("属性") =  "混码"
            For i As Integer = 1 To 18
                dr("配码_Q" & i) = e.DataRow("配码_Q" & i)
            Next
        ElseIf e.DataRow("属性") = "单码" And e.DataRow.IsNull("PER") = False Then
            Dim per As Integer = e.DataRow("PER")
            For i As Integer = 1 To 18
                dr = DataTables("表B").AddNew
                dr("属性") =  "单码"
                dr("配码_Q" & i) = per
            Next
        End If
End Select


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


加好友 发短信
等级:超级版主 帖子:110622 积分:563012 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 14:51:00 [显示全部帖子]

12楼代码不会有问题,要根据你已有的代码做适当调整,dr和原有的定义重复了

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


加好友 发短信
等级:超级版主 帖子:110622 积分:563012 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 14:59:00 [显示全部帖子]

表B事件改为这个

 

Select Case e.DataCol.Name
    Case "属性","PACK"
        Dim dr10 As DataRow = DataTables("表A").Find("属性='" & e.DataRow("属性") & "' And 装箱代码='" & e.DataRow("PACK") & "'")
        If dr10 IsNot Nothing Then
            If e.DataRow("属性") = "混码" Then
                For i As Integer = 1 To 18
                    e.DataRow("配码_Q" & i) = dr10("配码_Q" & i)
                Next
            ElseIf e.DataRow("属性") = "单码"  Then
                Dim per As Integer = dr10("PER")
                e.DataRow("配码_Q1") = per
                Dim dr11 As DataRow
                Systemready = False
                For i As Integer = 2 To 18
                    dr11 = e.DataTable.AddNew
                    dr11("属性") =  "单码"
                    dr11("PACK") =  e.DataRow("PACK")
                    dr11("配码_Q" & i) = per
                Next
                Systemready = True
            End If
        End If
End Select


 回到顶部