1. 概述编辑
1.1 版本
报表服务器版本 |
---|
10.0 |
1.2 预期效果
下拉树控件,应用在在参数查询和填报中时,希望可以设置控件默认值。
报表加载完成后控件默认有值,如下图所示,这要如何实现呢?
1.3 实现思路
参数面板中:在「属性」>「高级」>「控件值」位置填写默认值完整路径。
单元格中:1)单元格中填写默认值完整路径,2)添加「加载起始」JS 事件。
注:填入的默认值可以是控件实际值,也可以是显示值,最终效果一样。
2. 方案1-需填入完整路径编辑
2.1 参数面板中下拉树
2.1.1 单选下拉树
在控件的「属性」>「高级」>「控件值」处填写默认值的完整路径。
默认值填写规则:默认值必须写完整路径,字父节点之间用“,”隔开。举例:总部,财务部,部长 ,如下图所示:
2.2.2 多选下拉树
在控件的「属性」>「高级」>「控件值」处填写默认值的完整路径。
默认值填写规则:默认值必须写完整路径,字父节点之间用“,”隔开,多个值之间用“;”隔开。
举例:总部,财务部,部长;总部,财务部,会计 ,如下图所示:
2.2 单元格填报控件中下拉树
填报模板中,下拉树控件填写默认值后不会自动定位和勾选节点,需要添加 JS 事件来实现。
注:该功能仅支持 2020-08-03 及之后版本的 JAR 包。
2.2.1 填写默认值
单元格中添加下拉树控件后,直接在单元格内填写默认值。如下图所示:
填写规则:
单选下拉树:默认值必须写完整路径,字父节点之间用“,”隔开,举例:总部,财务部,部长 。
多选下拉树:默认值必须写完整路径,字父节点之间用“,”隔开,多个值之间用“;”隔开,举例:总部,财务部,部长;总部,财务部,会计 。
2.2.2 添加 JS 事件
在「模板」>「模板WEB属性」>「填报页面设置」界面,为该模板单独添加「加载起始」JS 事件 ,如下图所示:
JS代码:
FR.Core.Plugin.ExtraWidgetConfig.autoExpandTreeNodes=true;
3. 方案2-只填入叶子节点编辑
下拉树控件设置默认值时,默认值要求是节点完整路径,当下拉树层级较多时,填写完整路径会非常不方便。
如在填报报表中,要将多个下拉树叶子节点填入数据库,默认值设置就会非常复杂。
通过自定义函数可以实现,只填入叶子节点值的情况下,控件也可以自动定位和勾选对应节点。
3.1 自定义函数
自定义函数 TREENODEFINDER , 函数脚本见附件。
如何自定义函数可参考文档:自定义函数 。
注:附件提供的 REENODEFINDER 自定义函数目前只支持构建方式为「自动构建」的下拉树控件。
3.2 使用函数
3.2.1 函数说明:
TREENODEFINDER(param1,param2)
param1 为叶子节点值,可以是实际值,也可以是显示值,param2 为下拉树控件绑定的树数据集名称。
单个默认值时 param1 格式为 "value" ,如:TREENODEFINDER("部长", "Tree1")
多个默认值时 param1 格式为 array(value1,value2,......) ,如 TREENODEFINDER(ARRAY(111,112),"Tree1")
注:value 为叶子节点的值
3.3.2 示例
1)参考文档 下拉树控件自动构建示例 新建模板,预览效果如下图所示:
2)点击参数面板下拉树控件,在「组件设置」>「高级」>「控件值」位置,选择「公式」,输入公式 :TREENODEFINDER("部长", "Tree1") ,如下图所示:
3)点击保存,预览模板,可以看到下拉树已默认勾选部长,效果如下图所示:
注:填报单元格中的下拉树设置默认值,直接在单元格中输入公式即可
4.附件下载编辑
点击下载函数脚本:TREENODEFINDER.7z
已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\自定义函数设置下拉树默认值.cpt
点击下载模板:自定义函数设置下拉树默认值.cpt