0

我正在尝试使用 NetBeans 的 jasper 报告插件。我创建了我的连接(测试没问题) 我创建了 jrxml 并尝试预览它。

它是自动编译的(.jasper 出现),我有一条消息说:“文档没有页面”。

我读到的问题可能是数据源为空,但事实并非如此。所以我决定制作一个非常简单的 jrxml(静态:只有文本,不引用数据库的任何字段)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD JasperReport//EN"   "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

    <jasperReport name="report name" pageWidth="595" pageHeight="1500" columnWidth="535"  leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
        <background>
            <band/>
        </background>
        <title>
            <band height="79"/>
        </title>
        <pageHeader>
            <band height="35"/>
        </pageHeader>
        <columnHeader>
            <band height="61"/>
        </columnHeader>
        <detail>
          <band height="696">
            <textField isBlankWhenNull="false">
                <reportElement key="textField-23" x="0" y="274" width="449" height="134"/>
                <box>
                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                </box>
                <textElement textAlignment="Justified">
                    <font size="11" pdfFontName="Tiffy.ttf" isPdfEmbedded="true"/>
                </textElement>
                <textFieldExpression><![CDATA["Vous avez reçu il y a quelques mois une attestation de la Caisse Primaire d'Assurance Maladie destinée à réduire le coût de votre adhésion à une complémentaire santé.\n\n"+
"Si vous rencontrez des difficultés dans vos démarches d'accès aux droits et aux soins, le Service social de l'Assurance Maladie est à votre disposition pour vous informer, vous conseiller et vous accompagner.\n\n" + 
"Aussi, je propose de vous rencontrer à votre domicile le : "]]>
                </textFieldExpression>
            </textField>
        </band>
      </detail>
    <columnFooter>
        <band height="45"/>
    </columnFooter>
    <pageFooter>
        <band height="54"/>
    </pageFooter>
    <summary>
        <band height="42"/>
    </summary>
</jasperReport>

同样认为它可以编译,但我有消息


所以我添加了这两行:

<noData>no Data</noData>
<queryString>select * from dual</queryString>

什么都没有明显显示,但相同的消息..所以连接似乎没问题,不是吗?

4

4 回答 4

2

即使报表正文中只有静态文本,如果报表的 sql 为空,jasper 默认不显示任何内容。尝试添加“select 1 as dummy”作为您的查询,看看是否可以解决它。

于 2012-12-11T17:38:49.327 回答
1

尝试空查询并查看结果。从这个CodeRanch 论坛帖子中,我提取了以下内容:

当您的查询没有结果时,JR 提供了 3 个选项供您使用:(a) 生成空报告 (PDF),即没有页面 (b) 生成单个空白页面报告 (c)生成显示所有部分的报告,除了详细信息部分

这可以通过为元素 jasperReport 设置属性 [B}whenNoDataType[/B] 的值来完成。3 个可接受的值是:(a) NoPages (b) BlankPage (c) AllSectionsNoDetail

这对我有用。

于 2013-02-21T17:15:54.907 回答
0

要验证数据源是否没有问题,您可以No Data在报告的部分中放置静态文本。然后在报告的属性中

When No Data : No Data Section

如果报表中显示静态文本,那么数据源就是您的问题。

于 2012-12-12T03:00:26.003 回答
0

这个错误是因为报表已经被编译到编译它点击编译报表造成的。

于 2013-11-16T05:16:51.897 回答