【问题标题】:iReport query results break-down by week or dayiReport 查询结果按周或天细分
【发布时间】:2012-05-23 16:30:34
【问题描述】:

我使用 iReport 创建了一个在 JasperServer 上运行的简单 JasperReport。它根据创建时间戳从多个 MySQL 表中查询一些字段。我提供了报告中要涵盖的时间段的开始和结束时间戳作为 java.sql.Timestamp 类型的参数。这很好用。

我被要求介绍按周或按天显示报告数据细分的功能。我想从哪里开始获得一些想法。在这一点上,我认为我不能在报告查询中容纳这种“细分”,因为这个功能似乎超出了 SQL 的设计目标。我知道这听起来像是 OLAP 钻探,但我想尽可能避免使用 OLAP(学习曲线陡峭,期限紧迫)。

我的第一个想法是为每周或每天创建一个子报表。但这会给我留下任意数量的子报告(取决于报告涵盖的总时间段,每次执行都会有所不同),据我所知 iReport 不支持这一点。

【问题讨论】:

  • 你能解释一下你所说的故障是什么意思吗?您想按类型(天、周等)显示总数还是按 sql group-by 进行分组?
  • 例如,如果我有一列显示在指定时间段内每种产品售出的商品数量,我想将此列分解为“每周售出多少商品”这个时期”。

标签: jasper-reports ireport jasperserver


【解决方案1】:

这是分解报告的一种方法。

  1. 创建另一个参数 groupby,其中包含指定分组要求的值。值可以是数字、字符串或其他任何值,只要它对应于日、周、月等。可用分组。
  2. 创建一个报告组,细分,它将提供细分。组表达式将取决于 groupby 参数。表达式是记录上的日期,除了任何比 groupby 值更精细的细节都将被修剪。
  3. 创建一个变量total,用于对记录中的数据求和。该变量应在故障组中重置,并且可以打印在故障拖车带中。
  4. 确保 sql 查询按日期排序,以便 groupby 表达式有效。

如果您有任何问题,请告诉我。

【讨论】:

  • 谢谢。报告组可能是我正在寻找的。如果这能解决我的问题,我会告诉你的。
猜你喜欢
  • 2020-02-06
  • 1970-01-01
  • 2012-12-28
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多