如何同时保存填报表数据到服务器快照数据文件
需求
在流程流转中考虑让用户主动进行数据快照版本的保存,服务器端存储(不考虑数据库存储快照数据),支持可通过版本号和用户名称进行区分。另外,能够对历史快照版本的数据进行查询,查询后的数据可以各种格式导出(excel、pdf 等)。
如,A–>B–>C,三级上报,A 录完 10 条数据后上报给 B,B 可能要删掉或增加几条再上报,为了方便后期核对各节点的实际上报数据,A 和 B 也要把自己上报的数据作为快照保存下来。
分析
一般选报表工具后,开发填报表用于流程流转中替代表单功能,完成业务数据采集任务。像润乾报表这种做的较好的产品都支持填报功能,且填报表数据都是来去无关的。
填报表把数据回写到业务库都是支持的,但要额外把每个节点录入的数据保留一个快照数据存到非库的其他地方,貌似处理起来并不简单。
当然,有人可能会想,大不了 api 也就搞定了(产品如果开放了类似填报监听类的话,可以这么来)。确实,但太麻烦了,每个填报表都搞一个类去处理对应数据的快照存放吗?这个工作量比用工具开发个报表可能都多了,并且一般搞报表开发的,安排的人员技术水平也不那么高(不要误解,主要是用报表工具开发报表,对开发人员的技术能力要求本身不高),可能写个类还不是那么容易。
有没有啥方法可以便捷的解决这个问题呢?比如我们就想在业务数据入库的同时,把数据写到服务器的快照文件内。
这里采用润乾报表介绍下,还是可以方便的解决该问题的。无需自定义类,两三行脚本解决快照数据保存问题。
实现方法
1、 准备测试用例填报表模板
填报表具体做法参考相应教程,这里提前准备了某车站用的对某业务精密数采集的报表。可见附件内“JMS.sht”文件
回填处理如下:
以上,仅完成了业务数据的入库处理。
2、 模板增加“是否保存数据快照”复选框
第 2 行前增加一行,定义如下
A2:普通格,“快照数据”;
B2:数值格,字段名称“ny.kz”,编辑风格“复选框”
3、 脚本增加是否保存快照的判断和实现保存
A4: if ny.kz==1 即勾选了保存快照数据
B5: >file(“JMS-”/string(now(),“yyyyMMddHHmmss”)/“.txt”).export@t(jh) ,把采集到的数据写到服务器文件内,名字是动态生成,JMS 是报表名(可以根据需要换其他),”-”隔开后可以增加上报人的 ID(我们这里没加添加),这里我们加了个当前时间(可以更严谨,保证文件不重名被覆盖)确保文件名唯一不被覆盖。
另外,B5 内的文件路径是跟配置文件有关,相对路径是相对 raqsoftConfig.xml 的![]
4、 提交看结果
页面如下
用户可自主选择是否勾选,在勾选其录入数据提交后
快照数据文件如下
内容
到此,快照数据就解决了,仅仅在脚本加一行代码即可解决。另外,关于快照数据的查询,我们放在后面的文章再来介绍。
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?