本文记录了村长迁移到聚表/慧表后的各种感受,外加各种给力的高端功能玩法。
sp模式
sp全称是spreadsheet,通常聚表/慧表模板默认使用该模式,其最大特点是客户端不再依赖EXCEL,因此带来了诸多好处,例如:
- 妈妈再也不怕天天碰到
EXCEL加载项禁用
导致的ES闪退
啦; - 不怕经常莫名碰到
Automation 错误
; - 不会看到各种
ActiveX控件出错
; - 不用担心装了AutoCAD后,ES无法启动或启动时冒出安装CAD对话框;
- 不用担心因为不小心关掉EXCEL表,或因EXCEL卡死导致整个系统退出;
- 不用担心装了office2016,es安装不识别;
- 不用担心使用win10更新后,冒出各种问题,如ES连续填报保存时崩溃;
- 不会看到
office检测到此文件存在一个问题。要保护您的计算机……
除了完美避开各种office软件本身的坑,sp模式还带来了窗口尺寸可调,多窗口同时打开等灵活功能,怎一个美字了得?
表/字段模式
-
聚表/慧表的数据表可定义为
普通表
,临时表
,映射表
,支持灵活切换。 -
最实用的是字段可以设置为
存
与不存
,这样我们就不用像ES那样费力依靠bug技术制作UD表
,直接一个表搞定,简单定义,轻松维护,快乐玩转3NF
。
触发器/存储过程
-
聚表/慧表原生支持触发器/存储过程,当然,这跟SQL的触发器/存储过程有些区别。
-
与ES相比,聚表/慧表不需要费劲的使用vba来调用存储过程,只要设置一下,写好sql代码即可。
-
使用
存储过程+中间表
这套 重器 ,官方开发了稳定支撑1000万行级的大型企业的仓储系统。
此项暂不赘述,本文后面介绍如何使用
万能提数
来快速实现适合中小企业的系统功能。
APP
聚表/慧表包含一个html5类型的移动端APP,使用vue组件化开发。
APP支持IOS/安卓,同时也支持在微信中使用,可替换素材DIY自己的APP。
万能的提数
以前我们经常讲到,ES提数公式最稳定,而应尽量避免使用回写
公式。
聚表/慧表中的提数公式可以直接写sql,这就赋予了他更多更强的能力。
栗子1:提取最新单价+日期
在ES中,如果我们要提取某个物料的最新采购单价
,一般要用两条提数公式,一条提取最新单价的日期,再一条根据这个日期去匹配提取单价信息。
使用聚表/慧表,我们可以手工修改提数公式的sql,加入not exists子查询
进行筛选
从而实现一步到位
提取最新单价及日期。
栗子2:提取未完成的采购订单数
一般的,采购订单可能会有多次送货,例如:订单共下了10个,第一次送1个,第二次送2个……
那么,用户第一次填报时应该自动显示计划待收10个,第二次显示9个,第三次显示7个……
在ES中,这个功能通常做成视图
,然后再做成列表选择或提数。
使用聚表/慧表,我们可以一步到位提数
实现,手工加入left join
子查询,用订单数-已收数
得到待收数
从而实现第一次填时自动待收10
第二次待收9
栗子3:无级BOM即时展开
这是MRP的核心预算功能,特别是成本预算中,我们要临时组合组件
来预算产品
成本,组件本身又可不断展开为下级组件
,层级数不确定。
在以往我们用ES开发时,只有两种选择:
-
一种是把数据先保存到数据库,然后依靠sql视图的CTE递归展开,这个视图运算量非常大,随着BOM的增加呈几何数量上升,性能差而且预算不
即时
,因为需要先提交保存,再打开查看结果。 -
另一种办法是用vba把本表数据提交到数据库,调用存储过程进行计算,结果存入临时表,再从临时表提数到客户端进行显示。这种办法性能很好,但是维护困难,会有一堆又臭又长的vba以及sql代码要撸。
使用聚表/慧表提数,多快好省的解决了这个问题,同样的,手工编辑sql,将本表明细
传给cte递归的第一个部分,union all
后的第二个部分用现有BOM
表递归展开。
实际效果,第一次选择前置四驱
,自动展开:
第二次选择双电机四驱
,自动展开:
除此以外,提数sql还能写入update或insert,可以像ESAP的数据库API一样任你玩耍哦~
灵活的映射
很多时候我们需要使用映射表来避免使用回写公式,聚表/慧表的映射表比ES更灵活。
例如:财务有一个的【凭证模板】
,通常我们希望一些单据在保存时可以自动生成这个凭证。
为了实现出库单自动凭证,可以在【出库单】建立sheet2,命名为pz,相关字段可以写死,即用=
号链接到sheet1
然后定义两个明细表分别映射到凭证主表
和凭证明细表
,为了能在【凭证】模板也显示,必须建立一个字段映射到Createtime
字段。
这样,当我们保存【出库单】后,就可以看到【凭证】中也有了单据。
比ES更灵活的是,在凭证中删除该凭证后,出库单不会影响,而重存出库单可以再次生成凭证。
神器:报表命令
聚表/慧表提供的报表命令,取代了vba,轻松实现更多更好方案。
例如,报表命令的事件可以调用表间公式,而表间公式可以直接写sql使用本表字段作为变量,这就提供了无限的想象。
举个栗子
通过报表命令+提数
轻松实现ES很难实现的BOM逐行双击展开演示
- 选择一个BOM,系统自动显示一级组件,可继续展开的组件前面会显示
+
号
- 双击
前置四驱
,展开
- 双击
振金
,展开
- 实现方法截图,无需vba,仅仅设置一下即可
随心所欲的回写
JU的回写也能直接写SQL,这看起来可以干一票大的^_^,一些在ES中难以想象的事情。
举个大栗子
通过映射+回写
实现数据快速导入(新建表单)
通常在ES中,我们要批量新建表单就必须用回写中的新建表单公式
,一般的做法是开发一个模板,填数或提数,然后通过保存时-回写新建表单
来创建这些表单,实际上我们是把数据存入A表,然后再新建B表,一份数据保存了两次。
在JU中,我们可以把A模板的明细直接映射到B表,不需要回写新建表单
,数据保存一次即可,速度快N倍啊有木有。
- 村长在从ES迁移
往来单位
到JU时就用了这招,先建立往来单位
模板,此时空空如也。
- 建立导入模板,明细字段一一映射到
往来单位表
,增加两个特殊列,createtime和recordid,设置好自动生成公式。
- 黄色主表字段(rcid)的
100
是当前系统RecordId
的最大编号,从系统表JU_Seed
表直接提数拿到。主表字段(rcid2)的103
这个数是完成导入后要回写到JU_seed表的新最大编号
- duang~!,主角登场,回写修改公式直接写sql来update系统表JU_seed,在ES中这一步困难重重。
- 测试填报的实际效果。
- 保存后,近4000条客户信息就完成了创建,导入表单本身删除无任何影响,超级
移花接木
的既视感!
小结
-
使用聚表/慧表,我们可以告别
UD表
和vba,也能少写很多视图
。 -
本文涉及的部分案例已打包成【六一库(180611)】←点击下载,欢迎下载玩耍。
-
最后,祝童鞋们六一快乐,恭喜聚表/慧表六一版(2.6.1)发布。
本文将不定期解锁更多的好玩的姿势。