将值动态传递给JASPER API以生成报告

时间:2011-08-10 06:42:49

标签: jasper-reports ireport

我使用Jasper报告生成报告。 在queryString中的JRXML文件中,形成的查询是

 SELECT * FROM Address WHERE city = $P{customerId}

现在我的servlet里面请告诉我如何动态传递这个值?

int custid  = Integer.parseInt(request.getParameter("customerId")) ;

Map parameters = new HashMap();

parameters.put("customerId", custid);

请告诉我这是传递数据的正确方法吗?

1 个答案:

答案 0 :(得分:0)

您可以实现自己的数据源(必须是net.sf.jasperreports.engine.JRDataSource接口实现)。

填写(准备)数据源后,应将其传递给JasperFillManager.fillReport(java.lang.String sourceFileName, java.util.Map parameters, JRDataSource jrDataSource)方法。

样本:

    JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);
    JasperPrint jasperPrint = JasperFillManager.fillReport(sourceFileName, paramsMap, dataSource);