iReport查询结果按周或日分解

时间:2012-05-22 18:09:53

标签: jasper-reports ireport jasperserver

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

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

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

1 个答案:

答案 0 :(得分:1)

这是打破报告的一种方法。

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