以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 出库单保存前先检查库存 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100924) |
-- 作者:hopestarxia -- 发布时间:2017/5/21 16:09:00 -- 出库单保存前先检查库存 设计了一个出库单录入窗口,出库单窗口表体主要内容是关联到出库单主表,窗口中Table关联到了出库表明细,主表与明细表用单据ID相关联。 目前在录入窗口关联的Table中关联了选择货品的窗口,双击窗口可以选择得到货品的基本信息,包括当前库存信息到出库单录入窗口中,在填上相应的数量和单价即可。 出库单录入窗口中有一“保存”按钮,现在想实现在点击保存按钮时,先实现库存检测,如果存在明细行出库数量大于库存数量的,即提示库存不足,同时停止运行,不保存单据,需要人为重新调整单据内容,再重新点“保存”按钮,没有不合理的时再实现保存完成。 请问保存按钮处的这个判断怎么写? |
-- 作者:舟舟 -- 发布时间:2017/5/21 19:37:00 -- 这个难度不大吧,逐行判断明细表,与数据库中的库存进行比较,即可啊 |
-- 作者:hopestarxia -- 发布时间:2017/5/21 23:12:00 -- Dim t1 As Table = e.form.Controls("Table1").Table For Each r As Row In t1.Rows If r("quantity") > r("xqjc") Then msgbox("库存不足,请检查") Return End If Next 目前使用的代码,没有效果,请问是哪里错误?
|
-- 作者:liusongboy -- 发布时间:2017/5/22 0:40:00 -- 其实我想说数据库做个约束。库存>0。这样就不在编写代码。而且是实时的。 剩下就一个问题了。库存大于0的会保存吗。库存小于0的由于约束存在必然会出保存不了。 也就是狐表保存数到sql用的是事物提交吗。有一个错误就全部会回滚吗。 通俗点就是出库明细有五条记录有条由于库存小于0受到sql库存必须大于0的约束会保存失败。其他4条有库存的会保存吗。
|
-- 作者:liusongboy -- 发布时间:2017/5/22 0:44:00 -- 还有这样写代码的话单机没问题。多用户的话。如果别人在你载入库存的时候刚好出库了这个产品而且库存=0了。那你也察觉不到了。 |
-- 作者:liusongboy -- 发布时间:2017/5/22 0:47:00 -- 最好的方法是在你保存的时候查询实时的库存看看能不能出库。 还有一个办法就是先出后入的方法。库存可以为0这样也行。因为你库存不可能有多吧。还可以没入库先出库
|
-- 作者:舟舟 -- 发布时间:2017/5/22 6:58:00 -- 保存时候用sql查一下库存,比较即可。 |
-- 作者:有点色 -- 发布时间:2017/5/22 7:47:00 -- 回复3楼,你的表结构是怎样的?库存和数量都有值了吗?只要满足条件就会弹出提示的。
请做个实例说明。 |
-- 作者:hopestarxia -- 发布时间:2017/5/22 8:47:00 -- 1 不是,是在点击保存时,如果5条记录发现有一条或一条以上的记录库存不足记录,则停止运行都不保存. 需要录单的操作人员将库存不足的记录修改出库数量至合理数值,或是删除该行后再重新点保存按钮. |
-- 作者:hopestarxia -- 发布时间:2017/5/22 8:49:00 -- 谢谢老师,正在学习当中,这个还没考虑到.我先以单机达到功能. |