找回密码
 立即注册

QQ登录

只需一步,快速开始

VVANVI 悬赏达人认证
论坛元老   /  发表于:2019-5-20 22:19  /   查看:5884  /  回复:6
活字格用利用数据库触发器更新库存实例
最近活字格群里经常有同学问,库存用活字格怎么算:官方给出的案例是在前台表单上之际算出来后更新数据库,比较复杂。要能解决实际问题就是好办法。
除此之位还有其他的方法,比如视图,触发器,视图官方有视频讲解,这里就不多做讲述了。
用视图聚合由于有人担心每次都有计算所有数据,怕数据量大了服务器吃不消,采用触发器没有这种顾虑,所以做个触发器的案例
由于内置sqllite 不知道设计器用的sqlite 文件在哪里,就用的是sqlserver的外联数据库方便写触发器
好了开始
步骤1   建表:
1  物料表   字段  物料名称  库存数量
2  出库表   字段 id ,物料名臣,出库数量
只做演示之用,做的比较简单,入库等其他业务可以以此类推
如图
image.png351883544.png


                              
顺便把列表页面做了是不是soeasy
步骤2 写触发器
触发器分三种 ,触发方式分两种,这个百度上有资料大家可以自己百度
如图
image.png419468688.png

我们在 出库表上做三个触发器,如上图


分别是 插入,修改,删除  sql代码分别为
插入记录触发器代码:
DECLARE@name nvarchar(100),@num decimal (25,3)
select@name = 物料名称,@num = 出库数量  from inserted
if @namenot in (SELECT a.物料名称 from 物料表 a )
INSERTinto 物料表 (物料名称,库存数量) VALUES ( @name,-@num)
else
update 物料表 set 物料表.库存数量 =物料表.库存数量 - isnull(inserted.出库数量,0) from 物料表
innerjoin inserted on 物料表.物料名称 = inserted.物料名称
where 物料表.物料名称 = inserted.物料名称
删除记录触发器代码
update 物料表 set 物料表.库存数量 = 物料表.库存数量+deleted.出库数量 from 物料表
innerjoin deleted on 物料表.物料名称=deleted.物料名称
where 物料表.物料名称=deleted.物料名称
更新记录触发器代码
update 物料表 set [物料表].库存数量 = [物料表].库存数量 +deleted.出库数量-inserted.出库数量 from 物料表
innerjoin inserted on 物料表.物料名称 = inserted.物料名称
innerjoin deleted on 物料表.物料名称 = deleted.物料名称
where 物料表.物料名称=inserted.物料名称 and 物料表.物料名称 = deleted.物料名称
已经OK,每次增加出库库存都会自己更新,是不是很简单
image.png181062621.png

image.png50756529.png



附上 工程文件请笑纳,望群里高手勿喷,经验与大家分享


image.png325054930.png

触发器实现库存更新.fgcc

532.36 KB, 下载次数: 449

评分

参与人数 1金币 +666 收起 理由
Simon.hu + 666 赞一个!

查看全部评分

6 个回复

倒序浏览
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-5-21 10:22:21
沙发
谢谢分享!
回复 使用道具 举报
yxq
中级会员   /  发表于:2020-2-23 13:13:13
板凳
请教楼主一个问题,在修改时如果改变物料名称该咋办?目前的工程文档在改变物料名称时库存没有更新!谢谢!
回复 使用道具 举报
宋小猫悬赏达人认证
中级会员   /  发表于:2020-2-25 18:02:09
地板
又是代码 我狠代码
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-2-27 17:38:17
5#
没事,等我6.0服务端命令解决一些问题

so easy~
回复 使用道具 举报
yikai
金牌服务用户   /  发表于:2020-3-15 20:46:07
6#
mark
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-3-16 18:13:18
7#
谢谢各位老板的关注~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部