子报告中的行计数器--Jaspersoft公司。

问题描述 投票:0回答:1

我有一个子报告,接收两个参数,因此产生了许多报告,因为有参数的组合,我必须把一个行计数器在子报告中,但这必须不重置子报告产生的每一个报告,但必须继续编号.这是一个转换从水晶报告在水晶报告中这样做。

共享编号Var J;

if trim({field})  <> '' then J:=J+1;

我有一个子报表,我在sql查询中传递了两个参数,它们的值是由主报表生成的,这些参数在子报表中的组合会在主报表中生成一系列的报表,因为子报表是在细节带中的.在子报表中,我必须插入一个计算行数的变量,但当我插入这个变量时,数字计数器被重置,并在子报表生成的新报表中开始计数,我希望计数器不要重置。

主要报告

  • 乐队的细节
  • 子报告

    子报告

  • 报告11行2行3行

  • 报告二

1行

2行

3行

我想拥有--报告1

1行

2行

3行

-报告2

4行

5行

6行

我希望我说的很清楚你有什么想法吗?有人能帮我吗?拜托了非常感谢大家

jasper-reports subreport
1个回答
0
投票

你可以使用参数和返回变量来回传递一个运行中的行数变量到子报表中。

你需要这样的东西。

(在主报表中)

<!-- variable that stores the running row count in the master report -->
        <variable name="SubreportRowCount" class="java.lang.Integer" calculation="System">
            <initialValueExpression>0</initialValueExpression>
        </variable>
...
                <subreport>
...
<!-- pass the current value to the subreport -->
                    <subreportParameter name="InitialRowCount">
                        <subreportParameterExpression>$V{SubreportRowCount}</subreportParameterExpression>
                    </subreportParameter>
...
<!-- get back the updated value from the subreport -->
                    <returnValue subreportVariable="RunningRowCount" toVariable="SubreportRowCount"/>
    ...
                </subreport>

(在分报告中)

<!-- parameter that receives the initial value from the master -->
    <parameter name="InitialRowCount" class="java.lang.Integer"/>
...
<!-- running row count variable -->
    <variable name="RunningRowCount" class="java.lang.Integer">
        <variableExpression>$P{InitialRowCount} + $V{REPORT_COUNT}</variableExpression>
    </variable>
...
<!-- show the running count in a text element -->
            <textField>
...
                <textFieldExpression>$V{RunningRowCount}</textFieldExpression>
            </textField>
© www.soinside.com 2019 - 2024. All rights reserved.