Число страниц - это встроенная переменная $V{PAGE_NUMBER}
, в текстовом поле с evaluationTime="Report"
будет показано количество всех страниц в отчете, включая страницы заголовка и сводные страницы. Если эти страницы (заголовок / сводка) являются фиксированным числом, вы можете просто вычесть это из $V{PAGE_NUMBER}
Например, у вас есть полоса заголовка на 1 страницу и нет сводной полосы, число страниц, которые будут использоваться в деталях:
<textField evaluationTime="Report">
<reportElement x="0" y="0" width="50" height="20" uuid="973faf10-8714-48de-ac22-b746b5f56b1a"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}-1]]></textFieldExpression>
</textField>
Однако, если они не исправлены, следовательно, либо заголовок, либо сводная полоса будут динамически охватывать несколько страниц, решение - объявить переменную.
<variable name="detailBand_cnt" class="java.lang.Integer" incrementType="Page" calculation="Count">
<variableExpression><![CDATA[1]]></variableExpression>
<initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
Начните с 0, увеличивайте (считайте) на каждой странице с 1, это будет работать, поскольку переменные оцениваются только при заполнении детального диапазона, оно не будет начинаться до или продолжаться после детального диапазона.
Полный пример
Запуск с пустым источником данных, например, 10 записей
<?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="CountDetailsPage" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isTitleNewPage="true" isSummaryNewPage="true" isSummaryWithPageHeaderAndFooter="true" uuid="1070117d-1c41-40e8-85cd-d04958412665">
<queryString>
<![CDATA[]]>
</queryString>
<variable name="detailBand_cnt" class="java.lang.Integer" incrementType="Page" calculation="Count">
<variableExpression><![CDATA[1]]></variableExpression>
<initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="d5206823-c0fe-416a-aa9f-fdc6dc584f2b"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Title page 1]]></text>
</staticText>
<break>
<reportElement x="0" y="38" width="100" height="1" uuid="465c7a1c-d59f-486d-8730-2e1a853f0b12"/>
</break>
<staticText>
<reportElement x="0" y="50" width="100" height="20" uuid="7c726918-e7d7-4a47-a5f4-a87561ef08fb"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Title page 2]]></text>
</staticText>
</band>
</title>
<detail>
<band height="125" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="550" height="20" uuid="ae3566d9-c2a2-41e5-99fa-cd184f1b1eee"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[On detail]]></text>
</staticText>
</band>
</detail>
<pageFooter>
<band height="54" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="70" height="20" uuid="38b0a124-e61b-46cb-8b4e-60e2f4ccd066"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA["Detail Page " + $V{detailBand_cnt}]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="70" y="0" width="50" height="20" uuid="c5f945f0-895d-4481-8895-6f945a070450"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[" of " + $V{detailBand_cnt}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="407" y="0" width="95" height="20" uuid="98da264d-689f-4382-99b2-f304e0202555"/>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA["Totale Page " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="502" y="0" width="50" height="20" uuid="973faf10-8714-48de-ac22-b746b5f56b1a"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[" of " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height="100" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="ac518697-d616-47a9-a029-dfbb0d5f7ea3"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Summary Page1]]></text>
</staticText>
<break>
<reportElement x="0" y="30" width="100" height="1" uuid="6f92ae5a-2786-407f-b2bf-62c32287ae88"/>
</break>
<staticText>
<reportElement x="0" y="40" width="100" height="20" uuid="0e61769d-5bd0-4224-b905-425e90e0d87b"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Summary Page 2]]></text>
</staticText>
<break>
<reportElement x="0" y="60" width="100" height="1" uuid="6f92ae5a-2786-407f-b2bf-62c32287ae88"/>
</break>
<staticText>
<reportElement x="0" y="70" width="100" height="20" uuid="0e61769d-5bd0-4224-b905-425e90e0d87b"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Summary Page 3]]></text>
</staticText>
</band>
</summary>
</jasperReport>
Результат (стр. 3 из 7)