最新历史版本 :下拉框/下拉复选框/下拉树的模糊搜索 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0.2控件模糊搜索逻辑优化
11.0.3下拉树控件模糊搜索触发逻辑优化、搜索节点展开逻辑优化,详情见 2 节
11.0.6下拉树控件模糊搜索展开节点数量逻辑优化,详情见 2 节
11.0.10修改控件模糊匹配字母逻辑,改为不区分大小写,详情见 2 节
11.0.11匹配时,支持匹配实际值、显示值,详情见 2 节

1.2 功能简介

在使用控件进行填报或查询数据时,若数据字典中的选项很多,找起来会很麻烦,因此 FineReport 提供了控件的模糊搜索功能来提高输入效率。如下图所示:

模糊搜索功能适用的控件为下拉框、下拉复选框、下拉树、新多选下拉树控件。

注:控件使用模糊搜索前提是控件能输入字符,所以控件「属性>校验」处必须勾选「允许编辑」。

2. 功能逻辑 编辑

2.1 匹配选项逻辑

1)匹配时匹配「数据字典」处设置的显示值和实际值。

注:11.0.2-11.0.10 版本只匹配显示值。

匹配实际值和显示值只匹配显示值

实际值为产品类型,显示值为产品名称,输入实际值,也可以匹配到:

实际值为产品类型,显示值为产品名称,输入实际值,匹配不到:

2)匹配字母时不区分大小写。

注:11.0.2-11.0.10 版本区分大小写。

不区分大小写区分大小写

输入"adbc","ADBC"、"adBC"都能被匹配到

输入"adbc","ADBC"和"adBC"都不能被匹配到,输入完全一致才能匹配

3)字母与汉字选项的汉语拼音首字母进行匹配。

注:11.0.2 及之前版本字母与汉字选项的汉语拼音进行匹配。

字母与汉字选项的汉语拼音进行匹配字母与汉字选项的汉语拼音首字母进行匹配

输入“liu”,匹配“柳橙汁”

输入“lcz”,匹配“柳橙汁”

4)数字、字母不会被分词,字母、数字排列和搜索内容不一致的不会被搜索出来,只匹配和搜索内容一致的选项。

注:11.0.2 及之前版本数字、字母会被分词,数字排列和搜索内容不一致的也会被搜索出来。

数字、字母被分词数字、字母不被分词

输入“ABC”,“ABDC”、“ADBDC”也会被搜索出来

输入“ABC”,只能搜索到含有连贯“ABC”的选项

5)汉字会被分词进行匹配,例如:北大」会按照」、」两个文字进行匹配

企业微信截图_16850690674493.png

2.2 匹配项排序逻辑

1)模糊搜索后匹配的选项按匹配程度进行排序,匹配程度高的排在前面。同一匹配程度的选项按照「数据字典」选项本身的顺序进行排序。

注:11.0.2 及之前版本模糊搜索后匹配的选项顺序进按照「数据字典」选项本身的顺序进行展示

按照「数据字典」选项本身的顺序进行排序按照匹配程度进行排序

搜索“北京大学”时,即使选项和在那个的“北京大学”完全匹配,也会因为在数据字典中位置靠后而排在最后一个。

搜索“北京大学”时,选项中“北京大学”完全匹配,匹配度最高,排在第一位,其他同一匹配度的按照数据字典中顺序排列。

2)「下拉树控件」匹配时,匹配父节点和子节点,当父节点下的子节点被匹配到时,该父节点也算作匹配。如下图所示:

3)「下拉树控件」匹配项排序时,匹配项的层级越高,排序越靠前。因为子节点被匹配而作为匹配项的父节点将排序在最后面,优先排父节点直接被匹配的。

注:11.0.2 及之前版本模糊搜索后匹配的选项顺序按照「数据字典」选项本身的顺序进行排序

匹配项层级越高排序越靠前按照「数据字典」中的顺序排序

搜索“果”,“干果”、“动物”都被匹配到,因为“动物”是因为子节点“果子狸”被匹配,所以排在最后面。

搜索“果”,“干果”、“动物”都被匹配到,因为排序不分先后,直接按「数据字典」中的选项排序,所以“动物”项排在上面。

  • 因为自身直接被匹配到的节点们,同一层级按照匹配程度进行排序。如下图所示:

     

  • 因为子节点被匹配而作为匹配项的父节点们,排序时按照「数据字典」中的顺序而排序。如下,虽然“北京大学”的“王明”同学被完全匹配,但在「数据字典」的数据中,“北京师范大学”的“王明阳”同学排在前面,所以,展示时他就排在前面。

2.3 匹配后展开逻辑

1)为性能考虑,「下拉树控件」模糊搜索时,当某个节点匹配了搜索关键字时,该节点不展开;只有当该节点的子节点或者子节点的子节点被匹配时,此节点才展开。

注:11.0.3 及之前版本当某个节点匹配了搜索关键字时,该节点展开。

节点展开节点不展开

搜索“财务”,“财务部”匹配到了关键字,所以财务部节点自动展开。

搜索“财务”,“财务部”虽然匹配到了关键字,但财务部下面的子节点中没有匹配的,所以该节点不展开。

2)为性能考虑,「下拉树控件」匹配后节点展开时,默认展开搜索匹配结果的前 100 个节点,后面的节点不展开。

注:11.0.6 及之前,匹配的所有节点都展开。

2.4 匹配时触发逻辑

为性能考虑,在用非英文输入法输入文本时,只有选定了要搜索的内容后才触发模糊搜索,出现选项下拉框。

注:11.0.3 及之前版本在用非英文输入法输入文本时,在未选定内容前也触发模糊搜索,出现选项下拉框。

输入过程中不停的触发选择完后再触发

每输入一个字符,就出现下拉框,执行一次搜索。

2022-02-10_13-54-33.gif

所有字符输入完后,选择一个搜索内容后,再出现下拉框,搜索。

2022-02-10_13-53-51.gif

3. 示例 编辑

3.1 下拉框

3.1.1 英文字符串

若下拉框中存在 JOHN 和 ANNA 两条数据,输入 则过滤出包含 的所有数据即 JOHN,若输入 则过滤出包含 的所有数据即 JOHN ANNA ,如下图所示:

3.1.2 中文字符串

若下拉框中存在江苏和浙江两条数据,输入 j 则过滤出拼音的首字母中包含j的所有数据即江苏浙江,若输入 JS 则过滤出首字符的拼音是 js 的所有数据即江苏,如下图所示:

222

3.2 下拉复选框

类似于下拉框的模糊查询,下拉复选框也有该此功能。由于复选框可以选择多个值,故不同于下拉框,下拉复选框可以模糊查询多个值,如下图,在模板中添加一个「下拉复选框控件」,数据字典设置如下图所示:

222

预览模板,使用模糊查询选择张珊王伟两个值。

在下拉复选框的文本框中输z,则过滤出拼音的首字母中包含z 的所有数据,如下图所示:
222

勾选张珊之后,张珊的值则会返回至文本框中,在后面接着输入w,下拉复选框则会过滤出拼音的首字母中包含w的所有数据,如下图所示:

222

选中王伟即可。

3.3 下拉树

单选下拉树控件的快速查询与下拉框一致。多选下拉树控件的快速查询与下拉复选框一致。如下图所示:

单选:

多选:


4. 下一步编辑

模糊查询常见问题及解决方案可参考:模糊查询常见问题