反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

多源报表实现数据过滤

  • 文档创建者:axing
  • 历史版本:9
  • 最近更新:帆软应用复用-Cat 于 2022-03-16
  • 1. 概述

    1.1 版本

    报表服务器版本
    10.0

    1.2 预期效果

    在前面学习了简单多源报表、复杂多源报、多源分片报表,如果希望在多源报表中实现过滤改如何实现呢?

    例如想要筛选「销售总额」为 1869 的数据,如下图所示:

    1.3 实现思路

    在单元格中的主表单元格里进行过滤。

    2. 示例

    2.1 数据准备

    新建数据集 ds1 , SQL 查询语句为:SELECT * FROM [销量]

    新建数据集 ds2,SQL 查询语句为:SELECT * FROM 销售总额 where 1=1${if(len(销售总额)=0,""," and 销售总额 = '"+销售总额+"'")}

    2.2 报表设计

    如下图设计表格,将数据集中的字段分别拖拽到对应单元格中。

    单元格设置如下表所示:

    单元格
    设置
    B2、B3合并 B2、B3 单元格,输入文本:地区
    C2、C3合并 C2、C3 单元格,输入文本:销售员
    E2、E3合并 E2、E3 单元格,输入文本:销售总额
    D2拖入数据列:ds1 产品类型,横向扩展,父格为默认
    D3拖入数据列:ds1 产品,横向扩展,父格为默认
    B4、C4、D4分别拖入对应的数据列:ds1 地区、ds1 销售员、ds1 销量;纵向扩展
    E4拖入数据列:ds2 销售总额;纵向扩展;左父格为 C4

    2.3 过滤条件设置

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

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

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

    1.png

    2)双击 E4 单元格,设置过滤条件:销售员等于 C4 单元格,如下图所示:

    2.png

    2.4 参数面板设置

    进入参数面板编辑界面,选择「全部添加」进参数面板,设置其控件为「数字控件」,如下图所示:

    2.5 效果预览

    2.5.1 PC 端

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

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

    2.5.2 移动端

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

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

    3. 模板下载

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

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

    附件列表


    主题: 报表应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526