0

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

}

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

4

1 回答 1

1

您正在将 a 传递JREmptyDataSource给填充管理器。这实际上是不向报告传递任何数据。您应该使用其他数据源之一,可能是JRResultSetDataSource. 您可以在此处获得常用数据源的概述:链接

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

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

于 2013-02-05T11:37:14.067 回答