birt的IRunAndRenderTask接口提供了
addScriptableJavaObject(java.lang.String jsName, java.lang.Object obj)
方法,利用這個(gè)方法,在直接調(diào)用birt api操作處理報(bào)表的時(shí)候,我們可以將任何java對(duì)象通過(guò)addScriptableJavaObject("xxx",Object)加進(jìn)birt去,然后在birt腳本中直接調(diào)用xxx.method()進(jìn)行操作。
我的測(cè)試是在一個(gè)webwork+spring+hibernate的webapp應(yīng)用中進(jìn)行的,進(jìn)行報(bào)表處理的代碼參照http://wiki.eclipse.org/index.php/Servlet_Example編寫(xiě),在代碼中,寫(xiě)了一句
task.addScriptableJavaObject("ctx",
WebApplicationContextUtils.getWebApplicationContext(sc));
birt中定義了一個(gè)scripts datasource,然后定義一個(gè)data set,在dataset的open方法中編寫(xiě)腳本
infoManager=ctx.getBean("infoManager");
infos=infoManager.loadAll();
...
posted on 2007-04-06 15:39 mmwy 閱讀(2068) 評(píng)論(3) 編輯 收藏 所屬分類(lèi): Others 、報(bào)表(Birt、crystal。。)