Jasper reports 我如何知道jasper reports是否正在评估摘要波段?

Jasper reports 我如何知道jasper reports是否正在评估摘要波段?,jasper-reports,Jasper Reports,我有报告页脚与页码和保密免责声明。我需要隐藏在摘要页保密免责声明,但需要页码,因为它是 我已在报告中添加了isSummaryNewPage=“true”和isSummaryWithPageHeaderAndFooter=“true” 是否有任何标志来检查页面是摘要页面还是详细页面(位于或内)?AFIK没有内置属性告诉您处于摘要栏位 然而,我认为在这种情况下,如果摘要栏位于多个页面上,或者出于任何其他原因,您不喜欢使用lastPageFooter栏,您可以安全地使用我称之为“参数破解”的解决方案

我有报告页脚与页码和保密免责声明。我需要隐藏在摘要页保密免责声明,但需要页码,因为它是

我已在报告中添加了
isSummaryNewPage=“true”和isSummaryWithPageHeaderAndFooter=“true”


是否有任何标志来检查页面是摘要页面还是详细页面(位于
内)?

AFIK没有内置属性告诉您处于摘要栏位

然而,我认为在这种情况下,如果摘要栏位于多个页面上,或者出于任何其他原因,您不喜欢使用
lastPageFooter
栏,您可以安全地使用我称之为“参数破解”的解决方案

参数破解
  • 添加一个参数(也可以使用
    列表
    映射
    或其他类似类)。用一个空的
    HashSet
    来实例它

    <parameter name="paramHack" class="java.util.Set">
        <defaultValueExpression><![CDATA[new java.util.HashSet()]]> </defaultValueExpression>
    </parameter>
    
  • 您现在可以使用
    $p{paramHack}.contains(“summary”)
    来了解文本字段是否已被评估过,以便了解我们是否已到达摘要栏,而不是打印“机密免责声明”

    注意:我使用了另一个名称,因为这将在最后一个细节栏页上的
    pageFooter
    之前设置,所以不能对
    pageFooter
    pageHeader
    使用相同的标志名称。要在
    pageFooter
    的最后一个细节栏页上澄清,
    $P{paramHack}.contains(“detail_end”)
    true
    ,但
    $P{paramHack}.contains(“summary”)
    false


    然后在页眉中使用另一个标志来确定是否显示内容。

    它对页脚有效,但该技术对页眉内容无效。请帮忙。我有多页的摘要。第一页显示内容,其余部分隐藏。@Yogeendra我已经更新了帖子,您使用了类似的方法,但使用了一个新的标志,途中使用了一个假组,groupFooter标志将在summary标志的pageHeader之前进行评估,但请注意,您需要另一个标志(因此使用另一个名称),因为它是在最后一个详细标注栏页面的页脚之前计算的;)
    <printWhenExpression><![CDATA[$P{paramHack}.add("summary") || true]]></printWhenExpression>
    
    <printWhenExpression><![CDATA[!$P{paramHack}.contains("summary")]]></printWhenExpression>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <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="WhenSummary" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isSummaryNewPage="true" isSummaryWithPageHeaderAndFooter="true" uuid="bbec9a5c-d9fc-4e29-b2b0-cea6d7a50394">
        <parameter name="paramHack" class="java.util.Set">
            <defaultValueExpression><![CDATA[new java.util.HashSet()]]></defaultValueExpression>
        </parameter>
        <queryString>
            <![CDATA[]]>
        </queryString>
        <pageHeader>
            <band height="35" splitType="Stretch"/>
        </pageHeader>
        <detail>
            <band height="40">
                <staticText>
                    <reportElement x="0" y="0" width="545" height="40" uuid="74f6c3de-9867-4895-b7bb-c9cdb124fbdc"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font size="26"/>
                    </textElement>
                    <text><![CDATA[First just an empty page]]></text>
                </staticText>
            </band>
        </detail>
        <pageFooter>
            <band height="40" splitType="Stretch">
                <textField>
                    <reportElement x="50" y="0" width="440" height="40" uuid="af5f6f4c-fe77-4f07-a080-035230123f50">
                        <printWhenExpression><![CDATA[!$P{paramHack}.contains("summary")]]></printWhenExpression>
                    </reportElement>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font size="26"/>
                    </textElement>
                    <textFieldExpression><![CDATA["Confidential"]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="493" y="0" width="60" height="40" uuid="78b7b8bd-4189-42ea-8120-5a09a8b5701c"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font size="22"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
                </textField>
            </band>
        </pageFooter>
        <summary>
            <band height="40" splitType="Stretch">
                <staticText>
                    <reportElement x="0" y="0" width="545" height="40" uuid="9ee45216-e7e1-4e5a-bbed-1f057ade1967">
                        <printWhenExpression><![CDATA[$P{paramHack}.add("summary") || true]]></printWhenExpression>
                    </reportElement>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font size="26"/>
                    </textElement>
                    <text><![CDATA[Summary page]]></text>
                </staticText>
            </band>
        </summary>
    </jasperReport>
    
    <group name="FakeGroup">
        <groupExpression><![CDATA["dummy"]]></groupExpression>
        <groupFooter>
            <band height="1">
                <textField>
                    <reportElement x="0" y="0" width="553" height="1" uuid="373fc74e-011a-4f03-9cd4-9d5d9464ab06">
                        <printWhenExpression><![CDATA[$P{paramHack}.add("detail_end") && false]]></printWhenExpression>
                    </reportElement>
                    <textFieldExpression><![CDATA["Hidden used just to know when detail band ends"]]></textFieldExpression>
                </textField>
            </band>
        </groupFooter>
    </group>