JasperReports Как сделать нумерацию страниц в Excel - PullRequest
2 голосов
/ 14 декабря 2011

Я пытаюсь поместить номера страниц / разрывы внизу каждой страницы и заголовки столбцов вверху, поэтому при печати из Excel все страницы нумеруются и возглавляются. Это не должно быть таким большим делом, верно? Но, к сожалению, это так, независимо от того, какой подход я попробовал, я просто не могу получить номер страницы и разрыв страницы внизу страниц - они находятся где-то еще, но внизу. Я помещаю «Страница X из Y» в раздел «Нижний колонтитул страницы», «Игнорировать пагинацию» НЕ проверяется, и когда я генерирую отчет, у меня появляется страница X или Y после каждых 4 строк данных. Я увеличил высоту страницы в 3-4 раза от стандартной высоты формата Letter Landscape, и это изменило нижний колонтитул, который будет напечатан после 18-20 строк данных - это ненадежный способ его настройки. Также я попытался поместить выражение «Разрыв страницы с печатью при печати», чтобы печатать его каждые 20 строк, но это все еще не точно, поскольку на первой странице у меня меньше строк данных из-за заголовка отчета - если я настрою его так, чтобы он был правильно на 1-й странице - он напечатает его где-то посередине на следующих страницах. Я пропускаю что-то очевидное в дизайне, как поставить нижний колонтитул со страницей #? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Я решил эту проблему с помощью параметра net.sf.jasperreports.export.xls.fit.height .

Я установил высоту отчетаи net.sf.jasperreports.export.xls.fit.height свойство отчета с тем же значением.

Пример:

<jasperReport ... pageWidth="595" pageHeight="800" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    ...
    <parameter name="net.sf.jasperreports.export.xls.fit.height" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[800]]></defaultValueExpression>
    </parameter>
    ...
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{field1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{field2}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <pageFooter>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="433" y="0" width="80" height="20"/>
                <textElement textAlignment="Right"/>
                <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement x="513" y="0" width="40" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
            </textField>
        </band>
    </pageFooter>
</jasperReport>

Результат (предварительный просмотр в MS Excel):

Result in MS Excel

0 голосов
/ 14 декабря 2011

Несколько лет назад я попробовал то же самое и не смог решить.Если между ними не произошло резкого изменения (и я мгновенно удаляю этот ответ, если он есть), вы потерялись.

Извините.

...