Foxtable(狐表)用户栏目专家坐堂 → 用料按照顺序分配


  共有2769人关注过本帖树形打印复制链接

主题:用料按照顺序分配

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
用料按照顺序分配  发帖心情 Post By:2024/5/26 11:47:00 [显示全部帖子]

老师,我有两个表,一个库存表窗口表如图库存表(表名:用料分配_表A,独立)这个窗口表中的所有列名全部是新增的临时列,一个是配件需求明细如图配件需求明细(这个也是窗口表),我在库存表这个窗口的控件设置了代码,我点击这个控件时,分配条件:把选中的材料,根据优先顺序进行分配,分配过程中,1、优先顺序为1时,如库存表中的可用数量大于配件需求明细中的未发数量,挂标数量为未发数量,如可用数量小于不等于0,挂标数量等于可用数量,2、优先顺序为2时,如可用数量-优先顺序为1里的挂标数量大于优先顺序2中的未发数量,该挂标数量为可用数量-优先顺序为1里的挂标数量,如结果小于不等于0,挂标数量等于该相减的结果;以此类推如附件表格。

图片点击可在新窗口打开查看此主题相关图片如下:配件需求明细.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:库存表.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物资分配表.xlsx



 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/26 11:51:00 [显示全部帖子]

系统中窗口表中的图片

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

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/26 21:53:00 [显示全部帖子]

操作步骤:打开《配件需求明细》窗口,在需要操作的行前面打勾,点击控件”欠料明细“。会打开“欠料需求表”窗口表,点击控件“用料分配”,然后把可用数量按照材料编码、优先顺序在配件《需求明细_明细查询》窗口表中分配给选中的行,数量指定到《需求明细_明细查询》的挂标数量列
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/26 23:27:00 [显示全部帖子]

老师,只处理勾选的那一行!库存表就是配件需求明细窗口中点击控件欠料明细后计算出来的可用数量就是需要做分配的库存,其实这个帖子里就是算库存的http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=192048
[此贴子已经被作者于2024/5/26 23:29:50编辑过]

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 11:32:00 [显示全部帖子]

老师,我把代码改了下,汇总的结果如图2,编码02020687 在途数量:2100,分配到配件需求明细_明细查询窗口表中,这个编码优先顺序5的挂标数量应该为:196,但是实际分配出来的数据确为469了,优先顺序6的挂标数量应该为:0,但是实际分配出来的数据确为384了.请帮忙看看,谢谢
If Forms("配件需求明细").Opened Then
    For Each r As Row In Tables("配件需求明细_明细查询").GetCheckedRows
        Dim dr As DataRow = DataTables("欠料需求表_需求表").Find("材料编码='" & r("材料编码") & "'")
        If dr IsNot Nothing Then
            If r("优先顺序") = "1" Then '优先顺序为1时
                If dr("在途数量") >= r("未发数量") Then
                    r("挂标数量") = r("未发数量") '如库存表中的可用数量大于配件需求明细中的未发数量,挂标数量为未发数量
                ElseIf dr("在途数量") <= 0 Then
                    r("挂标数量") = 0 '如可用数量小于不等于0,挂标数量等于可用数量
                End If
            Else
                Dim dr2 As DataRow = DataTables("配件需求明细_明细查询").find("材料编码='" & r("材料编码") & "' and 优先顺序='" & Val(r("优先顺序") - 1) & "'") '查找上一个优先顺序
                If dr2 IsNot Nothing Then
                    If (dr("在途数量") - dr2("挂标数量")) > 0 And (dr("在途数量") - dr2("挂标数量")) >= r("未发数量") Then '如可用数量-优先顺序为1里的挂标数量大于优先顺序2中的未发数量
                        r("挂标数量") = r("未发数量") '该挂标数量为可用数量-优先顺序为1里的挂标数量
                    ElseIf (dr("在途数量") - dr2("挂标数量")) > 0 And (dr("在途数量") - dr2("挂标数量")) < r("未发数量")  Then '如结果小于不等于0
                        r("挂标数量") = dr("在途数量") - dr2("挂标数量") '挂标数量等于该相减的结果
                    ElseIf (dr("在途数量") - dr2("挂标数量")) <= 0  And  r("未发数量") > 0  Then '如结果小于不等于0
                        r("挂标数量") = 0 '挂标数量等于该相减的结果
                    End If
                End If 
            End If 
        End If 
    Next 
End If

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


 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 13:24:00 [显示全部帖子]

那请老师再帮忙看看,问题描述如8楼,谢谢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 14:13:00 [显示全部帖子]

这个02020687 优先顺序中总共有6条记录(分别为1-6)未发数量合计:2757,这条欠料明细中汇总的在途数量:2100,按照优先顺序先后中1-4的挂标数量可以等于未发数量,但是到第5的时候,在途数量 -1到4的挂标数量汇总后,只剩下196(计算公式:2100-(280-224-630-770) = 196),因此第5条的挂标数量只能是196,第6条挂标数量则为0,因为这2100已被1至5全部分配完成。
[此贴子已经被作者于2024/5/27 14:16:32编辑过]

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 14:30:00 [显示全部帖子]

是的,但是这个优先顺序行数不是固定的,有可能只有1条,或者2条,甚至多的时候会有20来条。这种怎么修改呢?
Dim dr2 As DataRow = DataTables("配件需求明细_明细查询").find("材料编码='" & r("材料编码") & "' and 优先顺序='" & Val(r("优先顺序") - 1) & "'") '查找上一个优先顺序

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 14:51:00 [显示全部帖子]

是整数列,能帮忙改一下吗?

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2024/5/27 20:19:00 [显示全部帖子]

老师,能帮忙看下12楼代码咋 改吗?研究了下,还是没怎么明白

 回到顶部
总数 13 1 2 下一页