Surendra
Surendra

Reputation: 29

generating jasper reports using ireport designer tool

I generated PDF report using ireport designer tool. Upto here it is fine.

My question is :

If there is no data in the database then it is showing blank pdf page. At this time how can i show "No data found for this request" in pdf?

Upvotes: 0

Views: 461

Answers (2)

GenericJon
GenericJon

Reputation: 8986

If you want to show none of the content of your report when there is no data (no title, headers, footers, etc.) then you should add a noData band to your report and put the message there. Then change the whenNoDataType report parameter to NoDataSection.

From the JasperReports Ultimate Guide:

If the <noData> section is defined in the report template, and if the data source is empty, then the <noData> section will be the only one taken into account at fill time

Example:

<?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="report1" 
        whenNoDataType="NoDataSection">

    <pageHeader>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <text><![CDATA[Page Header]]></text>
            </staticText>
        </band>
    </pageHeader>
    <detail>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <text><![CDATA[Detail]]></text>
            </staticText>
        </band>
    </detail>
    <pageFooter>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <text><![CDATA[Page Footer]]></text>
            </staticText>
        </band>
    </pageFooter>
    <noData>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="555" height="20"/>
                <text><![CDATA[No data found for this request]]></text>
            </staticText>
        </band>
    </noData>
</jasperReport>

Upvotes: 0

Darshan Lila
Darshan Lila

Reputation: 5868

There is a property of the template WhenNoDataType.

Just set it to WhenNoDataType: AllSectionsNoDetail.

This will have the template(static fields) but no dynamic data from database.

If you just want to print some message than you will have to change the design up a bit. You would need to place a condition at the beginning of your report to check if data is coming from database, and act accordingly.

Upvotes: 1

Related Questions