Foxtable(狐表)用户栏目专家坐堂 → 跨表取值


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

主题:跨表取值

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


加好友 发短信
等级:幼狐 帖子:54 积分:497 威望:0 精华:0 注册:2016/7/4 8:43:00
跨表取值  发帖心情 Post By:2016/9/19 16:39:00 [只看该作者]

现在有三个表:货物工序单价、压铸计件、数控计件。现在想分工序录入计算工资,在压铸计件表录入单号及产品名称,压铸计件根据录入的产品名称跨表引用货物工序单价相关项目,这部份可以引用得了。但是数控计件根据单号跨表引用压铸计件的产品名称后,怎样再根据引用的产品名称再跨表引用货物工序单价的相关项目呢?If e.DataCol.Name = "产品名称" Then
    If e.NewValue Is Nothing Then
        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("压铸单价") 
        End If
    End If

图片点击可在新窗口打开查看此主题相关图片如下:压铸计件.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:货物工序单价.png
图片点击可在新窗口打开查看

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


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


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/19 17:01:00 [只看该作者]

一样的,想要哪个表的数据就到哪个表查询

Dim dr As DataRow
        dr = DataTables("压铸计件").Find("[产品名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing 
            ......
        End If

        dr = DataTables("货物工序单价").Find("[产品名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing 
            ......
        End If

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


加好友 发短信
等级:幼狐 帖子:54 积分:497 威望:0 精华:0 注册:2016/7/4 8:43:00
  发帖心情 Post By:2016/9/20 16:58:00 [只看该作者]

我的意思是:第一次是根据数控计件的正单号引用压铸车间的产品名称,数控计件再根据引用得来的产品名称来引用货物工序单价的数控计件工序,并不是以一个产品名称用引二个表的数据
If e.DataCol.Name = "正单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("产品名称") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("压铸计件").Find("[正单号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("产品名称") = dr("产品名称")
        End If
    End If
End If
If e.DataCol.Name = "产品名称" Then
    If e.NewValue Is Nothing Then
        e.DataRow("数控工序1") = Nothing
    Else
        Dim dt As DataRow
        dt = DataTables("货物工序单价").Find("[产品名称] = " & e.DataRow("产品名称") & "'")
        If dT IsNot Nothing
            e.DataRow("数控工序1") = dt("数控1工序")
        End If
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/20 17:08:00 [只看该作者]

If e.DataCol.Name = "正单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("产品名称") = Nothing
        e.DataRow("数控工序1") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("压铸计件").Find("[正单号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("产品名称") = dr("产品名称")
            
            Dim dr1 As DataRow = DataTables("货物工序单价").Find("[产品名称] = " & dr("产品名称") & "'")
            If dr1 IsNot Nothing
                e.DataRow("数控工序1") = dr1("数控1工序")
            End If
            
        End If
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:54 积分:497 威望:0 精华:0 注册:2016/7/4 8:43:00
  发帖心情 Post By:2016/9/20 17:34:00 [只看该作者]

测试过可以通过了
不知这样行不行Select Case e.DataCol.Name
    Case "正单号"
                    If e.NewValue Is Nothing Then
                e.DataRow("产品名称") = Nothing
            Else
                Dim dr As DataRow
                dr = DataTables("压铸计件").Find("[正单号] = '" & e.NewValue & "'")
                If dr IsNot Nothing
                    e.DataRow("产品名称") = dr("产品名称")
                End If
            End If
   Case "产品名称"
       If e.NewValue Is Nothing Then
        e.DataRow("数控工序1") = Nothing
        e.DataRow("数控工序2") = Nothing
        e.DataRow("数控工序3") = Nothing
        e.DataRow("数控工序4") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("货物工序单价").Find("[产品名称] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("数控工序1") = dr("数控1工序")
            e.DataRow("数控工序2") = dr("数控2工序")
            e.DataRow("数控工序3") = dr("数控3工序")
            e.DataRow("数控工序4") = dr("数控4工序")
        End If
    End If
End Select

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


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/20 17:38:00 [只看该作者]

测试一下就知道了

 回到顶部