首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何增加变量来计数标题、标题?

如何增加变量来计数标题、标题?
EN

Stack Overflow用户
提问于 2016-08-29 16:03:59
回答 1查看 94关注 0票数 1

我有一个JasperReports模板,在这里我需要计算不同的“细节乐队”的标题。

现在,由于标题可以更改(一些数据集可以是空的,然后整个带就不会呈现),所以我想为此使用一个变量。

内建变量没有套件,因为它们没有"detail_band_count“之类的东西。

此外,在一个细节乐队中并不总是有一个标题,可以有1或10个以下的细节乐队,其中2-10个乐队与在第1组中声明的标题相同。

但是,我设法以这种方式创建了一个变量;但是它只计算页面数。

是否有可能在变量访问上调用变量表达式?所以一旦我写了$V{headline_COUNT},它就会增加

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-30 09:49:30

我很难理解如何使用变量,您可能需要重新构造报表,找到分组策略,因为您需要将incrementType设置为一个可用的值,而且您不能选择“头行”或类似的值。

但是,有一个解决方法可以用来计算使用参数map $P{REPORT_PARAMETERS_MAP}显示特定元素的时间。

用默认值定义计数参数(避免以null开头)

代码语言:javascript
复制
<parameter name="countReportElement" class="java.lang.Integer" isForPrompting="false">
    <defaultValueExpression><![CDATA[0]]></defaultValueExpression>
</parameter>

现在,在您希望计数的任何文本字段或其他元素上,您可以使用一个假的printWhenExpression,以增量这个参数。

代码语言:javascript
复制
<reportElement x="0" y="262" width="320" height="25" uuid="8fa62997-ffa2-4777-923b-999d372ce09e">
   <printWhenExpression><![CDATA[($P{REPORT_PARAMETERS_MAP}.put("countReportElement",((Integer)$P{REPORT_PARAMETERS_MAP}.get("countReportElement"))+1))!=null?true:false]]></printWhenExpression>
</reportElement>

注意,三元操作总是计算true (因为Map.put(K键,V值)并将其放入参数映射中,则每次计算元素时,值增加一个。

显示,您可以直接访问参数映射的计数值。

代码语言:javascript
复制
 <textField>
    <reportElement x="57" y="13" width="100" height="20" uuid="7ca30577-0ca9-47c2-91ae-c7002fbbfbf7"/>
    <textFieldExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}.get("countReportElement")]]></textFieldExpression>
</textField>

确保在报告中将evaluationTime设置为需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39210544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档