1. 描述编辑
1.1 问题描述
决策报表里不支持 cpt 里的填报预览,那么用户如何实现决策报表填报功能呢?
1.2 解决思路
1)用户可以通过添加按钮控件的提交入库事件来实现决策报表填报功能。
2)用户可以通过添加网页框控件插入报表来实现决策报表填报功能。
2. 示例一编辑
通过添加按钮控件的提交入库事件来实现决策报表填报功能
2.1 模板设计
2.1.1 报表内容设计
新建决策报表,报表设计如下图所示:
左侧为标签控件,描述右侧的控件,分别给右侧的控件修改控件名,控件值,最下面为提交按钮,具体如下:
描述 | 控件类型 | 控件名称 | 控件值 | 数据字典 |
---|---|---|---|---|
姓名 | 文本控件 | name | if(len($fine_username)=0,"admin",$fine_username) | 无 |
请假类型 | 下拉框 | type | 无 | 事假,年假,病假 |
开始时间 | 日期控件 | startday | now() | 无 |
结束时间 | 日期控件 | endday | now() | 无 |
请假天数 | 文本控件 | day | DATEDIF($startday,$endday,"D")+1 | 无 |
请假理由 | 文本域控件 | reason | 无 | 无 |
提交 | 按钮控件 | submit | 无 | 无 |
2.1.2 移动端样式调整
调整决策报表的宽度高度,同时取消手机端重布局,如下图所示:
2.2 添加提交入库事件
选中 submit 按钮控件,点击控件设置>事件,添加点击事件
新增提交入库事件,提交入库的表为qingjia,对应值如下图所示:
注:值前面有 $ 符号,代表是引用这个参数。
2.3 设置回调函数
此时填报成功/失败的话,没有提示。
因此需要设置一下回调函数,来提示用户填报成功与否。如下图所示:
JS 代码如下:
if (fr_submitinfo.success) {
FR.Msg.toast('提交成功');
} else {
FR.Msg.toast('提交失败');
}
注:success 只表示后台程序执行没有异常,不表示数据提交成功。
2.4 效果预览
2.4.1 PC 端
保存模板,点击预览,效果如下图所示:
2.4.2 移动端
1)App
2)HTML5
3. 示例二编辑
通过添加网页框控件插入报表来实现决策报表填报功能。
注:移动端不支持网页框控件
3.1 安装插件
安装网页框控件插件,具体操作步骤请参考:网页框控件
3.2 添加网页框控件
选择控件>网页框控件,拖拽到决策报表body框,新添网页框控件 rHIframe0 ,如下图所示:
3.3 设置地址和参数
选中网页框控件,点击控件设置>属性>地址和参数,设置对应的模板(模板路径或网络模板),如下图所示
注:模板 URL 尾部务必添加 &op=write(以填报预览)。
3.4 效果预览
保存模板,选择表单预览,效果如下图所示:
注:移动端不支持
4. 已完成模板编辑
4.1 示例一
已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\决策报表填报-示例一.frm
点击下载模板:决策报表填报-示例一.frm
4.2 示例二
已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\决策报表填报-示例二.frm
点击下载模板:决策报表填报-示例二.frm