Foxtable(狐表)用户栏目专家坐堂 → 刷新时提示未将对象引用设置到对象的实例


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

主题:刷新时提示未将对象引用设置到对象的实例

美女呀,离线,留言给我吧!
judyhu2008
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:154 积分:1217 威望:0 精华:0 注册:2015/10/29 16:22:00
刷新时提示未将对象引用设置到对象的实例  发帖心情 Post By:2016/3/18 11:23:00 [只看该作者]

我有一个采购到货单列表,当我到货单有一个空行,刷新的时候会提示说
我改了几次代码还是这样,大大帮我看一下吧,谢谢啦
图片点击可在新窗口打开查看

以下是刷新的代码:
------------------------------------------------------
DataTables("采购到货单").LoadFilter = ""
DataTables("采购到货单").Load

以下是我Datacolchanged的代码:
-------------------------------------------------------
Select Case e.DataCol.name
    Case "到货时间"
        Dim dr As DataRow = DataTables("订单明细").Find("订单编号 = '" & e.DataRow("订单编号") & "' AND 存货编码 = '" & e.DataRow("存货编码") & "' AND 规格型号 = '" & e.DataRow("规格型号") & "'")
        If dr IsNot Nothing Then
            dr("到货时间") = e.DataRow("到货时间")
        End If
    Case "入库日期"
        If e.DataRow("入库日期") IsNot Nothing Then
            If e.DataRow("存货编码") IsNot Nothing Then
                e.DataRow("累计入库数量") = DataTables("入库明细").Compute("Sum(数量)","[订单编号] = '" & e.DataRow("订单编号") & "' AND [存货编码]='" & e.DataRow("存货编码") & "' AND [规格型号]='" & e.DataRow("规格型号") & "'")
                Dim dr1 As DataRow = DataTables("订单明细").Find("订单编号 = '" & e.DataRow("订单编号") & "' AND 存货编码 = '" & e.DataRow("存货编码") & "' AND 规格型号 = '" & e.DataRow("规格型号") & "'")
                e.DataRow("未入库数量") = dr1("数量") - e.DataRow("累计入库数量")
            End If
        Else
            MessageBox.Show("你还有未输入的到货单,请核对后再刷新")
            e.cancel=True
        End If
End Select

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/3/18 12:34:00 [只看该作者]

应该:

 

                If dr1 IsNot Nothing Then
                    e.DataRow("未入库数量") = dr1("数量") - e.DataRow("累计入库数量")
                End If

 

另外判断空值的方法不对,正确的方法:

 

http://www.foxtable.com/help/topics/1470.htm

 

 

综合起来,应该:

 

Select Case e.DataCol.name
    Case "到货时间"
        Dim dr As DataRow = DataTables("订单明细").Find("订单编号 = '" & e.DataRow("订单编号") & "' AND 存货编码 = '" & e.DataRow("存货编码") & "' AND 规格型号 = '" & e.DataRow("规格型号") & "'")
        If dr IsNot Nothing Then
            dr("到货时间") = e.DataRow("到货时间")
        End If
    Case "入库日期"
        If e.DataRow.Isnull("入库日期")= False Then
            If e.DataRow.Isnull("存货编码") = False Then
                e.DataRow("累计入库数量") = DataTables("入库明细").Compute("Sum(数量)","[订单编号] = '" & e.DataRow("订单编号") & "' AND [存货编码]='" & e.DataRow("存货编码") & "' AND [规格型号]='" & e.DataRow("规格型号") & "'")
                Dim dr1 As DataRow = DataTables("订单明细").Find("订单编号 = '" & e.DataRow("订单编号") & "' AND 存货编码 = '" & e.DataRow("存货编码") & "' AND 规格型号 = '" & e.DataRow("规格型号") & "'")
                If dr1 IsNot Nothing Then
                    e.DataRow("未入库数量") = dr1("数量") - e.DataRow("累计入库数量")
                End If
            End If
        Else
            MessageBox.Show("你还有未输入的到货单,请核对后再刷新")
            e.cancel=True
        End If
End Select

 

 

 

 

 

 

[此贴子已经被作者于2016/3/18 12:34:02编辑过]

 回到顶部
美女呀,离线,留言给我吧!
judyhu2008
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:154 积分:1217 威望:0 精华:0 注册:2015/10/29 16:22:00
  发帖心情 Post By:2016/3/18 16:50:00 [只看该作者]

 谢谢狐爸,现在OK了

 回到顶部