如何在碧玉索引中显示确切的章节页码?

时间:2019-01-04 09:51:04

标签: jasper-reports

几天以来,我一直在寻找有关问题的解决方案。我尝试以更简单的方式进行解释。我有一份主报告,其中收集了许多详细信息。每个详细信息都包含一个段落,该段落由一个段落标题和一个子报表组成,该报表可以链接到多个报表(因为我可以扫描更多的嵌套列表)。在主报告中,我有一个包含索引的详细信息。索引由文本标签组成。在每个文本标签附近,我们将其称为A,然后将链接到每个段落的页码放进去。我知道此数字应由一个变量表示,该变量应在子报表中随同一个变量,该变量用于存储段落页码。假设我可以在包含第二章的报告页面中尝试一下。在第二章的报告页中,如果我使用默认变量$ V {MASTER_CURRENT_PAGE},并且使用评估时间主数据,则可以读取正确的数字页,比方说数字5。现在的问题是将此数字取回并发回A(不论章节页面和母版页面之间有多少个子报表)。我阅读了一些文档,并且了解到要执行此操作,我应该在母版页中声明A变量,单击存储该变量的区域并返回值,并使用每个章节$ V {MASTER_CURRENT_PAGE}的名称来命名A。我该怎么做?我尝试做不同的测试,例如在每个章节页面中声明一个新变量,比如说B,然后将B链接到$ V {MASTER_CURRENT_PAGE},然后将A链接到B。在这种情况下,在母版页中时间为空(我尝试更改所有可能的评估时间,但到目前为止我还不知道如何做)。

在第一种情况下,仅在章节页面中有效,但我不知道如何将此值发送回母版:

  <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 :(得分:0)

好的,我尝试使示例比上一个示例容易。我有3个详细信息的masterPage。在第一个细节中,我的索引,在第二个中,第一章带有子报表,在第三个中,第二章带有子报表。如果在第1章所在的2°细节中放置一个名为subreport1_page_number的变量,则可以打印正确的当前页码,假设为3(可以通过设置评估时间= band来执行此操作)。现在,我在第1章文本标签旁边的第一个详细信息中添加了一个名为main_page_number的新变量,以显示3。我不知道如何设置评估时间,函数,重置类型等。我试图设置一些值,但是我得到null或其他值不正确。我向您显示母版页。谢谢。

<?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>