本帖最后由 Simon.hu 于 2020-2-21 08:55 编辑
服务端命令一(基础功能篇)
请大家抓稳扶好,本帖即将再放一枚大招!
我们就拿很多格友都有研究过的库存管理系统模板来做讲解~
对于库存管理系统模板,之前有小伙伴提出来,我们目前库存的计算方式会有些不严谨,因为它是在页面加载时将历史库存放到了页面上,然后进行一系列计算,那么如果在这个期间刚好有其他人更新了库存数据,那么就会影响到最终结果的计算。所以之前我们会更建议大家使用触发器或者存储过程来实现库存的扣减。
不过,在6.0版本中,我们为各位提供了服务器端命令,有了它,就无需再将计算逻辑放在页面上,一切皆可在服务器端执行。这样就可以更好地完成动态数据获取、计算的逻辑,不会再出现上面说的库存结果出现误差的情况啦~
说这些大家可能没怎么理解,别急!上图!
I. 之前的库存计算是这么做的(这里只做简单介绍,有兴趣深入了解的小伙伴可以戳这里看视频讲解):
页面右侧会隐藏有一堆辅助表格,然后在页面加载时命令中,会先将出入库详情表中的原始数量循环赋值到辅助表格中。然后当用户对数量做了修改后,将新的数量赋值到新变更处,最后根据出入库情况计算库存变更,最后更新数据表。
这样做,的确会出现我在最开始所描述的意外情况。那么我们再来看看使用服务端命令后,这个库存计算是如何实现的。
II. 服务端命令处理库存计算:
首先,页面右侧那一大堆隐藏的辅助表格消失了,页面加载命令也木有啦~是不是清爽很多~
只需要在提交按钮中,根据当前是“新建”还是“更新”执行对应的服务端命令就可以了~
那么这些服务端命令是在哪里创建的呢?点击菜单上的“创建”--“服务端命令”就可以看到啦~可以看到在截图中我已经创建了很多个服务端命令了。
这里我们拿添加出入库表这个命令来具体说说实现步骤,更新的逻辑会复杂一些,不过服务端命令的操作方式都是相同的,大家有兴趣可以研究研究~
1.我们新建一个服务端命令,然后给他起名,也可以设置访问权限
2.定义参数,这里有两种参数类型,“基本类型”,比如字符串、日期、整数等;“数组类型”,比如表格、数据表等。
像这里我们需要用的的出入库子表这个参数,就属于数组类型的。
3.设置完参数后,就要使用这些参数,来做新建添加数据时的出入库逻辑啦~
1)点击编辑命令,这里我们选择事务命令,将下面对出入库表以及对出入库详情表的操作放在同一个事务中,保证数据的一致性。
2)先给出入库表中添加一条数据,这里要注意下,值这里不再是选择页面中的单元格,而是选择一个在上一步定义好的参数,比如单号字段,这里就选择单号参数,其他几个字段是一样的。
同时,我们还要给当前添加的这条新纪录也起个名字,作为一个参数,为的是后面再添加对应出入库详情的时候,可以对应到当前这一条出入库主表记录。
3)根据出库(工程中指定的值=5)还是入库(指定的值=6)添加出入库详情表,如出库时,循环“出入库子表”这个数组参数,给当前循环的索引和值起个名儿,方便后面使用。
4)添加出入库表的数据
因为要把主子表关系挂上,这里就用到了前面添加主表数据时,创建的那个新的参数“出入库主表记录”
5)最后又调用了一个库存表更逻辑的服务端命令,这个服务端命令只做了一件事情,就是从数据库中取得对应物品ID 的当前数量,然后做计算,将新值更新到数据库中。这里的设置参数命令,作用时从数据库中取对应物品ID的物品名称和当前库存作为新的参数参与后面的计算中,这一步就是解决一开篇说的前端取数计算弊端的核心的一步。
4.后面入库逻辑是一样的。到这一步,服务端命令就添加好了。最后只需要在页面中调用这个服务端命令时,指定好第2步中对应参数的值就OK啦~
5.完成~
看我上面写这么一大堆,可能有些小伙伴都晕了,别慌!主要是这个库存的场景本身就比较复杂,这里总结一下,服务端命令的使用方式,其实就是一下这么个步骤:
1.新建一个服务端命令,起个名儿;
2.设置参数;
3.编辑其中的命令逻辑,这一步可能会需要通过“设置参数命令”从数据库/公式等处取值作为新的参数,也有可能会调用另一个服务端命令嵌套起来;
4.页面中,直接调用这个服务端命令,设置好每个参数对应的单元格或表格;
5.大功告成!!
啥?你现在脑瓜子嗡嗡嗡的?
那你记住一点:
有了服务端命令,你再也不用给页面隐藏一篇区域然后把表格什么的隐藏进去,然后在页面写一堆的业务逻辑了,使用服务端命令就搞定了;
服务端命令,命令都在服务端执行,又安全性能又好,就是有点难理解.
|