# 数据校验
数据校验是表单填报过程中管控数据质量的重要功能,通过使用批量校验它也能快速的检验一批历史数据的数据质量。数据校验支持取第三方数据、前期数据、跨表数据等做各种灵活的校验设置。本文主要介绍如何添加数据校验规则,填报时的校验错误处理请参考填报表单应用文档。
# 添加校验规则
校验规则有多种设置入口,如下图所示:
- 单元格属性设置:设置单元格类型后,在单元格>校验设置中可设置单元格必填或添加校验公式。
- 工具栏校验按钮:通过工具栏校验按钮,可添加逻辑校验规则或批量设置必填。
- 校验面板工具栏:在校验列表中可统一管理所有校验公式,点击工具栏添加按钮可添加校验规则。
# 校验规则列表
校验规则列表是表单应用统一管理校验公式的地方,在工具栏>校验菜单中点击显示所有校验公式可在表单应用设计器底部弹出校验列表,也可在视图中勾选校验公式来显示。
- 除了在单元格中设置校验规则外,还可在表单全局设置中直接添加校验规则,所有的校验规则都会统一收集到校验列表中展示。
- 校验规则按照所属的工作表进行划分,默认情况下会在校验列表中展示所有工作表中的校验规则,也可切换只展示当前工作表中设置的校验规则或是选中某个单元格来展示跟该单元格相关的校验规则。
- 双击校验列表中的那些在全局添加的校验规则可进行修改,如果是单元格上添加的规则则是定位到对应单元格的属性设置中。
# 校验规则的筛选和搜索
在校验列表中支持对校验规则进行筛选和搜索,如下操作所示:
- 点击工具栏中的筛选按钮会弹出筛选菜单,支持根据多种维度来筛选面板中展示的规则。
- 点击工具栏搜索按钮,弹出搜索框,输入关键字会实时过滤所有包含该关键字的校验公式,能够搜索的范围是当前校验面板中筛选后的结果。
# 更多操作
- 校验面板中的规则支持导入导出,点击校验面板工具栏更多按钮可将设置好的校验公式批量导出,也可将Excel中准备好的符合规范的校验公式批量导入到表单应用中。
- 在校验面板中支持框选多行校验规则,右键批量设置这些规则的属性,比如批量设置禁用,禁用后的规则会被置灰,或者批量的将错误级别的规则修改为警告级别。
# 逻辑校验规则
点击工具栏>校验按钮可新增逻辑校验公式,设置对话框如下:
- 编号:校验公式的编号,表单应用默认会以
CHK
开头往后排序,用户也能根据一些业务含义来自定义,比如某些校验规则是国家标准,可以设置编号与标准一致方便后期维护和比对。 - 错误级别:分为错误和警告两种级别,错误级别的规则必须全部通过才能提交数据,警告级别的规则即便不通过也不影响数据的提交,此处设置会受到应用设置中校验分级设置的影响。
- 校验公式:校验规则的主体,决定了内容要满足什么样的要求,比如
A1>100
,当单元格A1的值大于100时则通过校验。编辑校验公式时支持拾取单元格。 - 错误提示:当未通过校验规则时展示给用户的提示信息,通常是为了告诉用户怎么样输入正确的值。
- 生效条件:生效条件为空或者返回
TRUE
时才作用这条校验规则。
TIP
校验公式启用时,如果校验相关的元素都不可见,则校验公式默认失效,例如校验A1>B1
,假设Excel表单第一行是隐藏的,此时界面上无法看到A1和B1单元格,则这条校验公式默认不生效,因为即便生效,用户也没有办法修改。
# 高级设置
逻辑校验对话框中,可展开高级设置,高级设置中包含以下设置:
- 启用:控制校验公式是否启用,禁用后校验时会忽略这条公式。
- 允许特例:允许对这条校验公式进行特例说明,勾选后,即便未通过校验也可以在填写过特例说明后正常提交数据,需要搭配应用设置>数据填写>特例校验相关设置使用。
- 备注:针对校验公式的一段描述信息,方便后续维护修改。
# 通过生效条件简化校验
在实际场景中经常会遇到一些比较复杂的校验规则,以下面这条校验规则为例,其中包含多种情况,不同情况需要校验不同的规则:
CASE WHEN A1='1' THEN B1>C1 WHEN A1='2' THEN B1+C1=D1 WHEN A1='3' THEN B1*C1=D1 WHEN A1='4' THEN B1=C1 END
类似上述这类比较复杂的校验公式,都可以通过拆分后分别设置生效条件来简化设置,使多个公式整体修改的更为易读且方便后期维护,以下是拆分后的设置:
校验公式 | 生效条件 |
---|---|
B1>C1 | A1='1' |
B1+C1=D1 | A1='2' |
B1*C1=D1 | A1='3' |
B1=C1 | A1='4' |
TIP
当出现校验错误时,校验公式中所有涉及的单元格都会被标红提示,例如IF(A1=1,B1>C1)
,出错时A1,B1,C1单元格都会被标红处理。这条校验规则也可以修改为B1>C1
,然后在生效条件中设置A1=1
,这样设置后只会将A1单元格中的内容作为依据来判断校验规则是否生效,实际校验的内容还是B1和C1,所以此时即便校验错误也只会在B1和C1单元格处提示。
# 批量添加必填
除逻辑校验外,表单应用还支持批量设置必填,点击工具栏>校验菜单选择必填设置:
必填设置是将表单应用中所有与单元格有绑定关系的模型列到对话框中,用户可切换模型后批量选择某些字段需要必填,确定后,表单应用会根据选择的字段找到对应绑定的单元格来批量设置必填。
TIP
此处的设置只是一种快捷方式,效果等价于直接在单元格上设置必填。
# 启用批量校验
给周期填报应用设置好校验公式后,在表单应用设置>数据填写>数据校验中可开启启用批量校验。批量校验可以帮助管理员对一批单位数据快速校验,执行批量校验时,会针对每条数据使用表单应用中配置好的校验公式进行校验,全部校验完成后会返回结果,具体使用过程可参考填报表单应用文档。
# 应用场景
# 警告校验和特例校验
某些校验公式比较特殊,即便在不满足校验规则的情况下也可以允许用户提交数据。当设置校验公式为警告级别时,默认只会在提交数据时对用户给出警告信息,但用户仍可正常上报数据;允许校验公式添加特例时,即便校验错误用户也可在校验时添加特例说明让这条校验公式无条件通过,相关具体的校验体验可参考填报表单应用文档。
# 可选项范围校验
表单应用支持从Excel中导入数据,有时会出现导入的数据中存在垃圾数据的情况,比如单元格下拉框中可选的范围是A、B、C,但导入的内容却是一串文字,默认情况下在提交数据时会针对这种错误进行自动判断,不在单元格可选项范围内时不允许提交。如果需要禁用这种判断可参考数据填写文档。
# 跨表校验
表单应用支持跨表校验,当多个标签页下的表单数据存在校验关系时,可使用逻辑校验设置来定义规则:
- 添加逻辑校验规则,可直接通过单元格拾取来获取多张表下单元格的数据,比如此处当前表的
招生人数
要小于另外一张表的编制人数
。 - 校验公式添加完成后,可在校验列表中点击数据列下内容分别定位到校验公式中涉及到的不同元素。
TIP
- 校验面板中有一列
工作表
数据,代表对应的校验公式是属于哪个工作表的。 - 当所有校验相关的单元格都属于同一个工作表时,则校验公式中只需要定义类似
A1>B1
的公式即可。 - 当涉及到跨表校验时,会将写入的第一个单元格对应的工作表作为这条校验公式的所属工作表,继续添加其他工作表中的单元格时,需要添加表名前缀,如
工作表1.A1
。
# 取浮动行数据校验
当表单中包含固定表以及浮动表时,有时需要获取浮动表中的数据和固定表中的内容进行对比校验,例如所有报销明细的金额相加要小于本次报销额度,报销明细中属于聚餐费用的部分应当每条都不超过500等。此时需要使用浮动函数来设置校验公式。
# 取模型数据校验
在表单中,有时不会列出所有校验所需的元素,例如填写人员的统计数据时,某些校验规则需要另外的人员明细表数据做汇总求和后的结果来和表单中填写的数据进行比对,如果数据量不大且需要计算的内容不多时,可以在校验规则中使用QUERY函数来获取需要的数据。此处是在校验公式中结合使用了取数能力,具体可参考SuperPage的取数和计算文档。
# 行列间批量校验
当某些连续的行列中有着类似的校验公式时,比如C列每行的值都得分别大于D列每行的值,此时可在校验规则中设置类似[C1:C10]>[D1:D10]
的行列间批量校验的规则,避免反复的在校验规则中添加类似C1>D1
、C2>D2
的设置。