找回密码
 立即注册

QQ登录

只需一步,快速开始

successit 悬赏达人认证
银牌会员   /  发表于:2020-5-28 16:38  /   查看:13828  /  回复:27
本帖最后由 successit 于 2020-8-14 15:29 编辑

年前要过高级,需要准备一次在线分享课,一直不知道分享点啥好,再加上比较忙,所以就一直拖着没准备。
最近空了点就从在手项目中摘了个库存更新的功能下来,想想还是这个比较经典,适用面也最广,所以就单独做了个DEMO来给大家分享下。

库存核算的方式和方法很多,就活字格来说,我所知道的就有以下几种:
1、早期的在页面中计算,然后更新到库存表中;
2、mucai大神、荆州大神的库存核算案例;
3、最近比较火的服务端命令实现库存更新;
4、其他大神未分享的方式方法
各种方案都可以实现,也都有各自的优缺点,没有好与不好,只有适不适合自己,能不能实现自己的需求而已

今天我分享这种的库存更新方案,也是基于项目需求来定的,也许不适合每个人,但希望能给大家带来点思路,集思广益,各自都有提高。

基础环境:活字格6.0+MSSQL2016
主要实现功能:SQL视图计算即时库存、存储过程核算期间发生、服务端命令实现月度结存及反结存
PS:刚开始结存与反结存是在页面中常规做法弄的,昨天晚上翻看了胡老板的服务端命令的讲座(就是那个翻车频次比较高的那个),突然发现这玩意可以省去很多页面中数据的倒来倒去的,很方面,所以今天就改了,直接上服务端命令搞,结果是确实很便利,页面贼清爽。。。

库存核算,在很多企业里其实不止是数量,还有金额,在这个DEMO中,根据项目要求,把即时库存里分了期初、本期入、本期出、本期结等数和额,然后再利用加权平均实时得到当前物料的库存单价,调入到每一次的出入库单据中。然后每个月月初做一次结存,把上月的所有发生进行结转成期末,并作为当前月的期初。这样在利用视图计算即时库存时,能够大大减少计算量,从而提高数据读取效率。相当于每次都计算当月发生的数据,之前的所有发生被标记为"已结转",同时这些单据将不允许再次修改或删除。如果要修改,那就执行反结转,这样会取消结转状态,以达到可修改或删除的目的。

另一个就是,在页面中添加了库存的实时校验,不是保存时校验。对于修改时,原表数据的比对问题,也做了考虑,主要是用了很多表格数据传递插件,且保存时再重新提取一次即时库存,以避免时间差上的库存更新而导致负库出现。当然,这些验证都是基于项目,不允许负库的要求来设定的,如果你允许负库,那就放开了吧,跟操作者斗智斗勇,有时真的很伤脑筋,因为你根本就不知道他可能会干出什么事来。。。

好了,废话说完,直接上图:

0.png
3.png
4.png
5.png
1.png



DEMOBak.zip (142.65 KB, 下载次数: 1166)

评分

参与人数 1金币 +2000 收起 理由
Simon.hu + 2000 很给力!

查看全部评分

27 个回复

倒序浏览
successit悬赏达人认证
银牌会员   /  发表于:2020-5-28 16:38:36
沙发
本帖最后由 successit 于 2020-8-14 15:29 编辑

沙发



回复 使用道具 举报
oaerp
中级会员   /  发表于:2020-5-28 16:50:33
板凳
感谢分享,向高手学习
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-5-28 19:44:59
地板
牛皮~
回复 使用道具 举报
caikun
中级会员   /  发表于:2020-5-29 20:36:34
5#
厉害,学习!!
回复 使用道具 举报
qq8009活字格认证
银牌会员   /  发表于:2020-6-4 10:33:57
6#
支持一个!!
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-6-4 10:57:58
7#
回复 使用道具 举报
tzeggtang
中级会员   /  发表于:2020-6-4 13:12:54
8#
感谢分享!
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-6-4 17:38:47
9#
回复 使用道具 举报
ggwww1
中级会员   /  发表于:2020-6-9 20:11:07
10#
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部