脚本中如何做填报数据校验

简介: 在很多填报表项目的开发过程中,为了保证数据规范且有效,常会在报表中设置各种校验以达到目的,比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 ,等等。这些要求,我们都可以利用报表工具提供的数据类型校验、单元格校验等手段来实现,但是总有“意外”情况出现,比如:小计校验要求分组内的各值相加等于分组小计,这种类型的校验有什么难点?怎么实现?下面我们举例实际看一下。

在很多填报表项目的开发过程中,为了保证数据规范且有效,常会在报表中设置各种校验以达到目的,比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 ,等等。这些要求,我们都可以利用报表工具提供的数据类型校验、单元格校验等手段来实现,但是总有“意外”情况出现,比如:小计校验要求分组内的各值相加等于分组小计,这种类型的校验有什么难点?怎么实现?下面我们举例实际看一下。
首先,了解基本情况及要求:
展现效果:
1

要求:
报表数据来源于数据库,其中 A 列指标名称是从数据库扩展取出的,要求各项计算结果满足分组内各值相加等于分组小计(比如:要求本年本月累计项中,指标代码 2 = 指标代码 3 + 指标代码 4),如果不满足则给出提示信息,要求进行修改,满足则可以正常提交。
报表设计界面如下:
2

其中
数据来源:
3

数据去向:
4

数据处理部分直接通过向导生成,这里不多做说明了。
分析难点:
由于分组小计(指标代码 2) 和 分组各项(指标代码 3+ 指标代码 4)都是从同一个字段“指标名称”扩展而来,报表不能准确定位取到参与计算单元格的位置并进行计算,故报表层面很难实现这种小计校验。
那么,就没办法实现了吗?(坏笑)对于润乾报表来说,显然那是不可能的。下面重点介绍这个神技能 :脚本校验
什么?脚本校验没听过?没关系,往下看…
操作:

从回填脚本中取出需要计算值;
按照要求结合集算器的 if 函数进行校验(提交时触发)。

数据去向脚本修改如下
5

其中
第 3-5 行,利用 A.select() 函数分别定位找出了需要参与校验的值;
第 6 行,按照原始需求利用 if 函数,进行数据校验,如果判断条件 A3!=A4+A5 成立,则在提交时通过 return 返回错误提示信息。
效果:
6

到这里,我们可以看出来,在报表层不好处理的小计校验,在脚本中很轻松就可以搞定了,是不是对脚本有那么一丢丢喜爱了,那就持续关注吧,毕竟人家是潜力股。
最最后,技术要点分享

  1. 巧用向导生成填报脚本
    数据处理,右侧 【使用向导生成脚本】可以零代码完成普通填报表的数据处理

7

  1. 熟知集算器常用函数
    A.select() 选出序列中符合条件的成员。

r.field(F) 取得记录中某个字段的字段值。
了解更多函数参考 doc.raqsoft.com.cn/esproc/func

目录
相关文章
|
27天前
|
数据处理 索引 Python
用Python实现数据录入、追加、数据校验并生成表格
本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。
75 14
|
数据采集 安全 网络安全
告警繁杂迷人眼,多源分析见月明
随着数字化浪潮的蓬勃兴起,网络安全问题日趋凸显,面对指数级增长的威胁和告警,传统的安全防御往往力不从心。网内业务逻辑不规范、安全设备技术不成熟都会导致安全设备触发告警。如何在海量众多安全告警中识别出真正的网络安全攻击事件成为安全运营的痛点问题。传统的分析手段,没有从威胁来源和攻击者视角来分析问题,从黑客攻击杀伤链来看,检测点和分析手段严重不足。因此需要从多源安全信息数据融合分析,实现网络攻击精准研判和处置。
143 1
|
分布式计算 监控 前端开发
133 日志监控告警系统案例(需求分析)
133 日志监控告警系统案例(需求分析)
113 0
|
监控
135 日志监控告警系统案例(数据模型设计)
135 日志监控告警系统案例(数据模型设计)
194 0
|
弹性计算 Java 数据库连接
架构设计第七讲:数据巡检系统之daily&线上表结构自动化比对
架构设计第七讲:数据巡检系统之daily&线上表结构自动化比对
123 0
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
数据安全/隐私保护
Mindopt上新数据脱敏功能,方便外发数据
V0.24.0版本的MindOpt优化求解器新增了数据脱敏功能,可以对输入模型文件进行数据脱敏。将优化问题中问题名、决策变量、约束条件名称这些和业务场景相关的数据进行脱敏变更,使得优化问题的数据仅保留看不出用途的数值信息,隐藏业务信息。方便外发数据去做技术可行性验证、方案咨询、测试等。
Mindopt上新数据脱敏功能,方便外发数据
|
BI 数据库
汇总报表怎么做,如何设计实现汇总报表?
汇总报表怎么做,如何设计实现汇总报表?
|
前端开发
3.26前端作业-表格表单的综合应用
3.26前端作业-表格表单的综合应用
97 0
3.26前端作业-表格表单的综合应用