本帖最后由 yanjun13424 于 2021-12-14 09:31 编辑
举例说明:
库存保留表
ID:001 单据编号:XL001 商品编号:A001 保留数量200 释放数量:80 剩余保留数量:120
ID: 002 单据编号:XL001 商品编号:A001 保留数量300 释放数量:0 剩余保留数量:300
ID: 003 单据编号:XL001 商品编号:A001 保留数量300 释放数量:0 剩余保留数量:300
出库单 保留表单据编号:XL001 商品编号:A001 出库数量:600
我想要的效果是。出库数量600-120=480 那ID: 001的释放数量为:80+120=200 剩余保留数量:0 ID:001
480-300=180 那ID: 002的释放数量为: 0+300=300 剩余保留数量:0 ID:002
180-300=-120 那ID: 003的释放数量为: 0+180=180 剩余保留数量:120 ID:003
就是说用600分配给保留数量,分配为0为止。我的做法是先用循环子表出库数据,再设置条件去查询保留表,单据编号和商品编号是否有数据多行数据。
有的话依次分配释放数量。我的做法是设置参数命令查到“单据编号:XL001 商品编号:A001 ”有3行数据, 然后设置参数命令查多行记录。循环命令自动以保留表ID001开始,数据表操作是释放数量=出库数量-剩余保留数量 设置参数命令得出 未分配数量:480,再向下做了如果查询保留表行数大于0再循环。这种方法做下来后。循环命令第一遍走完后,循环命令会做ID002的时候又自己的以600开始给ID002的减。(因为我第循环一次做了多个向下循环的子命令。但没有办法设置只循环一次。)
|