Matty
Matty

Reputation: 35

Jasper report excel: isIgnorePagination doesn't work when dealing with jr:table

I've created a report with table (jr:table), but when I am trying to export it as excel, pagination is not ignored(table headers are repeated, and table content breaks). I've added isIgnorePagination="true", but it doesn't help. How does ignore pagination for table content?

Upvotes: 0

Views: 590

Answers (1)

zellers
zellers

Reputation: 185

A possible workaround for this is to put a Print When Expression of

$V{PAGE_NUMBER} == 1

to the Row Properties of your Column Header.

<jr:columnHeader>
    <printWhenExpression><![CDATA[$V{PAGE_NUMBER} == 1]]></printWhenExpression>
</jr:columnHeader>

Adding these properties to the report itself should take care of the rest:

<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
<property name="net.sf.jasperreports.export.xls.white.page.background" value="false"/>

And here is a working example:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.20.0.final using JasperReports Library version 6.19.0  -->
<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="Blank_A4_10" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7e7f5a11-768e-423d-bc20-f349ad0f4a9b">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
    <property name="net.sf.jasperreports.export.xls.white.page.background" value="false"/>
    <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="Dataset1" uuid="2431f4a9-44f8-4875-954d-2014e59501c6">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
        <queryString>
            <![CDATA[]]>
        </queryString>
        <field name="common" class="java.lang.String"/>
    </subDataset>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <title>
        <band height="90" splitType="Stretch">
            <componentElement>
                <reportElement x="0" y="0" width="170" height="90" uuid="853b4734-645c-49cf-bced-50f32d372df9">
                    <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
                    <property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
                    <property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
                    <property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
                </reportElement>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="Dataset1" uuid="603adceb-93c2-4ca7-872d-edcbeb4d71a4">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JsonDataSource(new URL("https://restcountries.com/v3.1/all").openStream(),"name")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="170" uuid="cd6c2544-09be-4dbc-9bf8-eacc64676e82">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
                        <jr:tableHeader style="Table_TH" height="30">
                            <staticText>
                                <reportElement x="0" y="0" width="170" height="30" uuid="695d454d-8542-4d13-a091-ea3c9096d4b9"/>
                                <text><![CDATA[Table Header]]></text>
                            </staticText>
                        </jr:tableHeader>
                        <jr:columnHeader style="Table_CH" height="30">
                            <staticText>
                                <reportElement x="0" y="0" width="170" height="30" uuid="12ce7968-1c18-4875-ba98-c2d58032f878"/>
                                <text><![CDATA[Column Header]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <textField>
                                <reportElement x="0" y="0" width="170" height="30" uuid="9d113dbd-8b30-43fb-8560-3dcd608d2967"/>
                                <textFieldExpression><![CDATA[$F{common}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:columnHeader>
                        <printWhenExpression><![CDATA[$V{PAGE_NUMBER} == 1]]></printWhenExpression>
                    </jr:columnHeader>
                </jr:table>
            </componentElement>
        </band>
    </title>
</jasperReport>

Upvotes: 1

Related Questions