1. 概述
1.1 问题描述
在企业的日常业务中,肯定会有一些上报和审核的流程,那么如何通过填报功能来实现此流程呢?
1.2 解决方案
平台的多级上报功能可以满足一部分的上报审核流程需求,但如果有一些个性化的需求,无法通过多级上报功能实现的,那就可以自己制作填报模板来实现。
核心思路是利用标记字段:在数据库相关表中设置一个用于记录上报流程节点的标记字段,后续利用该字段即可判断不同数据在流程中的状态,进而实现自定义的上报审核流程需求。
2. 示例
2.1 准备数据
数据库表结构如下,其中状态列即为标记字段:
2.2 设计模板
一共需要2张模板来实现此示例的场景,一张用于员工填报,一张用于负责人审核。
员工填报表设计如下:
负责人审核表设计如下:
2.3 制作员工填报表
2.3.1 设置权限
1)新建ds1数据集,利用系统参数fine_username实现员工只能看到自己填写的数据。
sql为:SELECT * FROM [dbo].[雇员信息收集表] where 雇员ID = '${fine_username}'
2)将查询出的字段拖入员工填报表,这样员工就可以查看自己填写的数据,以及上报流程的状态了。
2.3.2 设置填报属性
1)如图所示设置员工填报表的填报属性,标记字段输入固定值0,代表待审核状态。
本示例中标记字段值的含义为:0代表待审核,1代表审核通过,2代表被退回,空代表未提交。
2)如果是待审核或者审核通过状态,则不能让用户重复提交。此处可以用数据校验来实现,判断只有标记字段为空或者2时,才可以提交。公式为:len(C9)=0||C9=2
2.3.3 设置页面权限
1) 当数据处于待审核或者审核通过状态时,不允许用户再次修改数据,只能查看。此处可以利用条件属性来实现,在C6、F6、C7、F7、C8、F8单元格设置条件属性,判断C9单元格的值为0或者1时,禁用控件。
2)C9单元格的状态为实际值,是数字,此处可以利用单元格形态的数据字典,来将其转换为文字说明。
3)如果状态为被退回时,需要展示退回原因,其他状态则不需要展示退回原因。此处可以在B10单元格设置条件属性来判断状态,当状态不等于2时,隐藏退回原因行。
2.4 制作负责人审核表
2.4.1 过滤数据
新建ds1数据集,利用标记字段过滤出待审核的数据,sql为:SELECT * FROM [dbo].[雇员信息收集表] where 状态=0
2.4.2 设置单选按钮组
在H2单元格添加单选按钮组,数据字典设置如下:
2.4.3 设置填报属性
1)如图设置填报属性,并勾选上未修改不更新,这样在数据较多时能提高提交速度。
2)审核结果为空的数据不需要提交,此处可以通过提交条件设置来实现。公式为:len(H2)!=0
3)当数据通过审核时,是不需要填写退回原因的;当数据被退回时,则需要填写退回原因。此处可以通过数据校验设置来实现。公式如下:
if(H2 = 1, len(I2) = 0, true):当状态为审核通过时,退回原因需为空。
if(H2 = 2, len(I2) != 0, true):当状态为被退回时,退回原因不能为空。
2.5 效果预览
员工填报:
负责人审核:
注:该方案是支持移动端的。