我的jrxml文件创建一个空的PDF文件

时间:2014-12-13 15:26:18

标签: java jasper-reports

我使用jrxml工具创建了iReport Designer文件。它在iReport Designer工具中运行良好。现在我尝试使用jrxml程序编译Java文件。 MySQL文件中存在jrxml查询。我认为jrxml文件没问题,因为它在iReport Designer工具中按预期工作。

当我运行我的Java程序来编译并使用PDF生成报告的JREmptyDataSource文件时,它生成pdf而没有填充任何数据,但图形和静态文本是在生成的pdf中。我知道自从我使用JREmptyDataSource以来没有数据。

然后我创建了与数据库的连接。如果一切正常,它应该生成包含相关数据的PDF文件。不是吗?

这是我的代码

try {    

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_db", "root", "123");
    System.out.println("INFO: Connected succesfully to the database!");

    JasperReport jasperReport = JasperCompileManager.compileReport("J:/reports using iReport tools/installmentListForACustomer.jrxml");
    // JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,new HashMap(), new JREmptyDataSource());
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,new HashMap(), c);
    JasperExportManager.exportReportToPdfFile(jasperPrint, "fromXml.pdf");

    System.out.println("INFO: Success!");
} catch (Exception e) {

    System.out.println("EXCEPTION: " + e + " \n");
    e.printStackTrace();
}

但问题是,即使它生成pdf文件,它也不包含任何内容。甚至不是静态文本和图形。它是完全空白的。

查询字符串位于jrxml文件中。数据库连接也是成功的。我无法弄清楚为什么它会生成一个空PDF。

请您解释一下为什么不生成与数据库相关的pdf文件?

1 个答案:

答案 0 :(得分:0)

您的示例中有一个可能的报告配置:

When No Data

您可以指定在没有可用数据时您的报告应显示的​​内容。这可能是一种解释(您的查询可能无法正常工作),因此不会显示任何内容。

要检查这一点,您可以尝试输入When no Data = No Data Section并添加"无数据"在你的报告中。