以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48251) |
-- 作者:shiliang -- 发布时间:2014/3/26 8:38:00 -- 代码问题 请教高手: 两个表:材料入库表,库存材料表,材料入库表的数据复制到材料库存表,以入库单号作为限制条件,下面的代码有问题 ,不执行复制 请教:我哪里写错了,谢谢 \'复制数据到库存表 If e.DataCol.Name = "入库单号" Then Dim dh As DataRow dh = DataTables("库存材料表").Find("[入库单号] = \'" & e.NewValue & "\'") If dh IsNot Nothing Then Return End If If dh Is Nothing Then If e.DataCol.Name = "审核" AndAlso e.DataRow("审核") = True Then Dim nma() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} \'A表数据来源列 Dim nmb() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} \'B表数据接收列 Dim dr As DataRow = DataTables("库存材料表").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next End If End If |
-- 作者:Bin -- 发布时间:2014/3/26 8:41:00 -- 说明有找到对应的行吧,上个例子看看. 或者自己利用这个方法调试一下看看.http://www.foxtable.com/help/topics/1485.htm
|
-- 作者:shiliang -- 发布时间:2014/3/26 8:45:00 -- 测试了,return 跳出,不执行下面代码 |
-- 作者:Bin -- 发布时间:2014/3/26 8:47:00 -- 那不就印证了我2楼的回复么. 怎么只看后半句不看前半句? |
-- 作者:shiliang -- 发布时间:2014/3/26 9:02:00 -- 不好意思,我还是没搞明白 |
-- 作者:Bin -- 发布时间:2014/3/26 9:06:00 -- 说明有找到对应的行, 这个很难理解吗? 你自己写的IF判断 If dh IsNot Nothing Then 如果有找到行就 return 这.... 不好意思,我没有办法想得出应该怎样解释才能让你明白了.
|
-- 作者:Bin -- 发布时间:2014/3/26 9:07:00 -- 代码难道不是你写的吗? 如果是这样的话可以理解你为什么不明白. 原因是库存表有相同入库单号的行,所以执行return了.
|
-- 作者:lsy -- 发布时间:2014/3/26 9:08:00 -- If e.DataCol.Name = "入库单号" Then Dim dh As DataRow dh = DataTables("库存材料表").Find("[入库单号] = \'" & e.NewValue & "\'") If dh IsNot Nothing Then Return End If End If If e.DataCol.Name = "审核" AndAlso e.DataRow("审核") = True Then Dim nma() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} \'A表数据来源列 Dim nmb() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} \'B表数据接收列 Dim dr As DataRow = DataTables("库存材料表").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next End If |
-- 作者:shiliang -- 发布时间:2014/3/26 9:08:00 -- 明白了,谢谢 |
-- 作者:shiliang -- 发布时间:2014/3/26 9:11:00 -- 再请教一下,我的库存表是空的 |