我正在尝试导入net.sf.jasperreports.engine.export来导出汽车的所有细节(数量,客户端,构造函数,类型,颜色......)。所有信息都存储在数据库中。
事实上,我已经成功生成了不同类型的文件(XML,doc,docx,pdf ..),名称命名正确,大小设置为A4,文件可以位于正确的位置。但是所有的行都是空的,我想填充里面的数据。我想使用方法fill()并使用JasperFillManager来填充空白。但它不起作用。我不知道如何使用JasperFillManager来查找所有信息。有人能帮助我吗?
/**
* Initializes this method.
*
* @param model
* @param pageType
* @param orientation
* @param outputType
* @param destination
*/
private void init(ExportModel model, PAGE_TYPE pageType,
PAGE_ORIENTATION orientation, OUTPUT_TYPE outputType,
String destination){
this.model = model;
this.printerData = new PrinterData();
this.printerData.setUseSql(false);
this.printerData.setPageFormat(pageType);
this.printerData.setPageOrientation(orientation);
this.printerData.setOutputType(outputType);
this.printerData.setDestination(destination);
}
这是班级的初始。 我想写一个函数:
public static void fill()
{
try
{
JasperFillManager.fillReportToFile("static.jasper",null,new JREmptyDataSource());
} catch(JRException e)
{
e.printStackTrace();
}
}
}
非常感谢!如果有一些示例代码会更好!
答案 0 :(得分:1)
您正在将JREmptyDataSource
传递给填充经理。这实际上没有将数据传递给报告。您应该使用其他数据源之一,可能是JRResultSetDataSource
。您可以在此处查看常用数据源的概述:link。
如果您已经查询了数据库并获得了java.sql.ResultSet
,则可以使用它构建JRResultSetDataSource
并将其传递给填充管理器。
或者,您可以将数据库连接(作为java.sql.Connection
)传递给填充管理器,并将SQL查询放在报表设计中。