历史版本4 :多源报表实现数据过滤 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

简单多源报表中,蓝色部分是主表,黄色部分是根据蓝色部分过滤得出来的。

如果我们想要筛选「销售总额」为 1869 的数据,可能出现如下图所示的情况:

1606210524166300.png

而实际上,我们需要的效果是:

1606210564240043.png

1.2 实现思路

在数据集中先对数据进行筛选,然后再在单元格中的主表单元格里进行过滤。

2. 示例编辑

打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Multidatasource\简单多源报表.cpt

2.1 数据准备

将 ds2 数据集中 SQL 查询语句修改为:SELECT * FROM 销售总额 where 1=1 ${if(len(销售总额)=0,""," and 销售总额 = '"+销售总额+"'")},如下图所示:

1611561776466047.png

2.2 过滤条件设置

双击 B4 单元格,设置过滤条件:

条件一:普通条件,ds1 销售员数据列等于 ds2 销售员数据列; or  条件二:公式条件,len($销售总额) =0 ,以实现参数为空选择全部的效果。

ds2 数据集中已经实现了这个效果,但是单元格 B4 的数据来自于 ds1数据集, ds1 数据集中可能包含 ds2 数据集中没有的数据。因此必须加上条件二,才不会导致参数为空时主表的数据减少。

如下图所示:

1606211231164463.png

2.3 参数面板设置

进入参数面板编辑界面,将参数「销售总额」添加进参数面板,设置其控件为「数字控件」,如下图所示:

image.png

2.4 效果预览

2.4.1 PC 端

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

25840D3F-0174-4658-AEA7-EA5A9975DF36.GIF

2.4.2 移动端

App 和 HTML5 端均支持,效果如下图所示:

308824F7-8007-43CA-83DA-5381A071BBCD.GIF

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Multidatasource\多源报表非主表实现数据过滤.cpt

点击下载模板:多源报表非主表实现数据过滤.cpt