Jasper reports 如何计算详细信息栏跨越的页数?

Jasper reports 如何计算详细信息栏跨越的页数?,jasper-reports,Jasper Reports,是否有可能使用变量动态计算页面详细信息栏跨距的数量 页数是一个内置变量$V{PAGE_number},带有evaluationTime=“Report”的文本字段将显示报告中所有页面的计数,包括标题栏页面和摘要栏页面。如果这些页面(标题/摘要)是一个固定的数字,您可以从$V{PAGE_number} 例如,您有一个页面标题栏,没有摘要栏,详细信息将使用的页面数为: <textField evaluationTime="Report"> <reportElement x=

是否有可能使用变量动态计算页面详细信息栏跨距的数量

页数是一个内置变量
$V{PAGE_number}
,带有
evaluationTime=“Report”
的文本字段将显示报告中所有页面的计数,包括标题栏页面和摘要栏页面。如果这些页面(标题/摘要)是一个固定的数字,您可以从
$V{PAGE_number}

例如,您有一个页面标题栏,没有摘要栏,详细信息将使用的页面数为:

<textField evaluationTime="Report">
    <reportElement x="0" y="0" width="50" height="20" uuid="973faf10-8714-48de-ac22-b746b5f56b1a"/>
    <textElement textAlignment="Left" verticalAlignment="Middle"/>
    <textFieldExpression><![CDATA[$V{PAGE_NUMBER}-1]]></textFieldExpression>
</textField>

但是,如果这些不是固定的,那么标题栏或摘要栏将动态跨越多个页面,解决方案是声明一个变量

<variable name="detailBand_cnt" class="java.lang.Integer" incrementType="Page" calculation="Count">
    <variableExpression><![CDATA[1]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>

从0开始,在每页上以1递增(计数),这将起作用,因为变量仅在填充细节栏时计算,它不会在细节栏之前开始,也不会在细节栏之后继续

完整示例

使用空数据源运行,例如10条记录


结果(第3页,共7页)


页数是一个内置变量
$V{PAGE_number}
,带有
evaluationTime=“Report”
的文本字段将显示报告中所有页面的计数,包括标题栏页面和摘要栏页面。如果这些页面(标题/摘要)是一个固定的数字,您可以从
$V{PAGE_number}

例如,您有一个页面标题栏,没有摘要栏,详细信息将使用的页面数为:

<textField evaluationTime="Report">
    <reportElement x="0" y="0" width="50" height="20" uuid="973faf10-8714-48de-ac22-b746b5f56b1a"/>
    <textElement textAlignment="Left" verticalAlignment="Middle"/>
    <textFieldExpression><![CDATA[$V{PAGE_NUMBER}-1]]></textFieldExpression>
</textField>

但是,如果这些不是固定的,那么标题栏或摘要栏将动态跨越多个页面,解决方案是声明一个变量

<variable name="detailBand_cnt" class="java.lang.Integer" incrementType="Page" calculation="Count">
    <variableExpression><![CDATA[1]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>

从0开始,在每页上以1递增(计数),这将起作用,因为变量仅在填充细节栏时计算,它不会在细节栏之前开始,也不会在细节栏之后继续

完整示例

使用空数据源运行,例如10条记录


结果(第3页,共7页)


我们需要更多详细信息,您的问题是unclearThis,随附这个问题@Shelly,我看不出这有什么直接关系,我回答这个问题也是为了澄清您应该如何解决这个问题:),无论如何,我回答了这个问题,因为排除标题和摘要栏很有意思。我们需要更多详细信息,你的问题是unclearThis随附这个问题@Shelly我看不出这有什么直接关系,我回答这个问题也是为了澄清你应该如何解决这个问题:),无论如何我回答了这个问题,因为排除标题和摘要栏很有意思。哦,非常感谢。如果我要使用这个变量来打印页眉,那么打印的时间是什么expression@Shelly您可以按原样使用它,它将从0开始,然后在每个页面上增加细节栏,直到它到达摘要栏为止。但我并不认为应该使用这样的变量来决定应该在标题中打印什么。实际问题是什么?实际上,我在细节部分中有一个标题,只想在细节部分转到下一页时打印它。所以我想用这个变量?“你觉得这样不行吗?@Shelly header内部细节部分。。。如果细节转到下一页,请在前一页打印,否则不要打印。。。由于报告正在运行,所以这看起来像是一团乱,所以您无法在前一页知道后一页发生了什么。可能我没有正确理解您需要什么,或者您需要重新思考您的报告。哦,非常感谢。如果我要使用此变量打印页眉,打印时会打印什么expression@Shelly你可以按原样使用它,