我们可以将Java Object作为报告参数传递给BIRT报告

时间:2015-09-17 09:26:23

标签: java birt

我有一个调用过程的报告,然后从临时表创建DataSet。 现在我们想要的不是调用我们想要从我们的java项目中调用过程的过程,而是创建结果集的java对象并将该java对象作为参数传递给{{ 1}}。

现在我遇到的问题是BIRT只支持原始类型作为参数类型而不是BIRT对象,那么有没有办法将JAVA对象作为报表参数传递给Java

1 个答案:

答案 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传递的对象必须是可序列化的。