我使用ireport设计工具生成PDF报告。到这里很好。
我的问题是:
如果数据库中没有数据,则显示空白的pdf页面。目前,如何在pdf中显示“此请求未找到数据”?
答案 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>