BIRT报表中实现过滤和分组

所有聚集函数都允许使用两个可选参数来指示过滤和分组: 

Total. <聚集函数> ( ..., filter, group ) 

关于过滤器参数 
过滤器参数提供了一个布尔表达式,对于每一行,BIRT 都会对该表达式进行求值。在计算聚集时,BIRT 仅考虑与该过滤器匹配的行。例如,报告可以对活动客户的贷记限额进行求和,以确定最大贷记风险。 

此表达式是在数据转换阶段执行的。它可以访问行中的列、参数、用户定义的函数以及上述上下文描述中定义的其他资源。例如: 

Total.sum( row["CreditLimit"], row["Active"] == &apos;Y&apos; ); 

指定过滤器参数 null、未定义过滤器参数或者指定 Total.NO_FILTER,都表示未提供过滤器。如果应用程序未提供过滤器,则过滤器缺省为未定义。如果提供了组参数,则必须提供 null 或 Total.NO_FILTER 以指示不进行过滤。 

关于组参数 
报告经常需要显示当前分组级别的总计。例如,假定一个报告按客户和订单进行分组,并且详细信息记录表示订单中的行项。每个行项都有单位价格和数量,如以下聚集函数所示: 

Total.sum( row["price"] * row["quantity"] ) 

此聚集函数对当前组的金额进行求和。如果将此聚集放在订单组脚中,则它将显示该订单的行项之和。如果将其放在客户组脚中,它就会显示该客户的所有订单的所有行项之和。并且,如果将其放在报告组脚中,它就会显示所有客户的所有行项之和。 

但是,应用程序有时需要访问另一分组级别的总计。例如,您可能想了解一个订单的总金额在该客户所有订单中所占的百分比。在这种情况下,必须访问除当前组以外的组的总计。可以使用分组参数来实现此目的: 

Total.sum( row.CreditLimit, null, "Customer" ); 

组参数可以是下列其中一项: 

Null,这表示当前分组级别。 
当前分组级别或更高分组级别的组的名称。此名称是报告设计中指定的名称。 
当前分组级别或更高分组级别的组的组键表达式。 
组级别的数字索引。0 表示整体总计,1 表示最高级别的组,依此类推。 
相对组索引:-1 表示比此组高一级的组,-2 表示比此组高两级的组,依此类推。 
特殊名称“Overall”,此名称引用数据集的整体总计。也可以使用静态属性 Total.OVERALL。 
下列示例演示了三类组参数: 

Total.sum( row["myCol"] null, null ); // 当前组 
Total.sum( row["myCol"], null, "Customer" ); // 按名称 
Total.sum( row["myCol"], null, "row[`custID']" ); // 按组键 
Total.sum( row["myCol"], null, 1 ); // 按组索引 
Total.sum( row["myCol"], null, "Overall" ); // 整体总计 
Total.sum( row["myCol"], null, 0 ); // 整体总计 

使用分组参数时,必须提供过滤器参数。如果不需要过滤器,请指定 null 作为过滤器值。不能将组索引括在引号中,它必须是数字。即,1 表示级别为 1 的组,而 "1" 表示名为 "1" 的组。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 学习基础知识 教程 1:构建简单的列表报告 任务 1:创建新项目 任务 2:创建新报告 任务 3:构建数据源 任务 4:构建数据集 任务 5:对报告进行布局 任务 6:对数据进行排序 任务 7:格式化报告 编辑列标题 格式化列标题 在同一行上显示名字和姓氏 增大行之间的间隔 任务 8:创建报告标题 接下来的步骤 连接至数据源 如何创建 BIRT 数据源 如何修改现有 BIRT 数据源 如何删除 BIRT 报告设计器数据源 如何对数据库或其他 JDBC 数据源指定连接信息 如何添加 JDBC 驱动程序 如何删除 JAR 文件的所有 JDBC 驱动程序 检索数据 如何创建数据集 如何更改数据集的数据源 如何对 JDBC 数据集编写 SQL 查询 如何对 JDBC 数据集指定存储过程 如何查看和更改输出列 如何更改“预览结果”出现的行数 如何将计算字段添加至数据集 如何连接数据集 如何定义动态查询 如何设置高速缓存首选项 绑定数据 如何创建列绑定 对报告进行布局 如何添加行或列 如何删除行或列 如何将数据集绑定至表 如何插入链接的图像 如何插入嵌入式图像 如何插入存储在数据源的图像 显示文本 如何使用动态文本元素 格式化报告内容 如何创建样式 如何导入样式 如何应用样式 如何修改样式 如何删除样式 如何创建格式化规则 如何修改格式化规则 如何删除格式化规则 如何通过拖动边界来调整列或行的大小 如何指定行高 如何指定列宽 如何合并表或网格单元格 如何有条件地隐藏元素 对数据进行排序和分组 教程 2:对报告数据进行分组 任务 1:打开报告设计 任务 2:将报告另存为新文件 任务 3:将贷记限额字段添加至数据集 任务 4:将贷记限额数据添加至报告 任务 5:按贷记限额对客户数据进行分组 任务 6:在组头显示贷记限额范围 任务 7:显示聚集信息 任务 8:格式化报告 除去详细信息行的贷记限额数据 在每组的第一行显示组标题 用一行分隔每组 任务 9:在 BIRT 报告查看器预览报告 任务 10:在目录显示贷记限额范围 聚集数据 如何在表达式构建器构造聚集表达式 编写表达式 过滤数据 如何过滤行以便从 JDBC 数据源检索数据 如何在数据集级别进行过滤 如何在报告元素级别进行过滤 如何在组级别进行过滤 使用户能够对数据进行过滤 使用户能够在查询运行时进行过滤 如何创建简单报告参数 如何在 SQL 查询插入参数标记 如何创建数据集参数 如何在运行报告时动态更新过滤条件 构建包含子报告的报告 教程 3:构建带有并排子报告的报告 任务 1:创建新报告 任务 2:构建数据源 任务 3:为客户报告构建数据集 任务 4:为订单子报告构建数据集 任务 5:为支付子报告构建数据集 任务 6:创建客户主报告 任务 7:创建订单子报告 任务 8:将订单子报告链接至客户主报告 任务 9:创建支付子报告 任务 10:将支付子报告链接至客户主报告 任务 11:仅显示具有订单或支付的客户 任务 12:并排显示子报告 任务 13:格式化报告 突出显示客户名 编辑列标题 更改日期格式 更改数字格式 增大元素之间的垂直间距 增大订单表与支付表之间的水平间距 在表周围添加边框 增大表边框与内容之间的间距 在报告使用图表 教程 4:创建图表 任务 1:设置报告设计文件 任务 2:在报告添加图表 任务 3:为图表提供数据 任务 4:查看图表 任务 5:更新图表标题 任务 6:优化图表外观 在图表显示数据 如何选择图表数据集 如何对类别系列数据进行分组 如何设置轴的数据类型和格式 如何更改图表预览首选项 对图表进行布局和格式化 如何设置图表背景色 如何定义定制颜色 如何为具有深度的图表或三维图表设置墙体色或地板色 如何设置图表区嵌入 如何为图形设置背景色 如何为图形区加上轮廓 如何为轴的图形区加上阴影 如何调整图表图形的放置和填充 如何格式化轴名 如何在仪表图或饼图添加或格式化值系列标题 如何修改轴线 如何修改轴刻度线 如何添加或修改网格线 设计多页报告 如何在页眉和页脚显示文本 如何指定页眉或页脚大小 如何避免首页出现页眉内容 添加交互式查看功能 如何创建书签 如何链接两个报告部分 如何链接两个报告 如何创建目录条目 如何导出报告数据 构建共享的报告开发框架 如何将元素添加到库 如何设置报告设计的主题 如何从报告设计删除主题 如何创建模板报告项

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值