历史版本9 :控件筛选查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

参数最主要的应用就是结合控件,实现数据筛选过滤。如下图所示:

1601021441281870.gif

那如何将参数和控件结合到一起,实现参数过滤呢?

1.2 实现思路

首先必须明确,参数和控件并非一个概念,但两者在绑定的情况下,就可以相互传值,参数值即为控件值,控件值即为参数值,所以就会产生参数和控件看起来是一样的错觉。

实现数据筛选过滤,即先将参数和控件绑定,控件选择值后传递给参数,报表根据参数值过滤出数据。参数和控件各司其职,控件负责选择值、参数负责过滤数据。

根据定义方法,参数可以分成数据集参数和模板参数,所以实现数据筛选查询,也对应两种方法,数据集参数方法和模板参数方法。

2. 实现方法编辑

2.1 数据集参数

数据集参数 是定义在 SQL 语句中的参数,即在 SQL 查询数据时,就实现了数据的过滤。如果你的数据是从数据库查询获得,推荐使用此方法。

2.1.1 定义数据集参数

通过数据集参数实现数据筛选过滤时,首先要定义一个数据集参数。如:SELECT * FROM 销量 where 地区 = '${area}' 就定义了一个数据集参数 area。如下图所示:

2.1.2 添加过滤控件

定义好数据集参数后,如果要在页面实现数据过滤查询,就必须要有一个控件。根据想要的过滤形式选择控件即可,这里我们选择一个「下拉框」控件。

如下图所示,在参数面板添加了一个下拉框控件,并为为其绑定 数据字典 ,即设置「下拉框」的选项值为「销量」表的「地区」字段。如下图所示:

2.1.3 绑定参数和控件

以上准备好了控件和参数,只要两者绑定即可实现数据过滤。参数和控件的绑定方式非常简单,名称一致即为绑定,这里参数值已经确定,所以只需要将控件名称改为参数值即可。如下图所示:

但一般情况下添加了参数后,参数面板默认会显示出添加的参数,方便用户将其与控件绑定。如下图所示:

点击参数即可将其添加在参数面板上,点击添加后默认添加一组过滤控件,分别为一个「标签控件」、一个「查询按钮」和一个未定义控件,用户根据需要给未定义控件选择类型即可。如下图所示:

自动添加后,控件名和参数名是一致的,即已经实现了绑定,就不需要再修改名称了。但控件还需要设置数据字典,具体方法参考 数据字典

2.1.4 设计报表实现过滤

将数据集拖到报表中,设计报表,如下图所示:

保存模板,点击预览,area 控件选择不同的值,也就对应着 area 参数为不同的值,area 参数值不同,数据 SQL 语句就不同,则查询出的数据也就不同,这样就实现了数据过滤查询。如下图所示:

2021-12-07_16-32-36.gif


2.2 模板参数

模板参数 实现数据筛选查询和数据集参数不同,数据集参数是在从数据库中查询数据时就实现了过滤,而模板参数是将数据列添加在单元格中后再过滤,适合内置数据集或者文件数据集使用。

2.2.1 定义模板参数

这里相当于提前定义好一个参数,参数可以是 模板参数全局参数系统参数。区别在于全局参数所有模板都可以用,系统参数不用再定义。若你定义了一个全局参数想要实现过滤,或者想要通过系统参数过滤,也可以参考此方法。

定义一个模板参数 area。如下图所示:

2.2.2 添加过滤控件

定义好参数后,如果要在页面实现数据过滤查询,就必须要有一个控件。根据想要的过滤形式选择控件即可,这里我们选择一个「下拉框」控件。

添加方法同 2.1.2 节。

2.2.3 绑定参数和控件

以上准备好了控件和参数,只要两者绑定即可实现数据过滤。绑定方法参考 2.1.3 节。

注:系统参数默认不会出现在参数面板中,用户不能通过快捷方式添加。

2.2.4 添加过滤条件

新建数据集,SQL 语句为:SELECT * FROM 销量,即默认查询销量表中所有数据。将数据列添加到单元格中,并设置报表样式,如下图所示:

这时默认是所有数据,如果要实现查询,就必须添加过滤条件,双击 A2 单元格,为其添加过滤条件。过滤条件为地区这一列的值等于参数 area。如下图所示:

这样就实现了过滤,保存模板,点击预览,area 控件选择不同的值,也就对应着 area 参数为不同的值,area 参数值不同,报表中过滤条件就不同,则查询出的数据也就不同,这样就实现了数据过滤查询。如下图所示:

2021-12-07_16-32-36.gif