Счетчик строк в подотчете - Jaspersoft - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть подотчет, который получает два параметра и, следовательно, генерирует столько отчетов, сколько существует комбинаций параметров. Я должен поместить счетчик строк в подотчет, но это не должно сбрасывать каждый отчет, сгенерированный подотчетом, но должен продолжаться нумерация. Это преобразование из кристаллического отчета. В кристаллическом отчете сделайте следующее:

общее числоВар J;

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

У меня есть подчиненный отчет, которому я передаю в запросе sql два параметра, чьи значения генерируются основным отчетом, комбинация этих параметров в подотчете генерирует серию отчетов в основном отчете, потому что подотчет находится в области подробностей. В подотчет я должен вставить переменную, которая подсчитывает количество строк, но когда я вставляю эту переменную, счетчик цифр c сбрасывается и начинает считать в новом отчете, созданном подотчетом, я бы хотел, чтобы счетчик не сбрасывался

Основной отчет

  • Деталь полосы
  • подотчет

    Подотчет

  • отчет 1 1 строка 2 строки 3 строки

  • отчет 2

1 строка

2 строки

3 строки

Я хотел бы иметь - отчет 1

1 строка

2 строки

3 строки

-отчет 2

4 ряды

5 рядов

6 рядов

Надеюсь, я был ясен У вас есть идеи? Кто-нибудь может мне помочь? Пожалуйста, большое спасибо всем

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете передавать туда и обратно переменную подсчета количества строк в подотчет, используя параметры и возвращаемые переменные.

Вам потребуется что-то вроде этого:

(в основном отчете)

<!-- 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...