1. 概述编辑
在使用控件进行填报或查询数据时,若数据字典中的数据很多,找起来会很麻烦。因此 FineReport 提供了控件的模糊搜索功能来提高输入效率。
2. 功能逻辑 编辑
1)模糊搜索即用户输入字符串中的某个字符时,对应的数据就会被查询出来。英文字符串是不分大小写的,而对于中文字符串只需要输入拼音的首字母即可查询出对应的数据。
2)如果输入多个字符来模糊搜索,在匹配的时候会将多个字符拆开来进行匹配。例如输入 ABC ,则会匹配数据字典中同时有 A、B、C 且顺序一致的数据,而不是匹配 ABC 连在一起的数据。如下图所示:
3)模糊搜索支持匹配实际值和显示值。比如某条数据的实际值是 A ,显示值是 B ,此时输入 A 或者 B ,都能匹配到该条数据。
注:「下拉框控件」需要勾选允许编辑,才能输入字符。
3. 示例 编辑
3.1 下拉框
3.1.1 英文字符串
若下拉框中存在 JOHN 和 ANNA 两条数据,输入 j 则过滤出包含 j 的所有数据即 JOHN,若输入 n 则过滤出包含 n 的所有数据即 JOHN 和 ANNA ,如下图所示:
3.1.2 中文字符串
若下拉框中存在江苏和浙江两条数据,输入 j 则过滤出拼音的首字母中包含j的所有数据即江苏和浙江,若输入 JS 则过滤出首字符的拼音是 js 的所有数据即江苏,如下图所示:
3.2 下拉复选框
类似于下拉框的模糊查询,下拉复选框也有该此功能。由于复选框可以选择多个值,故不同于下拉框,下拉复选框可以模糊查询多个值,如下图,在模板中添加一个「下拉复选框控件」,数据字典设置如下图所示:
预览模板,使用模糊查询选择张珊和王伟两个值。
在下拉复选框的文本框中输z,则过滤出拼音的首字母中包含z 的所有数据,如下图所示:
勾选张珊之后,张珊的值则会返回至文本框中,在后面接着输入w,下拉复选框则会过滤出拼音的首字母中包含w的所有数据,如下图所示:
选中王伟即可。
3.3 下拉树
单选下拉树控件的快速查询与下拉框一致。多选下拉树控件的快速查询与下拉复选框一致。
如果下拉树的模糊搜索不生效 ,可以检查下数据字典的数据结构。
在下拉树自动构建方式下,要求根节点的父节点必须为空,如下图所示:
4. 注意事项编辑
4.1 下拉框模糊搜索慢
问题描述
在使用下拉树控件普通分层构建时,在数据层级较多的情况下,模糊查询会卡死,搜索时间较长,还会导致整个报表系统卡死。
原因分析
1)数据层级较多,导致搜索时间长,系统卡顿。
2)设计器 JAR 包较老,需要升级。
解决方案
1)建议使用下拉树控件极速分层构建,设置好数据层级依赖关系即可。
2)升级 JAR 包,升级后使用下拉树控件极速分层构建即可。