以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表间数据调用出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86817)

--  作者:陈卫
--  发布时间:2016/6/27 9:19:00
--  [求助]表间数据调用出错
请教专家,下面这段代码错在哪里?运行后,深蓝色和黑色代码没有执行
 Case "序号"
        Dim dr As DataRow = e.DataRow
        Dim pr1 As DataRow = DataTables("内部合同").Find("序号 = \'" & dr("序号") & "\'")
        Dim pr2 As DataRow = DataTables("拉动排产计划_浸漆").Find("序号 = \'" & dr("序号") & "\'")
        Dim pr3 As DataRow = DataTables("拉动排产计划_摆差").Find("序号 = \'" & dr("序号") & "\'")
        Dim pr4 As DataRow = DataTables("拉动排产计划_高频").Find("序号 = \'" & dr("序号") & "\'")
        If pr1 IsNot Nothing Then
            dr("合同编号") = pr1("合同编号")
            dr("品种_杆径") = pr1("品种_杆径")
            dr("品种_材质") = pr1("品种_材质")
            dr("品种_长度") = pr1("品种_长度")
            dr("品种_级别") = pr1("品种_级别")
            dr("品种_接箍") = pr1("品种_接箍")
            dr("品种_特殊要求") = pr1("品种_特殊要求")
            dr("品种_ID") = pr1("品种_ID")
            dr("贸易性质_内贸") = pr1("贸易性质_内贸")
            dr("贸易性质_外贸") = pr1("贸易性质_外贸")
            If pr2("合同编号")IsNot Nothing Then
                dr("后道工序_需要数量_根")= pr2("本工序_投产数量_根")
                dr("后道工序_需要日期")= pr2("本工序_投产日期")
            ElseIf pr3("合同编号")IsNot Nothing Then
                dr("后道工序_需要数量_根")= pr3("本工序_应投产数量_根")
                dr("后道工序_需要日期")= pr3("本工序_投产日期")
            ElseIf pr4("合同编号")IsNot Nothing Then
                dr("后道工序_需要数量_根")= pr4("本工序_应投产数量_根")
                dr("后道工序_需要日期")= pr4("本工序_投产日期")
            End If
        End If


--  作者:大红袍
--  发布时间:2016/6/27 9:48:00
--  

后面你判断的逻辑是什么啊?

 

Dim dr As DataRow = e.DataRow
Dim pr1 As DataRow = DataTables("内部合同").Find("序号 = \'" & dr("序号") & "\'")
Dim pr2 As DataRow = DataTables("拉动排产计划_浸漆").Find("序号 = \'" & dr("序号") & "\'")
Dim pr3 As DataRow = DataTables("拉动排产计划_摆差").Find("序号 = \'" & dr("序号") & "\'")
Dim pr4 As DataRow = DataTables("拉动排产计划_高频").Find("序号 = \'" & dr("序号") & "\'")
If pr1 IsNot Nothing Then
    dr("合同编号") = pr1("合同编号")
    dr("品种_杆径") = pr1("品种_杆径")
    dr("品种_材质") = pr1("品种_材质")
    dr("品种_长度") = pr1("品种_长度")
    dr("品种_级别") = pr1("品种_级别")
    dr("品种_接箍") = pr1("品种_接箍")
    dr("品种_特殊要求") = pr1("品种_特殊要求")
    dr("品种_ID") = pr1("品种_ID")
    dr("贸易性质_内贸") = pr1("贸易性质_内贸")
    dr("贸易性质_外贸") = pr1("贸易性质_外贸")
    If pr2 IsNot Nothing Then
        dr("后道工序_需要数量_根")= pr2("本工序_投产数量_根")
        dr("后道工序_需要日期")= pr2("本工序_投产日期")
    End If
    If pr3 IsNot Nothing Then
        dr("后道工序_需要数量_根")= pr3("本工序_应投产数量_根")
        dr("后道工序_需要日期")= pr3("本工序_投产日期")
    End If
    If pr4 IsNot Nothing Then
        dr("后道工序_需要数量_根")= pr4("本工序_应投产数量_根")
        dr("后道工序_需要日期")= pr4("本工序_投产日期")
    End If
End If


--  作者:陈卫
--  发布时间:2016/6/27 9:56:00
--  
Dim dr As DataRow = e.DataRow
Dim pr1 As DataRow = DataTables("内部合同").Find("序号 = \'" & dr("序号") & "\'")
Dim pr2 As DataRow = DataTables("拉动排产计划_浸漆").Find("序号 = \'" & dr("序号") & "\'")
Dim pr3 As DataRow = DataTables("拉动排产计划_摆差").Find("序号 = \'" & dr("序号") & "\'")
Dim pr4 As DataRow = DataTables("拉动排产计划_高频").Find("序号 = \'" & dr("序号") & "\'")
If pr1 IsNot Nothing Then
    dr("合同编号") = pr1("合同编号")
    ...
    dr("贸易性质_外贸") = pr1("贸易性质_外贸")
    If pr2 IsNot Nothing Then此处不是判断“序号”为空,而是判断“合同编号”为空。以下pr3、pr4一样
        dr("后道工序_需要数量_根")= pr2("本工序_投产数量_根")
        dr("后道工序_需要日期")= pr2("本工序_投产日期")
    End If
   ...
    End If
End If
[此贴子已经被作者于2016/6/27 9:57:01编辑过]

--  作者:大红袍
--  发布时间:2016/6/27 10:09:00
--  
If pr2 IsNot Nothing AndAlso pr2.IsNull("合同编号") = False Then

--  作者:陈卫
--  发布时间:2016/6/27 10:22:00
--  
谢谢专家,问题解决了