Foxtable(狐表)用户栏目专家坐堂 → 跨表应用代码报错


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

主题:跨表应用代码报错

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
跨表应用代码报错  发帖心情 Post By:2016/1/7 11:14:00 [只看该作者]

错误信息:
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:表,账单明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


被引用表:
Select Case e.DataCol.Name
    Case "客户简称","到港日期","报关单号码","船名航次","提单号码","运输方式","箱量","贸易方式","件数","起运港","抵达港","重量","品名","月份"     
        Dim Filter As String = "[fa piao号码] = '" & e.DataRow("fa piao号码") & "'"
        Dim drs As List(Of DataRow) = DataTables("账单明细").Select(Filter)
        For Each dr As DataRow In drs
            dr(e.DataCol.Name) = e.NewValue
        Next
End Select

引用表:

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("客户简称") = Nothing
        e.DataRow("到港日期") = Nothing
        e.DataRow("报关单号码") = Nothing
        e.DataRow("船名航次") = Nothing
        e.DataRow("提单号码") = Nothing
        e.DataRow("运输方式") = Nothing
        e.DataRow("箱量") = Nothing
        e.DataRow("贸易方式") = Nothing
        e.DataRow("件数") = Nothing
        e.DataRow("起运港") = Nothing
        e.DataRow("抵达港") = Nothing
        e.DataRow("重量") = Nothing
        e.DataRow("品名") = Nothing
        e.DataRow("月份") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("客户简称") = dr("客户简称")
            e.DataRow("到港日期") = dr("到港日期")
            e.DataRow("报关单号码") = dr("报关单号码")
            e.DataRow("船名航次") = dr("船名航次")
            e.DataRow("提单号码") = dr("提单号码")
            e.DataRow("运输方式") = dr("运输方式")
            e.DataRow("箱量") = dr("箱量")
            e.DataRow("贸易方式") = dr("贸易方式")
            e.DataRow("件数") = dr("件数")
            e.DataRow("起运港") = dr("起运港")
            e.DataRow("抵达港") = dr("抵达港")
            e.DataRow("重量") = dr("重量")
            e.DataRow("品名") = dr("品名")
            e.DataRow("月份") = dr("月份")
        End If
    End If
End If





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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/7 11:22:00 [只看该作者]

If e.NewValue Is Nothing Then

 

改成

 

If e.NewValue = Nothing Then

 

不行,就做个例子上来测试。


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 12:33:00 [只看该作者]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
做了个例子没问题
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 12:38:00 [只看该作者]

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("客户简称") = Nothing
        e.DataRow("到港日期") = Nothing
        e.DataRow("报关单号码") = Nothing
        e.DataRow("船名航次") = Nothing
        e.DataRow("提单号码") = Nothing
        e.DataRow("运输方式") = Nothing
        e.DataRow("箱量") = Nothing
        e.DataRow("贸易方式") = Nothing
        e.DataRow("件数") = Nothing
        e.DataRow("起运港") = Nothing
        e.DataRow("抵达港") = Nothing
        e.DataRow("重量") = Nothing
        e.DataRow("品名") = Nothing
        e.DataRow("月份") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("客户简称") = dr("客户简称")
            e.DataRow("到港日期") = dr("到港日期")
            e.DataRow("报关单号码") = dr("报关单号码")
            e.DataRow("船名航次") = dr("船名航次")
            e.DataRow("提单号码") = dr("提单号码")
            e.DataRow("运输方式") = dr("运输方式")
            e.DataRow("箱量") = dr("箱量")
            e.DataRow("贸易方式") = dr("贸易方式")
            e.DataRow("件数") = dr("件数")
            e.DataRow("起运港") = dr("起运港")
            e.DataRow("抵达港") = dr("抵达港")
            e.DataRow("重量") = dr("重量")
            e.DataRow("品名") = dr("品名")
            e.DataRow("月份") = dr("月份")
        End If
    End If
End If

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("客户简称") = Nothing
        e.DataRow("到港日期") = Nothing
        e.DataRow("报关单号码") = Nothing
        e.DataRow("船名航次") = Nothing
        e.DataRow("提单号码") = Nothing
        e.DataRow("运输方式") = Nothing
        e.DataRow("箱量") = Nothing
        e.DataRow("贸易方式") = Nothing
        e.DataRow("件数") = Nothing
        e.DataRow("起运港") = Nothing
        e.DataRow("抵达港") = Nothing
        e.DataRow("重量") = Nothing
        e.DataRow("品名") = Nothing
        e.DataRow("月份") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务登记").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("客户简称") = dr("客户简称")
            e.DataRow("到港日期") = dr("到港日期")
            e.DataRow("报关单号码") = dr("报关单号码")
            e.DataRow("船名航次") = dr("船名航次")
            e.DataRow("提单号码") = dr("提单号码")
            e.DataRow("运输方式") = dr("运输方式")
            e.DataRow("箱量") = dr("箱量")
            e.DataRow("贸易方式") = dr("贸易方式")
            e.DataRow("件数") = dr("件数")
            e.DataRow("起运港") = dr("起运港")
            e.DataRow("抵达港") = dr("抵达港")
            e.DataRow("重量") = dr("重量")
            e.DataRow("品名") = dr("品名")
            e.DataRow("月份") = dr("月份")
        End If
    End If
End If


If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("制单费") = Nothing
        e.DataRow("垫付税金") = Nothing
        e.DataRow("商检费") = Nothing
        e.DataRow("商检费air") = Nothing
        e.DataRow("销毁费") = Nothing
        e.DataRow("换包装") = Nothing
        e.DataRow("换单费") = Nothing
        e.DataRow("仓储费") = Nothing
        e.DataRow("疏港费") = Nothing
        e.DataRow("超期费") = Nothing
        e.DataRow("污箱费") = Nothing
        e.DataRow("装卸费") = Nothing
        e.DataRow("查验费") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("成本明细").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("制单费") = dr("制单费")
            e.DataRow("垫付税金") = dr("垫付税金")
            e.DataRow("商检费") = dr("商检费")
            e.DataRow("商检费air") = dr("商检费air")
            e.DataRow("销毁费") = dr("销毁费")
            e.DataRow("换包装") = dr("换包装")
            e.DataRow("换单费") = dr("换单费")
            e.DataRow("仓储费") = dr("仓储费")
            e.DataRow("疏港费") = dr("疏港费")
            e.DataRow("超期费") = dr("超期费")
            e.DataRow("污箱费") = dr("污箱费")
            e.DataRow("装卸费") = dr("装卸费")
            e.DataRow("查验费") = dr("查验费")
        End If
    End If
End If




If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("海关查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("海关查验") = True
            e.DataRow("海关查验") = 500
        End If
    End If
End If

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商检查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("商检查验") = True
            e.DataRow("商检查验") = 500
        End If
    End If
End If



上面是这个表的datacolchanged里面的左右代码,请老师看看。

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 12:38:00 [只看该作者]

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("加急") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("加急") = True
            e.DataRow("加急") = 200
        End If
    End If
End If


If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("海关查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务登记").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("海关查验") = True
            e.DataRow("海关查验") = 500
        End If
    End If
End If

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商检查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务登记").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("商检查验") = True
            e.DataRow("商检查验") = 500
        End If
    End If
End If

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("加急") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("进口业务登记").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("加急") = True
            e.DataRow("加急") = 200
        End If
    End If
End If

还有这些


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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 14:14:00 [只看该作者]




引用表:
If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("海关查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("被引用").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("海关查验") = True
            e.DataRow("海关查验") = 500
        End If
    End If
End If

If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商检查验") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("被引用").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("商检查验") = True
            e.DataRow("商检查验") = 500
        End If
    End If
End If



If e.DataCol.Name = "fa piao号码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("加急") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("被引用").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr("加急") = True
            e.DataRow("加急") = 200
        End If
    End If
End If

被引用表:


Select Case e.DataCol.Name
    Case "加急"
        Dim Filter As String = "[fa piao号码] = '" & e.DataRow("fa piao号码") & "'"
        Dim drs As List(Of DataRow) = DataTables("引用").Select(Filter)
        For Each dr As DataRow In drs
            If e.NewValue = True
                dr(e.DataCol.Name) = 200
            Else
                dr(e.DataCol.Name) = e.NewValue
            End If
        Next
End Select

Select Case e.DataCol.Name
    Case "海关查验"
        Dim Filter As String = "[fa piao号码] = '" & e.DataRow("fa piao号码") & "'"
        Dim drs As List(Of DataRow) = DataTables("引用").Select(Filter)
        For Each dr As DataRow In drs
            If e.NewValue = True
                dr(e.DataCol.Name) = 500
            Else
                dr(e.DataCol.Name) = e.NewValue
            End If
        Next
End Select

Select Case e.DataCol.Name
    Case "商检查验"
        Dim Filter As String = "[fa piao号码] = '" & e.DataRow("fa piao号码") & "'"
        Dim drs As List(Of DataRow) = DataTables("引用").Select(Filter)
        For Each dr As DataRow In drs
            If e.NewValue = True
                dr(e.DataCol.Name) = 500
            Else
                dr(e.DataCol.Name) = e.NewValue
            End If
        Next
End Select
[此贴子已经被作者于2016/1/7 14:14:38编辑过]

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 14:14:00 [只看该作者]

调试下来是这些代码有问题
请老师看一下


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/7 14:30:00 [只看该作者]

加判断

 

        Dim dr As DataRow

        dr = DataTables("进口业务进度表").Find("[fa piao号码] = '" & e.NewValue & "'")
        If dr IsNot Nothing AndAlso dr("海关查验") = True
            e.DataRow("海关查验") = 500
        End If

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


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/1/7 14:31:00 [只看该作者]

调试好了,问题解决了


 回到顶部