我使用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文件?
答案 0 :(得分:0)
您的示例中有一个可能的报告配置:
When No Data
您可以指定在没有可用数据时您的报告应显示的内容。这可能是一种解释(您的查询可能无法正常工作),因此不会显示任何内容。
要检查这一点,您可以尝试输入When no Data = No Data Section
并添加"无数据"在你的报告中。