0

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

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

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

4

1 回答 1

1

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

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

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

于 2012-05-23T08:30:34.160 回答