以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 数量分配  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140539)

--  作者:sanny
--  发布时间:2019/9/7 20:29:00
--  [求助] 数量分配

你好,老师,可不可以帮忙完善一这个功能。要求结果如图红色圈出的。

 

把表B中第一列与表A第一列相同的名称的数量分配到表A的第三列中,分配的数量不能大于第二列的数量,如果表B中的数量不能满足,就显示缺多少,每二次这个代码再出现就累计起来。谢谢。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数量分配.table


--  作者:WELOVEFOX
--  发布时间:2019/9/8 8:59:00
--  
有点PMC成品出库数量满不满足的味道,以前做过,但不是这个思路,忘了,帮顶吧。
--  作者:sanny
--  发布时间:2019/9/8 22:52:00
--  

附件中有类似的代码的,但不知道怎么修改了。


--  作者:有点蓝
--  发布时间:2019/9/8 23:12:00
--  
datacolchanged事件

If e.DataCol.Name = "第二列"
    Dim sum As Integer = e.DataTable.Compute("sum(第二列)","[_Identify] < " & e.DataRow("_Identify") & " and 第一列 = \'" & e.DataRow("第一列") & "\'")
    Dim dr As DataRow = DataTables("表B").Find("第一列 = \'" & e.DataRow("第一列") & "\'")
    If dr IsNot Nothing Then
        Dim cnt As Integer = dr("第二列") - sum - e.NewValue
        If cnt > 0 Then
            e.DataRow("第三列") = e.NewValue
        Else
            e.DataRow("第三列") = cnt
        End If
    End If
End If

--  作者:sanny
--  发布时间:2019/9/9 22:12:00
--  
你好,可以用按钮代码实现吗?
--  作者:有点蓝
--  发布时间:2019/9/9 22:36:00
--  
看懂逻辑,自行改