条件过滤
教学视频
概述
从给定的结果集中获取符合要求的数据,比如下面的员工记录,我们需要获取所有性别为true类型的数据,如下图所示:
要实现上述报表,有三种方法:
- 在数据集定义时,直接通过SQL取出符合条件的数据,如:select * from employee where sex=true。
- 在报表设计页中通过单元格的数据集过滤实现。
- 通过配置查询表单,通过查询表单中的过滤框解决。
方法一比较简单,这里不再赘述,这里主要介绍第二、三种方法。
方法二:单元格数据过滤实现
定义好报表模版如下图所示:
选中A1单元格,在属性面板中切换到数据过滤页签,如下图:
在条件左值中选择SEX列,比较符用等于,条件右值输入表达式true,然后点击边上的图标,添加该条件,如下图:
保存预览,展示的数据既为所有性别为true类型的数据。
方法三:通过查询表单过滤
将当前报表绑定的数据集查询SQL修改为:select * from employee where sex=${$p1}。
在这个SQL当中添加了sex字段的过滤条件,条件值为表达式$p1,在SQL中使用表达式要放在${}中,上面的$p1为引用一个名为p1的参数,所以接下来需要我们定义一个名为p1的参数,表达式中引用参数要以$符号开头。
点击工具栏上面的报表配置图标,在弹出窗口中的第一个报表参数页签中定义一个名为p1的参数,类型为布尔,默认值为true,如下图所示:
回到报表设计页面,切换到查询表单页签,将工具栏上的名为p1的参数拖到工作区,选择生成的控件,将绑定组件类型改为下拉框,并将标题改为性别:,同时将绑定数据集类型改为自定义,并添加两条自定义的记录,如下图:
最后将工具栏上的查询按钮拖到工作区,效果如下图所示:
保存预览报表,如下图所示:
因为p1参数的默认值为true,所以默认显示的就是所有sex值为true的员工信息,我们也可以通过表单中的下拉框来修改性别类型,然后点击查询过滤,如下图所示: