最新历史版本 :筛选过滤 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

希望从大量的数据当中,获取到符合条件的数据。例如,在网格式报表中,仅展示已付订单的记录,如下图所示:

1571297688684688.png

1.2 实现思路

方法一:直接通过 SQL 语句取出满足条件的的数据。修改数据集 SQL 语句为:SELECT * FROM 订单 where 是否已付 = 'true'

方法二:通过数据列过滤实现。设置过滤条件:「是否已付」等于字符串 true

方法三:通过查询框筛选过滤实现。定义数据集时,在 SQL 语句中添加自定义参数${a}即可在参数面板中添加相关参数控件进行筛选过滤

2. 准备模板编辑

在 FineReport 设计器中打开报模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\预警和间隔背景色.cpt

或点击下载模板:预警和间隔背景色.cpt

3. 方法一:通过 SQL 语句筛选过滤编辑

3.1 修改模板数据集

打开准备的模板,修改 ds1 的 SQL 语句为:SELECT * FROM 订单 where 是否已付 = 'true'。如下图所示:

修改SQL语句.png

3.2 效果预览

3.2.1 PC 端

保存模板,点击「分页预览」,效果如 1.1 节所示。

3.2.2 移动端

App 及 HTML5 端效果如下图所示:

2.jpg

4. 方法二:通过数据列过滤实现编辑

4.1 添加过滤条件

打开准备的模板,双击 A2 单元格,在弹出的数据列设置框中选择「过滤」,设置过滤条件:「是否已付」等于字符串 true 。如下图所示:

注1:由于单元格的计算顺序,过滤条件需要设置在单元格的父格上。如这里的「订单 ID」,先取出已付的订单号,而其子格会自动继承父格条件,将父格子作为过滤条件。

注2:若数据集中具有重复的列名,单元格过滤时以最后一个列的内容为准,进行过滤。

设置过滤条件.png

4.2 效果预览

同本文 3.2 节。

5. 方法三:通过查询框筛选过滤编辑

5.1 具体步骤

1)打开准备的模板,修改 ds1 语句为:SELECT * FROM 订单 where 是否已付 = '${a}'。如下图所示:

修改SQL语句1.png

2)编辑参数面板,点击「全部添加」按钮。如下图所示:

全部添加.png

3)点击右侧的「控件设置」,选中「Labela」,选择「属性」,修改控件值为字符串「是否已付」。如下图所示:

修改标签控件值.png

4)点击参数面板参数 a 的工具按钮,选择下拉框控件。如下图所示:

下拉框.png

5)点击右侧的「控件设置」,选中「a」,选择「属性」,设置数据字典为「自定义」,实际值分别为true、false,显示值与实际值相同如下图所示:

数据字典.png

5.2 效果查看

5.2.1 PC 端

保存模板,点击「分页预览」,效果如下图所示:

1605251271982375.gif

5.2.2 移动端

App 及 HTML5 端效果如下图所示:

2.gif

6. 下载模板编辑

1)方法一:

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\通过SQL语句筛选过滤.cpt

点击下载模板:通过SQL语句筛选过滤.cpt

2)方法二:

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\通过数据列过滤.cpt

点击下载模板:通过数据列过滤.cpt

3)方法三

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\通过查询框筛选过滤.cpt

点击下载模板:通过查询框筛选过滤.cpt