输出例程
每张不同的报表最后利用iReport产生过程都是大同小异的。就是根据程序参数获取数据源fill报表,并按程序的要求以各种形式输出。所以,所有报表使用公共的报表输出程序可以大大简化和方便报表程序的设计。
输出程序要点如下,必须使用Servlet,例如ExportReport为输出报表Servlet的名字:
public class ExportReport extends HttpServlet {“key”,value}
缺省JSP报表程序调用ExportReport采用GET。不同报表调用公用报表输出程序,需要将数据结果集和参数传递给ExportReport,GET方式调用参数传递只能使用会话对象,session.setAttribute(“key”,value),当用户在同一会话中打开多个报表或多次以不同参数打开同一报表时,参数就会相互覆盖产生错误,尤其当刷新报表时,参数改变会使用户看到的报表不是想要的报表。
解决多用户传递参数的办法是使用请求对象传递参数request.setAttribute(“key”,value),则每个报表发出的请求互相没有冲突,用户每次刷新都可得到参数正确的报表。在调用时,不能使用response.sendRedirect(exportURL),这样只能以GET调用,且无法传递request对象中的参数。