JasperFillManager用于填充导出的文件

时间:2013-02-04 16:07:12

标签: java jasper-reports export-to-excel export-to-pdf

我正在尝试导入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();
    }
}

}

非常感谢!如果有一些示例代码会更好!

1 个答案:

答案 0 :(得分:1)

您正在将JREmptyDataSource传递给填充经理。这实际上没有将数据传递给报告。您应该使用其他数据源之一,可能是JRResultSetDataSource。您可以在此处查看常用数据源的概述:link

如果您已经查询了数据库并获得了java.sql.ResultSet,则可以使用它构建JRResultSetDataSource并将其传递给填充管理器。

或者,您可以将数据库连接(作为java.sql.Connection)传递给填充管理器,并将SQL查询放在报表设计中。