以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表单保存前跨表更新数据的代码如何简化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63705)

--  作者:HappyFt
--  发布时间:2015/1/26 22:01:00
--  表单保存前跨表更新数据的代码如何简化

请教各位老师,下面是一张生产入库单保存前的事件代码,自己觉得太复杂了,不知道如何简化。

保存前主要是要跨表更新数据,均是通过事务集中在函数中处理:主要是实现以下几点功能:

本表单有三个流程

流程1:生产单位开单录入期初入库数量;  新增录入保存时查找库存表中是否有此编码,没有新增进去,同时验证累计入库数量是事大于需求数量,大于了就提醒,禁止保存

流程2:品管进行品质判定; 判定后保存时根据不同的判定类别更新库存表中对应的库存数量,不良数量,报废数量。同时非合格的自动生成返工处理单。

流程3:仓库再次确认实收数量。第一次填写实收数量保存时用仓库的实收数量与期初录入的入库数量的差值更新对应的库存数量,这个比较复杂点,因为保存过后可能再修改此数量时就只能用实收数量的变动数量来更新库存数量了。

 

因为同一张中存在三个变量即期初录入数量,品质判定,实收数量。尤其品质判定有五种结果,必须要根据不同的结果来更新库存中不同的数量。又是按流程传递分开不同时间操作的。同时又要考虑后续可能还会修改当中的数据,不管哪个地方变动保存时都要跨表更新对应的数据保证准确无误。所以感觉很复杂。自己都弄晕了。不知道有没有更简单的方式?

 

上传总出错 ,只要将代码保存在文本文件中了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产入库单保存前事件代码.txt

 

太杂了,不知道是不是我的思路有问题。给个思路也行。谢谢了!


 


--  作者:有点甜
--  发布时间:2015/1/26 22:11:00
--  

 呃,为什么要做库存表?为什么不直接用入库表出库表就是库存表。

 

 需要的数据,直接查录入的内容


--  作者:HappyFt
--  发布时间:2015/1/26 22:21:00
--  

库存表主要是用于记录每个产品的实时库存数量,即各种出入库单据保存时都将当前单据中的变动数量去加或减掉库存表中的实时数量成为新的实时数量,删除单据时则减去删除行的数量得到新的实时数量。

 

没有库存表的话要查询每种产品的库存时必须从所有出入库单据中compute统计才能得到,这样数据多时速度太慢。


--  作者:有点甜
--  发布时间:2015/1/26 22:29:00
--  

 Compute数据和你现在的Find数据,是一样效果的。

 

 况且,你可以每天生成一张期初库存表,就不需要查找全部数据了。