以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]错误求解  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=94340)

--  作者:2900819580
--  发布时间:2016/12/21 14:43:00
--  [求助]错误求解
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "物料代码"
        Dim vf As String = e.NewValue
        Dim dr2 As DataRow = DataTables("即时库存").Find("物料代码 = \'" & vf & "\'")
        Dim dr1 As DataRow = DataTables("物料表").Find("代码 = \'" & vf & "\'")
        MessageBox.Show(DR2("物料代码"))
        MessageBox.Show(DR1("代码"))

        If dr1 IsNot Nothing Then
            dr("物料名称") = dr1("名称")
            dr("物料规格") = dr1("规格型号")
            dr("单位") = dr1("单位")
        End If


        If dr2 IsNot Nothing Then
            dr("库存数量") = dr2("基本计量单位数量")
        End If     
                
End Select

以上这段代码,查不出那里出错了。错误如下。。显示DR1和DR2都能查找到。。。。Messagebox.show 都正常。

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




--  作者:有点色
--  发布时间:2016/12/21 14:57:00
--  

你datacolchanged其它代码有问题,因为你修改其他列值的时候,同样会触发datacolchanged事件

 

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "物料代码"
        Dim vf As String = e.NewValue
        Dim dr2 As DataRow = DataTables("即时库存").Find("物料代码 = \'" & vf & "\'")
        Dim dr1 As DataRow = DataTables("物料表").Find("代码 = \'" & vf & "\'")
        systemready = False
        If dr1 IsNot Nothing Then
            dr("物料名称") = dr1("名称")
            dr("物料规格") = dr1("规格型号")
            dr("单位") = dr1("单位")
        End If
       
        If dr2 IsNot Nothing Then
            dr("库存数量") = dr2("基本计量单位数量")
        End If
        systemready = True
End Select