反饋已提交
網絡繁忙
下拉树控件默认值设置 ,要求默认值必须为节点的完整路径。当下拉树层级较多或下拉树为多选且需要设置多个默认值时,填写节点的完整路径就会非常复杂。所以在层级较多和需要多个默认值的情况下,如何简单填写默认值呢?效果如下图所示:
通过「自定义函数」实现根据子节点的值找出叶子节点的完整路径。
注:此方法只能用于构建方式为「自动构建」的下拉树控件。
函数:TREENODEFINDER(param1,param2)
释义 :
1)param1 为叶子节点的值,可以是显示值,也可以是实际值。
传入单个值时,以 value 格式传入。
传入多个值时,以数组格式 ARRAY(value1,value2,.....) 传入。
value 为字符串时需要加 "" 。
2)param2 为构建下拉树控件的树数据集名称,值格式为“TreeName”。
示例:
单值:TREENODEFINDER("部长","Tree1")
多值:TREENODEFINDER(ARRAY("部长","会计"), "Tree1")
编写自定义函数 TREENODEFINDER ,完整代码详见:
https://code.fanruan.com/demo/example/src/branch/release/10.0/src/main/java/com/fr/function/TREENODEFINDER.java
编译 2.1中的 TREENODEFINDER 代码 ,生成类文件 TREENODEFINDER.class 。
注:编译时需导入 FineReport 工程 JAR 包,包括安装工程包 %FR_HOME%/lib 下面的所有的包,%FR_HOME%/server/lib 下面的所有包,%FR_HOME%/webapps/webroot/WEB-INF/lib 下面的所有包,还要引入 JDK 的tools.jar。详情请参见 编译Java程序
这里也可以不用编译,直接使用编译好的 class 文件,点击下载并解压 TREENODEFINDER.class :TREENODEFINDER.7z
将编译生成的 TREENODEFINDER.class 文件复制到%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\function目录下 ,如下图所示:
打开设计器,选择「服务器」>「函数管理器」,增加一个自定义函数 TREENODEFINDER,选择类com.fr.function.TREENODEFINDER,如下图所示:
新建普通报表。
1)创建数据集「公司部门」,SQL语句为:
SELECT * FROM 公司部门
如下图所示:
2)创建树数据集「Tree1」,如下图所示:
在参数面板中添加「下拉树控件」,点击控件,在「控件设置」>「属性」>「数据字典」处,选择「自动构建」,开始构建下拉树,如下图所示:
使用自定义函数 TREENODEFINDER 设置下拉树默认值。
点击下拉树控件,在「控件设置」>「属性」>「控件值」位置,选择「公式」,输入 TREENODEFINDER("部长", "Tree1") ,如下图所示:
保存模板,点击「分页预览」,效果如 1.1 节所示。
App 及 HTML5 效果如下图所示:
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\function\自定义函数设置下拉树默认值.cpt 。
点击下载模板:自定义函数设置下拉树默认值.cpt
点击下载并解压 TREENODEFINDER.class 文件:TREENODEFINDER.7z
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉