以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  我今天对了一天了,哪位能告诉我,代码哪里错了吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43621)

--  作者:ap9709130
--  发布时间:2013/12/11 16:56:00
--  我今天对了一天了,哪位能告诉我,代码哪里错了吗?

请看以下代码:

Dim nma() As String = {"产品成本价","订单编号","供应商名称","产品名称","产品数量","产品票面价","产品批号","仓库名称","入出库类型"} \'A表数据来源列
Dim  nmb()  As  String = {"产品入仓成本价","订单编号","供应商名称","产品名称","产品数量","产品入仓票面价","产品批号","仓库名称","入出库存类型"} \'B表数据接收列
Dim tr As DataRow
With DataTables("库存明细表")
     tr = .Find("订单编号 = \'"& tables("订单明细表").Current("订单编号")&"\'")  \'找出最后一次订购PD01产品的记录
    End With
If tr("订单编号")="" Then

For Each r As Row In Tables("订单主表.订单明细表").Rows
    Dim dr As DataRow = DataTables("库存明细表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = r(nma(i))
    Next
Next
End If


--  作者:Bin
--  发布时间:2013/12/11 16:58:00
--  
提示什么错误?
--  作者:狐狸爸爸
--  发布时间:2013/12/11 17:02:00
--  

代码看不出问题,至少要说一下错误提示啊,当然有个小例子就更好了。


--  作者:ap9709130
--  发布时间:2013/12/11 17:13:00
--  
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/12/11 17:14:00
--  
.
图片点击可在新窗口打开查看此主题相关图片如下:上传图片请参考这里.gif
图片点击可在新窗口打开查看

--  作者:新福星
--  发布时间:2013/12/11 17:19:00
--  
 
     tr =  DataTables("库存明细表") .Find("订单编号 = \'"& tables("订单明细表").Current("订单编号")&"\'")  \'找出最后一次订购PD01产品的记录
   if tr isnot nothing then
If tr("订单编号")="" Then
....
end if
end if

这样看看

--  作者:ap9709130
--  发布时间:2013/12/11 17:26:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:0j~)y%$als6~3kem~tddhks.jpg
图片点击可在新窗口打开查看

--  作者:jspta
--  发布时间:2013/12/11 17:38:00
--  

请看六楼

错误原因是,当你没有找到tr这一行的时候,对象就是空,就导致错误了


--  作者:狐狸爸爸
--  发布时间:2013/12/11 17:42:00
--  

楼主您看看:

 

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

 

要加上判断,因为不一定总是有符合条件的行:

 

Dim nma() As String = {"产品成本价","订单编号","供应商名称","产品名称","产品数量","产品票面价","产品批号","仓库名称","入出库类型"} \'A表数据来源列
Dim  nmb()  As  String = {"产品入仓成本价","订单编号","供应商名称","产品名称","产品数量","产品入仓票面价","产品批号","仓库名称","入出库存类型"} \'B表数据接收列
Dim tr As DataRow
With DataTables("库存明细表")
    tr = .Find("订单编号 = \'"& tables("订单明细表").Current("订单编号")&"\'")  \'找出最后一次订购PD01产品的记录
End With
If tr IsNot Nothing Then
    If tr("订单编号")="" Then
        For Each r As Row In Tables("订单主表.订单明细表").Rows
            Dim dr As DataRow = DataTables("库存明细表").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = r(nma(i))
            Next
        Next
    End If
End If

 

另外建议卡看这个

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

 

这样遇到问题,可以快速找出出错的代码

 

[此贴子已经被作者于2013-12-11 17:43:39编辑过]

--  作者:ap9709130
--  发布时间:2013/12/12 17:41:00
--  
多谢各位了。学到不少!