我有一个调用过程的报告,然后从临时表创建DataSet。
现在我们想要的不是调用我们想要从我们的java
项目中调用过程的过程,而是创建结果集的java
对象并将该java
对象作为参数传递给{{ 1}}。
现在我遇到的问题是BIRT
只支持原始类型作为参数类型而不是BIRT
对象,那么有没有办法将JAVA
对象作为报表参数传递给Java
?
答案 0 :(得分:1)
您可以使用 AppContext 对象将任何内容传递给报表。这是Map(String-> Object)。在启动RunTask或RunAndRenderTask之前,您可以将对象从Java端放入此映射中,例如
runAndRenderTask.getAppContext().put("myKey", myObject);
在BIRT报告中,您可以使用reportContext.getAppContext()从Javascript访问AppContext,例如
var myObject = reportContext.getAppContext().get("myKey");
有关详细信息,请参阅BIRT文档,例如http://developer.actuate.com/be/documentation/ihub3/help/adg/adg62/index.html#page/ADG/ScriptingWithJavaScript.1.05.html#ww253653了解详情
顺便说一下,您也可以使用AppContext将BIRT报告中的信息从Javascript端写入到您的应用程序中。
请注意,AppContext传递的对象必须是可序列化的。