当前位置: 代码迷 >> Web前端 >> [BIRT]web中向Birt表格传参数
  详细解决方案

[BIRT]web中向Birt表格传参数

热度:692   发布时间:2012-10-31 14:37:32.0
[BIRT]web中向Birt报表传参数

原来用URL方式向Birt进行参数传递,发现二个问题

1.需要用urldecode进行二次处理,麻烦;

2.参数长度有限制,恶心。遇到长一点参数就没有办法了;

?

后来就考虑在script中通过session 参数进行传递

importPackage(Packages.java.io,Packages.java.util,Packages.java.net);
importPackage(Packages.javax.servlet.http);
request=reportContext.getHttpServlet();
var session = request.getSession(); 
status = session.getAttribute("whereClause");

?结果发现request始终是null,原因是此request不同于javax下的request,其实经过Java处理也是可以实现,但我觉得太烦了。

研究了N久发现了通过

Adding an Object to the Application Context for the Viewer

中利用appcontext的方法传递数据。终于成功简单的处理了Birt web参数传递。而且传递的内容和长度和java一致。

?

String contextKey = "whereClause";
		request.getSession().setAttribute("AppContextKey", contextKey);
		request.getSession().setAttribute("AppContextValue", sql);

?在report中用

beforeOpen中取出即可