以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码修改求助,包括思路 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78642) |
-- 作者:huhu -- 发布时间:2015/12/14 11:15:00 -- [求助]代码修改求助,包括思路 在库位数量统计表有列:物料编码,库位编码,预配货数量,确定。其中确定是逻辑列。 希望 1.确定打勾后在库位明细表查找"物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位编码 = \'" & e.DataRow("库位编码") & "\' And 提示 = \'入库完成\'"且还满足SN大小排序。 还需要满足预配货数量是几就在配货筛选明细表只增加几行数据。----------这个代码改怎么写? 下面的代码是满足"物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位编码 = \'" & e.DataRow("库位编码") & "\' And 提示 = \'入库完成\'"且还满足SN大小排序的行都增加到了配货筛选明细表了。没有按照预配货数量来增加行数。 2.确定去掉勾后,希望也是仅把增加的去掉,而不是一下子把所有满足"物料编码 = \'" & e.DataRow("物料编码") & "\'"的行都去掉。 If e.DataCol.name = "确定" Then If e.DataRow("确定") = True Then Dim drs As List(of DataRow) drs = DataTables("库存明细表").Select ("物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位编码 = \'" & e.DataRow("库位编码") & "\' And 提示 = \'入库完成\'","SN") If drs.Count > 0 Then For Each dr As DataRow In drs Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew() ndr("SN") = dr("SN") ndr("物料编码") = dr("物料编码") ndr("库位号") = dr("库位号") ndr("库位编码") = dr("库位编码") ndr("数量") = dr("数量") Next End If Else DataTables("配货筛选明细表").DeleteFor("物料编码 = \'" & e.DataRow("物料编码") & "\'") End If End If
|
-- 作者:大红袍 -- 发布时间:2015/12/14 11:31:00 -- If e.DataCol.name = "确定" Then [此贴子已经被作者于2015/12/14 11:31:44编辑过]
|
-- 作者:huhu -- 发布时间:2015/12/14 11:46:00 -- If drs.Count > 0 Then For Each dr As DataRow In drs For i As Integer = 1 To e.DataRow("预配货数量") Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew() ndr("SN") = dr("SN") ndr("物料编码") = dr("物料编码") ndr("库位号") = dr("库位号") ndr("库位编码") = dr("库位编码") ndr("数量") = dr("数量") Next Next End If 这不应是重复增加了吗?
|
-- 作者:大红袍 -- 发布时间:2015/12/14 11:48:00 -- 你说要增加多行啊 |
-- 作者:huhu -- 发布时间:2015/12/14 11:52:00 -- |
-- 作者:huhu -- 发布时间:2015/12/14 11:52:00 -- |
-- 作者:huhu -- 发布时间:2015/12/14 11:54:00 -- 本来应该增加2行,确增加了4行。 If drs.Count > 0 Then For Each dr As DataRow In drs-------外面再次循环drs.count次 For i As Integer = 1 To e.DataRow("预配货数量") ---------内部循环e.DataRow("预配货数量")次。 Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew() ndr("SN") = dr("SN") ndr("物料编码") = dr("物料编码") ndr("库位号") = dr("库位号") ndr("库位编码") = dr("库位编码") ndr("数量") = dr("数量") Next Next End If |
-- 作者:大红袍 -- 发布时间:2015/12/14 11:56:00 -- If e.DataCol.name = "确定" Then If e.DataRow("确定") = True Then Dim dr As DataRow dr = DataTables("库存明细表").find ("物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位编码 = \'" & e.DataRow("库位编码") & "\' And 提示 = \'入库完成\'","SN") If dr IsNot Nothing Then For i As Integer = 1 To e.DataRow("预配货数量") Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew() ndr("SN") = dr("SN") ndr("物料编码") = dr("物料编码") ndr("库位号") = dr("库位号") ndr("库位编码") = dr("库位编码") ndr("数量") = dr("数量") Next End If Else Dim drs As List(Of DataRow) = DataTables("配货筛选明细表").Select("物料编码 = \'" & e.DataRow("物料编码") & "\'") For i As Integer = drs.count - 1 To 0 Step -1 If drs(i).RowState = DataRowState.Added Then drs(i).delete End If Next End If End If |
-- 作者:huhu -- 发布时间:2015/12/14 12:05:00 -- 对于删除也有问题。 [此贴子已经被作者于2015/12/14 12:08:56编辑过]
|
-- 作者:huhu -- 发布时间:2015/12/14 12:08:00 -- 然后去掉其中一个狗,配货明细表把数据都清掉了,而不是只清除去掉勾的哪一行增加的数据。 [此贴子已经被作者于2015/12/14 12:10:02编辑过]
|