使用ireport设计工具生成jasper报告

时间:2014-07-09 06:26:15

标签: java jasper-reports

我使用ireport设计工具生成PDF报告。到这里很好。

我的问题是:

如果数据库中没有数据,则显示空白的pdf页面。目前,如何在pdf中显示“此请求未找到数据”?

2 个答案:

答案 0 :(得分:1)

模板有一个属性WhenNoDataType。

只需将其设置为WhenNoDataType:AllSectionsNoDetail。

这将包含模板(静态字段),但没有来自数据库的动态数据。

如果您只想打印一些消息,则必须稍微更改设计。您需要在报告开头放置一个条件,以检查数据是否来自数据库,并采取相应的行动。

答案 1 :(得分:0)

如果您想在没有数据时没有显示报告的内容(没有标题,页眉,页脚等),那么您应该在报告中添加noData个频段并将消息放在那里。然后将whenNoDataType报告参数更改为NoDataSection

来自 JasperReports终极指南

  

如果在报告模板中定义了<noData>部分,并且数据源为空,那么<noData>部分将是填充时考虑的唯一部分

示例:

<?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>