Jasper reports jasper中按参数值分组

Jasper reports jasper中按参数值分组,jasper-reports,reporting,Jasper Reports,Reporting,嗯,我不知道,也许我遗漏了什么,但我一直试图在jasper报表中对数据进行分组,但到目前为止,只有当组表达式是字段时,才会显示分组。是否可以按参数值而不是字段值对数据进行分组?i、 比如 <groupExpression><[!CDATA[$P{some_param}]]></groupExpression> 而不是 <groupExpression><[!CDATA[$F{some_field}]]></groupExpres

嗯,我不知道,也许我遗漏了什么,但我一直试图在jasper报表中对数据进行分组,但到目前为止,只有当组表达式是字段时,才会显示分组。是否可以按参数值而不是字段值对数据进行分组?i、 比如

<groupExpression><[!CDATA[$P{some_param}]]></groupExpression>
而不是

<groupExpression><[!CDATA[$F{some_field}]]></groupExpression>
在.jrxml文件中

是否可以按参数值而不是字段值对数据进行分组

是的,就像你提到的。您将不会有语法错误,并且将生成报告

问题是它可能不会带来你所期望的。组标注栏通常在每次更改groupExpression时打印。因此,基本上,该参数需要与报表生成过程中会发生变化的内容相关联,例如,用字段填充子报表的参数,子报表使用该参数作为组表达式。当然,它需要与一些有意义的东西联系起来,给你带来想要的行为

您可以在子报表中包含以下内容:

...
    <parameter name="START" class="java.util.Date"/>
    <parameter name="END" class="java.util.Date"/>
...
在你的超级报告的一个细节部分:

<subreport>
     <reportElement x="0" y="10" width="555" height="200" uuid="ac2c99da-f595-4498-a518-2bfb1f31b73c"/>
         <subreportParameter name="START">
                <subreportParameterExpression><![CDATA[$F{start}]]></subreportParameterExpression>
         </subreportParameter>
         <subreportParameter name="END">
                <subreportParameterExpression><![CDATA[$F{end}]]></subreportParameterExpression>
         </subreportParameter>
         ...
</subreport>

请注意,我假设字段$F{end}和$F{start}也是java.util.Date对象。

我可能错了,但是组引用数据,因此使用字段是有意义的,而参数则没有意义,因为无法判断参数是否属于某些数据。