Jasper reports iReport查询结果按周或天分类

Jasper reports iReport查询结果按周或天分类,jasper-reports,ireport,jasperserver,Jasper Reports,Ireport,Jasperserver,我使用iReport创建了一个简单的JasperReport,我在JasperServer上运行它。它根据一些MySQL表的创建时间戳查询它们的一些字段。我将在报告中提供期间的开始和结束时间戳,作为java.sql.Timestamp类型的参数。这个很好用 我被要求介绍在报告数据的几周或几天内显示细分的能力。我想知道从哪里开始。目前,我认为我无法在报表查询中容纳这种“分解”,因为这一特性似乎超出了SQL的设计目的。我知道这听起来像是OLAP演练,但我希望尽可能避免OLAP(陡峭的学习曲线,紧迫的

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

我被要求介绍在报告数据的几周或几天内显示细分的能力。我想知道从哪里开始。目前,我认为我无法在报表查询中容纳这种“分解”,因为这一特性似乎超出了SQL的设计目的。我知道这听起来像是OLAP演练,但我希望尽可能避免OLAP(陡峭的学习曲线,紧迫的截止日期)


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

以下是分解报告的一种方法

  • 创建另一个参数groupby,它保存指定分组要求的值。值可以是数字、字符串或其他任何形式,只要它对应于天、周、月等。。分组可用
  • 创建一个报告组“细分”,它将提供细分。组表达式将取决于groupby参数。表达式是记录上的日期,但任何比groupby值更细的细节都将被修剪
  • 创建一个变量total,它将对记录中的数据求和。变量应在故障组上重置,并可在故障拖车带中打印
  • 确保sql查询按日期排序,以便groupby表达式能够工作

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

    您能解释一下“分解”是什么意思吗?您想按类型(天、周等)显示总计还是按sql group by进行分组?例如,如果我有一列显示在指定时间段内每种产品售出的商品数量,我想将此列分解为“此期间每周售出的商品数量”。谢谢。报告组可能就是我要找的。如果这能解决我的问题,我会告诉你的。