以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- addnew (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96774) |
-- 作者:huhu -- 发布时间:2017/2/27 19:00:00 -- addnew 就是简单的对库存明细表的行进行循环,看看在可用数量表是否存在相同条件filter的行。如果不存在,那就增加一行,数量和在库数量的值根据库存明细表符合filter的行求和。 现在的情况是每一行都增加了且数量为0. 请帮忙看看下面代码哪了不对?drr.save不应该已经保存了么,sqlfind在查询的时候不已经存在这一行了么,就不应该再增加行了吧。 For Each rr As DataRow In DataTables("库存明细表").DataRows Dim filter As String = "生产订单号码 = \'" & rr("生产订单号码") & "\' and 工单行号 = \'" & rr("工单行号") & "\' and 物料编码 = \'" & rr("物料编码") & "\' and 订单号 = \'" & rr("订单号") & "\' and 订单行号 = \'" & rr("订单行号") & "\' and 库位类别 = \'" & rr("库位类别") & "\'" Dim dr As DataRow = DataTables("可用数量表").SQLFind(filter) If dr Is Nothing Then Dim sum As Integer = DataTables("库存明细表").SQLCompute("Sum(数量)",filter) Dim drr As Row = Tables("可用数量表").AddNew() drr("生产订单号码") = rr("生产订单号码") drr("工单行号") = rr("工单行号") drr("物料编码") = rr("物料编码") drr("物料名称") = rr("物料名称") drr("订单号") = rr("订单号") drr("订单行号") = rr("订单行号") drr("库位类别") = rr("库位类别") drr("两化表编号") = rr("两化表编号") drr("软件版本") = rr("软件版本") drr("两化表编号") = rr("两化表编号") drr("体态") = rr("体态") If rr.IsNull("入库完成时间") Then drr("入库时间") = Date.Now Else drr("入库时间") = rr("入库完成时间") End If drr("数量") = sum drr("在库数量") = sum drr.save End If Next msgbox(0)
|
-- 作者:有点蓝 -- 发布时间:2017/2/27 20:29:00 -- 代码看不出问题,应该是数据的原因。 重复调用同样的代码还会不会增加行?
|