为什么 Jasper Reports 在服务器中显示空报告,但在 jasper studio 中正确生成

Why Jasper Reports shows empty report in server, but generates correctly in jasper studio

我正在使用 Jasper Studio 6.6.0 和 Jasper server 7.1。

我已经使用来自指定 URL 的图像创建了一个简单的报告。

它在 Jasper Studio 中正确生成,但在服务器中它显示为空。

请参考附件图片:

服务器截图 碧玉截图

如果您想在没有数据源或空数据源的情况下在 JasperReport 中显示某些内容,那么您有两个选择:

1) 设置 When No Data Type 属性 on All Section No Detail[= Jasper Studio 中的 34=] 选项:

在 JRXML 中,可以通过在根 <jasperReport> 元素上设置 whenNoDataType="AllSectionsNoDetail" 属性来完成。

2) 或者您可以将没有数据时要显示的内容移动到报告的 无数据 区域:

在 JRXML 中,可以通过添加以下内容来完成:

<noData>
    <band height="110">
        <image>
            <reportElement x="0" y="0" width="240" height="110" uuid="d4b9e59b-896e-4881-92a2-c6707c975312"/>
            <imageExpression><![CDATA["https://my.image.url/getImage?name=penguin"]]></imageExpression>
        </image>
    </band>
</noData>

JasperReport 在默认情况下没有数据时呈现空白页面,而 JasperServer 显示 报告为空,因此 select 从上面的选项中您希望能够显示你想要的图像。

在没有提供数据源时不出现空页面的最好方法是欺骗 jasper 认为有数据源:

1) 定义数据适配器(一个简单的 .xml 文件)并将其放入报告文件夹中:

<?xml version="1.0" encoding="UTF-8" ?><emptyDataAdapter class="net.sf.jasperreports.data.empty.EmptyDataAdapterImpl"><name>Data Adapter fake</name><recordCount>1</recordCount></emptyDataAdapter>

2) Link 进入主报告:

<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="repor" language="javascript" pageWidth="612" pageHeight="792" whenNoDataType="NoDataSection" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isFloatColumnFooter="true" uuid="c0eee90e-1b1a-4f34-ad99-1112847752de">
<property name="net.sf.jasperreports.data.adapter" value="EmptyDataAdapter.xml"/>

前缀 "repo:" 到数据适配器的 属性 的值,如果 xml 部署在 jasper 服务器上。

属性 "whenNoDataType" 将被忽略。

其他详细信息here