脚本模式下的填报表制作

简介: 脚本模式下的填报表制作

填报是报表工具不可或缺的功能之一,润乾报表不仅提供了多源 SQL 填报方式,而且提供了脚本模式填报,以便适应不同的填报数据处理需求。在线教程中对多源 SQL 方式做了详细的配置说明,这里就不再赘述了。(附在线教程地址:http://doc.raqsoft.com.cn/report/input/zzygwgstbb.html
今天小编将带领大家解锁另外一种填报处理方式——脚本模式
以行式填报表实现雇员信息维护为例,我们来看一下脚本模式如何实现数据处理,请紧随小编的步伐:
第一步 新建填报表,编辑填报表内容和样式,如下图所示:
1

报表工具会将连续两行数值格会自动识别为行式填报,所以需要将第三、四行的单元格类型设置为数值格,设置方法如下图所示:
2

第二步 设置数据处理
依次点击“填报”---“数据处理”---“使用向导生成脚本”,会弹出如下图所示的向导配置页面,然后按照下图标示的顺序进行操作就可以自动生成脚本。!
3

其中,对象名称用户可以自行修改,例如修改为 employee,那么自动生成的来源脚本和去向脚本如下图所示:
4

其中,
A1:=connect(“demo”) 表示连接 demo 数据库
B1:>employee=A1.query(SQL) 表示在 demo 库中查询员工表信息,并将结果赋值给 employee 对象
C1:>A1.close() 表示关闭数据库连接
5

其中,
A1:=connect@e(“demo”) 表示连接 demo 数据库,@e 选项表示出错时返回错误信息由代码自行处理,否则将中断
B1:>A1.update@k(新对象: 旧对象, 更新表名称, 更新字段列表; 主键) 表示根据新旧对象的数据差异智能更新表的字段数据(关于 update 函数使用心得参见附录)
C1:=A1.error@m() 表示获取数据库异常信息
D1:>if(C1==null,A1.commit(),A1.rollback()) 表示如果没有异常抛出,则更新入库,否则回滚处理
E1:>A1.close() 表示关闭数据库连接
第三步 配置字段名称
选中 A3 单元格,在右侧属性列表的字段名称中输入“employee. 编号”。
6

对数据采集规则不理解的同学,可以直接对每个数值格设置字段名称,规则是:对象名. 字段名。
这里分享一个【小技巧】,我们可以通过设计器的预览按钮查看填报表的分区识别结果:
7

在制作填报表时,需要保证右侧识别到的对象、字段名称和来源脚本的对象结构是匹配的,这是将数据成功更新入库的必要条件之一。
第四步 其他设置
按照需求设置编辑风格、校验、自动计算、显示格式等。
其中,
校验设置可参考文章: 报表数据填报中的合法性校验 ](http://c.raqsoft.com.cn/article/1544091400841?r=IBelieve)
自动计算配置可参考文章: 报表数据填报中的自动计算 ](http://c.raqsoft.com.cn/article/1544091026876?r=IBelieve)
总结:
至此,一个简单的脚本模式填报表就制作完成了。实现过程也很简单,但是你可能会有疑问:脚本模式到底是个啥(What)?我为什么需要它(Why)?它适合什么样的场景(Where)?

What?脚本模式是基于集算器 (SPL) 语法的填报模式,通过内置函数实现数据获取、数据处理、数据回填等操作。
Why?脚本模式可以让开发人员更加明确需要维护的内容,也可以让开发人员处理填报数据时更加自由,让填报本身更加 open 和 free。
Where?多源填报场景下,多源 SQL 的配置步骤比较多,而脚本模式可以简化此配置;同时,从文件系统中获取数据、多表关联取数、动态取数等情况多源 SQL 是无法支持的,此时需要通过脚本模式实现。讲真,80% 的填报场景需要通过脚本模式制作实现。

附录:
脚本模式的核心函数:update()
一、语法:
db.update(新对象: 旧对象, 更新表名称, 字段: 更新值,…; 主键,…)
有旧对象时,新旧对象的数据先进行对比,将差异数据更新入库,例如,根据主键对比数据后,新增了的主键会进行插入操作;主键相同,其他字段不同时执行修改操作;主键字段减少时,则执行删除操作。
如果只有新对象,那么将直接将新对象的数据按照主键设置更新入库,此时只涉及修改和插入操作,无删除操作。
update 函数详细说明可参考:http://doc.raqsoft.com.cn/esproc/func/dbupdate.html
二、常用选项:
8

举个栗子:
1)根据新旧对象差异数据执行智能更新

demo.update( 对象 1: 对象 1_old,EMPLOYEE,EID,NAME,SURNAME,GENDER,

SALARY:SALARY+1000;EID)
说明:根据主键 EID 对比对象 1 和对象 1_old 的数据差异,并将差异数据智能更新到 demo 库的物理表 EMPLOYEE 中,更新字段为 EID、NAME、SURNAME、GENDER、SALARY,其中 SALARY 字段的更新值为 SALARY+1000
智能更新时,程序会自行判断执行 insert、update 或者 delete 操作。
2)根据新对象数据执行插入更新

demo.update@i( 对象 1,EMPLOYEE,EID,NAME,SURNAME,GENDER,

SALARY:SALARY+1000;EID)
说明:对比主键 EID,将对象 1 的数据插入 demo 库的 EMPLOYEE 表中,插入数据的字段为 EID、NAME、SURNAME、GENDER、SALARY,其中 SALARY 字段的更新值为 SALARY+1000
三、注意事项:
1)必须设置主键字段
2)更新的字段内容需要在新旧对象中都存在
3)自增字段的选项写法是 @1,注意:这里是数字 1 而不是字母 l

目录
相关文章
|
数据库 数据安全/隐私保护
手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏(一)
在实际的项目开发过程中,菜单权限功能可以说是后端管理系统中必不可少的一个环节,根据业务的复杂度,设计的时候可深可浅,但无论怎么变化,设计的思路基本都是围绕着用户、角色、菜单进行相应的扩展。
4775 0
手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏(一)
|
5月前
|
存储 JavaScript 前端开发
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
|
7月前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7月前
|
机器人
Dataphin功能Tips系列(5)-手工表上传及长期维护
有些业务数据是手工excel维护的,这时我们要如何将数据上传至dataphin并进行维护?
Dataphin功能Tips系列(5)-手工表上传及长期维护
|
7月前
|
数据管理
宜搭流程中,数据管理批量发起如何成功导入 年-月-日 时:分格式数据 当前数据管理批量发起,Excel文本中编辑时间格式如2023-12-07 20:00,批量导入生成后显示为20231207 00:00,请问如何让时:分正确显示。
宜搭流程中,数据管理批量发起如何成功导入 年-月-日 时:分格式数据 当前数据管理批量发起,Excel文本中编辑时间格式如2023-12-07 20:00,批量导入生成后显示为20231207 00:00,请问如何让时:分正确显示。
189 2
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
安全 jenkins 测试技术
Jenkins配置测试报告后无法正常显示或显示空白 的解决方法(问题集锦)
Jenkins配置测试报告后无法正常显示或显示空白 的解决方法(问题集锦)
464 0
|
C++
VS平台的基本设置以及相关报错问题解决方法
在刚开始学习编程后,期间总会遇到问题,以前都是记录下来没有整理。现在积少成多,也乘着有空就在这里给整理一下。
166 0
|
前端开发 数据安全/隐私保护
手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏(二)
在实际的项目开发过程中,菜单权限功能可以说是后端管理系统中必不可少的一个环节,根据业务的复杂度,设计的时候可深可浅,但无论怎么变化,设计的思路基本都是围绕着用户、角色、菜单进行相应的扩展。
1154 0
手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏(二)
|
分布式计算 MaxCompute 开发工具
【文档小窍门】填写用户反馈的正确姿势
在使用产品帮助文档过程中,遇到问题了?更加困惑了?莫慌,手把手教你如何摆好填写用户反馈的正确姿势,助力文档更好地为您服务~~~