以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同一编码,新增多行出库数量异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184709)

--  作者:nuoyan89
--  发布时间:2022/12/24 17:13:00
--  同一编码,新增多行出库数量异常
老师,请帮忙看看,我在零件库领料单这个窗口中新增了编码:02020012 的有两条,在出库数量回车后我的出库数量只在第一行显示,异常如图1,请帮忙看看,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2022/12/24 17:44:00
--  
DataTable.find函数永远都是返回符合条件的第一条数据,而不管数据有多少行。自己思考一下怎么排除已经赋值了的行
--  作者:nuoyan89
--  发布时间:2022/12/24 20:11:00
--  
老师,这个问题已解决,另外一个请帮忙看看,就是我有分别有两行,A行和B行,B行是我点击新增按照后新增的一行,我想B行中的可出数量等于 A行中的可出数量 - 出库数量。如图1,这种可以怎么设置呢?谢谢
新增按钮控件上的代码:
Dim t As Table = Tables("零件库领料单_出库")
Dim cs() As String = {"生产批次", "库位", "单据日期", "单据类型", "成品编码", "成品描述", "操作类型"}
Dim r As Row = t.current
If r Is Nothing Then
    Dim nr As Row = t.addnew
Else
    Dim nr As Row = t.addnew
    For Each c As String In cs
        nr(c) = r(c)
    Next
End If
Dim drs As List(Of DataRow) = DataTables("零件库领料单_出库").Select("", "成品编码")
Dim prev As String = ""
For i As Integer = 0 To drs.count - 1
    Dim cur As String = drs(i)("成品编码")
    If cur = prev Then
        drs(i)("可出数量") = drs(i - 1)("可出数量") - drs(i)("出库数量")
        prev = cur
    End If
Next

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2022/12/24 21:07:26编辑过]

--  作者:有点蓝
--  发布时间:2022/12/25 17:42:00
--  
参考:http://www.foxtable.com/webhelp/topics/2136.htm
--  作者:nuoyan89
--  发布时间:2022/12/25 18:27:00
--  
好的,已解决,谢谢