自由表填报

<< Click to Display Table of Contents >>

当前位置:  数据填报 > 填报示例 

自由表填报

复制链接

1.背景介绍

公司需要创建一个特定的表格,用户需要按照指定的单元格将数据填入规定好的表格报告,可以使用自由表填报组件。例如加班申请单,数据包括项目名称、申请时间、申请人、部门、岗位、加班开始时间、加班结束时间、共计天数和加班原因。

2.数据准备

在数据库中需要创建两个表,一个用于存储数据,一个存储人员关系,人员关系表需要保存为数据集。申请时间、加班开始时间、加班结束时间的数据类型为date。ID为用户的唯一标识,用于区分重复名称的情况。如下图,详细功能可参考数据准备

data_report_form_121_zoom113

data_report_form_120

3.制作填报报告

1)新建报告,并从右侧填报组件中,选择拖入自由表填报组件,如下图。

data_report_form_119_zoom70

2)设计填报表,在单元格输入需要填写的内容,如下图

data_report_form_122_zoom86

3)申请日期为填写的日期,申请人为登录用户的昵称,不需要用户填写,可以使用内置参数设置。选中单元格,在右侧“类型”选择“格间计算”,在弹出的对话框中右侧的函数中选择内置日期时间“_THIS_FULL_DAY_”,双击参数,自动填入左侧编辑页面。申请人的设置和申请日期一样,需要选择参数“_USER_ALIAS_",设置后如下图。

data_report_form_126_zoom72

4)选择创建好的人员关系表数据集,将部门和岗位拖入到单元格中。部门和岗位为系统自动匹配,不需要用户输入,所以建议聚合选择“最大值”。

data_report_form_123_zoom62

5)因为人员、部门和岗位是一对一关系,且在管理系统>认证授权中创建的用户,用户名为ID,是唯一值,通过添加过滤可以实现不用输入,部门和岗位的直接匹配。选择组件的过滤功能,添加过滤,选择“ID是等于?{_USER_}”,如下图。

data_report_form_130_zoom74

6)加班开始时间和加班结束时间填写的“数据类型”改为“日期”,同时修改名称为“加班开始时间”和“加班结束时间”。

data_report_form_127_zoom74

7)共计(天)可以不需要用户填写,使用加班结束时间减去加班开始时间,也通过“格间计算”实现。使用函数“dateGap”和“dayofyear”,因为要包含加班开始时间当天,所以要对数据做特殊处理,完整脚本如下,数据类型改为整数。

if(isNull(cell(‘加班开始时间’)) || isNull(cell(‘加班结束时间’))){

}else{

parseInt(dateGap(cell(‘加班开始时间’),cell(‘加班结束时间’),"dayofyear"))+1

}

data_report_form_128_zoom75

8)选中不能编辑的单元格,选择右侧设置>编辑器,关闭编辑功能。

data_report_form_129_zoom77

9)点击顶部菜单【填报>填报字段】,创建字段映射,选择需要入库的“数据源”和“目标表”。

data_report_form_125_zoom81

点击源字段,在下拉列表中选择组件“自由表填报1”,在弹出的添加单元格对话框中,选择需要输入数据填入数据库的单元格。点击目标字段,选择要填入的对应表中的列,如上图。

data_report_form_136_zoom69

用户ID可以直接通过内置参数填入数据库,在源字段下拉列表中选择“_USER_”。

data_report_form_137_zoom75

点击加班结束时间的的条件校验的“编辑”,设置加班结束时间大于等于加班开始时间,不满足时提示“加班结束时间必须加班大于开始时间”。

data_report_form_124_zoom93

选择设置行列关系,因为填入数据和数据库字段是一对一的关系,系统自动匹配,即填入内容的单元格与数据库字段相对应,如单元格cell1的内容将填入数据库表项目名称下,直接点击确定即可。

data_report_form_138

在提交类型选择“智能提交”,即产品会根据数据变动,智能判断做"增删改"操作。因为选择智能提交,必需要有“条件列”,勾选id列为“条件列”,设置完成后点击“确定”即可。

10)从右侧填报组件中拖入“提交”组件,在【设置>选项】中,点击添加提交操作,选择提交类型为“填报提交”,并勾选参数为刚刚在填报设置中创建的“字段映射”。

data_report_6

12)保存报告。

4.填报

预览或查看报告,点击输入框,填入数据,如下图。

data_report_form_131_zoom81