Как я могу показать точный номер страницы главы в индексе яшмы? - PullRequest
0 голосов
/ 04 января 2019

Я искал решение проблемы, о которой я думаю, уже несколько дней.Я пытаюсь объяснить это более простым способом.У меня есть главный отчет, где я собираю много деталей.Каждая деталь содержит абзац, состоящий из заголовка абзаца и вложенного отчета, который может быть связан с несколькими отчетами (поскольку я мог отсканировать больше вложенного списка).В основном отчете у меня есть деталь, которая содержит индекс.Индекс состоит из текстовых меток.Рядом с каждой текстовой меткой, назовем это A, я бы поставил номер страницы, связанный с каждым абзацем.Я понял, что это число должно быть представлено переменной, которая должна быть привязана к переменной в подотчете, который хранит номер страницы абзаца.Допустим, я могу попробовать это на странице отчета, которая содержит вторую главу.На странице отчета второй главы, если я использую переменную по умолчанию $ V {MASTER_CURRENT_PAGE}, с помощью мастера оценки времени я могу прочитать правильную страницу с номерами, скажем, номер 5. Теперь проблема в том, чтобы взять это число и отправить обратно в A (этоне имеет значения, сколько вложенных отчетов у меня есть между страницей главы и главной страницей).Я прочитал некоторую документацию и понял, что для этого я должен объявить на главной странице переменную A, щелкнуть по диапазону, в котором она хранится, и перейти к возвращаемым значениям и приливу A с названием каждой главы $ V {MASTER_CURRENT_PAGE}.Как мне это сделать?Я пытался сделать разные тесты, например, объявить новую переменную на каждой странице главы, скажем, B, и связать B с $ V {MASTER_CURRENT_PAGE}, а после ссылки A на B. В этом случае на главной странице я получил каждыйtime null (я пытался изменить все возможное время оценки, но пока не понимаю, как это сделать).

В первом случае работает только на странице главы, но я не знаю, как отправитьвернуться на главную страницу это значение:

  <textField evaluationTime="Master">
  <reportElement x="170" y="0" width="240" height="30" uuid="0bc4318d-5b1b-4add-bcc7-422bc299096a"/>
 <textFieldExpression><![CDATA[$V{MASTER_CURRENT_PAGE}]]> </textFieldExpression>
     </textField>

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

<parameter name="custom_page" class="java.lang.Integer">
        <defaultValueExpression><![CDATA[$V{MASTER_CURRENT_PAGE}]]></defaultValueExpression>
    </parameter>

Спасибо всем.

1 Ответ

0 голосов
/ 08 января 2019

Хорошо, я пытаюсь сделать пример проще, чем предыдущий. У меня есть мастер-страница с 3 деталями. В первом подробно описан мой указатель, во второй - первая глава с вложенным отчетом, а в третьей - вторая глава с вложенным отчетом. Если я помещу переменную с именем subreport1_page_number в детали 2 °, где находится глава 1, я могу напечатать правильный номер страницы, скажем, 3 (я могу сделать это, установив время оценки = диапазон). Теперь я поместил новую переменную, названную main_page_number, в первую деталь рядом с текстовой меткой главы 1, чтобы показать 3. Я не знаю, как установить время оценки, функцию, тип сброса и так далее. Я пытался установить некоторые значения, но я получаю нулевые или другие значения не правильно. Я показываю вам главную страницу. Спасибо.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.5.1.final utlizzo versione della libreria JasperReports6.5.1  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="multitable" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isSummaryWithPageHeaderAndFooter="true" uuid="1c6dc1c9-67af-43d5-bf1e-9243557c8048">
    <parameter name="firstSubreport" class="net.sf.jasperreports.engine.JasperReport" isForPrompting="false"/>
    <parameter name="secondSubreport" class="net.sf.jasperreports.engine.JasperReport" isForPrompting="false"/>
    <variable name="subreport1_page_number" class="java.lang.Integer" resetType="None">
        <variableExpression><![CDATA[$V{PAGE_NUMBER}]]></variableExpression>
    </variable>
    <variable name="main_page_number" class="java.lang.Integer" resetType="None">
        <initialValueExpression><![CDATA[$V{subreport1_page_number}]]></initialValueExpression>
    </variable>
    <detail>
        <band height="104">
            <frame>
                <reportElement x="0" y="0" width="351" height="90" uuid="befbbb8d-e0c1-48a2-b552-30c8bfa2e1ea"/>
                <staticText>
                    <reportElement x="0" y="0" width="100" height="15" uuid="940a502b-f566-4d58-8627-bbedc63f8738"/>
                    <textElement>
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[ Index]]></text>
                </staticText>
                <textField hyperlinkType="LocalAnchor">
                    <reportElement x="70" y="46" width="172" height="15" uuid="4a5ebf00-2f22-429a-a83e-7a67f7a52f41"/>
                    <textElement>
                        <font isUnderline="true"/>
                    </textElement>
                    <textFieldExpression><![CDATA["Second Chapter"]]></textFieldExpression>
                </textField>
                <textField hyperlinkType="LocalAnchor">
                    <reportElement x="70" y="30" width="172" height="15" uuid="d6e6eba8-6a6a-44d5-9313-b206ad4c975b"/>
                    <textElement>
                        <font isUnderline="true"/>
                    </textElement>
                    <textFieldExpression><![CDATA["First Chapter"]]></textFieldExpression>
                </textField>
                <textField evaluationTime="Report">
                    <reportElement x="240" y="20" width="100" height="30" uuid="95d41927-54a7-4189-8067-84d5dce489a2"/>
                    <textFieldExpression><![CDATA[$V{main_page_number}]]></textFieldExpression>
                </textField>
            </frame>
        </band>
        <band height="131">
            <textField>
                <reportElement x="4" y="5" width="220" height="18" uuid="42eed16d-33c0-47a3-b8ed-14a4069805ce"/>
                <textElement>
                    <font fontName="Verdana" size="12" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA["First Chapter"]]></textFieldExpression>
            </textField>
            <break>
                <reportElement x="0" y="130" width="99" height="1" uuid="e79da7f1-796b-4e1a-87e4-a4ffb3789c84"/>
            </break>
            <subreport>
                <reportElement x="0" y="30" width="520" height="50" uuid="85501fc3-72c6-4679-9f1e-043d09a31567"/>
                <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("firstSubreport")]]></dataSourceExpression>
                <subreportExpression><![CDATA[$P{firstSubreport}]]></subreportExpression>
            </subreport>
            <textField evaluationTime="Band">
                <reportElement x="260" y="1" width="100" height="30" uuid="8a6ae7b1-7243-4bae-8e96-4a53cc6de69a"/>
                <textFieldExpression><![CDATA[$V{subreport1_page_number}]]></textFieldExpression>
            </textField>
        </band>
        <band height="131">
            <printWhenExpression><![CDATA[$F{praticaRatingPrecedenteAttivi}==true]]></printWhenExpression>
            <subreport>
                <reportElement x="0" y="38" width="510" height="40" uuid="95fc7b61-3783-4c4c-9e8b-c717b02a279f"/>
                <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("secondSubreport")]]></dataSourceExpression>
                <subreportExpression><![CDATA[$P{secondSubreport}]]></subreportExpression>
            </subreport>
            <textField>
                <reportElement x="4" y="5" width="220" height="18" uuid="9a7428b8-7854-4d52-a304-0d271b7e4f22"/>
                <textElement>
                    <font fontName="Verdana" size="12" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA["Second Chapter"]]></textFieldExpression>
            </textField>
            <break>
                <reportElement x="0" y="130" width="99" height="1" uuid="5941ea3b-dea8-466a-92cd-4fa02a1600cc"/>
            </break>
        </band>
    </detail>
</jasperReport>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...