BIRT運行時動態設置資源相對路徑的方法

        用BIRT開發報表時,可能會引用其餘類型的文件,好比JS文件,庫文件等,開發時引入這些資源文件時,在報表源文件中是一個相對路徑(開發時這個相對路徑具體相對於哪一個根目錄,須要在BIRT設計器的選項中設置,具體位置在eclipse->window->preferences->report design->resource中設置相對路徑的根目錄,可是注意這個根路徑是全局性的,若是每一個報表相對根路徑不一樣,則只能手工修改源文件),所以在BIRT的運行時要想正確處理這個相對路徑,須要動態的設置一個這個相對路徑的根目錄,本文將介紹兩種設置方法。java

    這兩種方法都是基於ReportEngine的openReportDesign方法,所以能夠針對不一樣的報表設置不一樣的相對根路徑。eclipse

    1.IResourceLocator擴展:設計

        IReportEngine的openReportDesign方法能夠有一個IResourceLocator類型的參數,能夠經過實現該接口的findResource方法來動態設置相對目錄根路徑,BIRT也內置了該接口的實現ResourceLocatorImplBase,該實現較爲複雜,有興趣的能夠研究其源代碼,而且初步判斷該實如今BIRT4.4版本中有Bug,不建議使用。code

    2.IModuleOption.RESOURCE_FOLDER_KEY常量:接口

        該方法較爲簡單,以相對根路徑爲WEB的根目錄爲例,樣例代碼以下:  ip

IReportEngine birtEngine = ...;
Map moduleOptions = new HashMap();
moduleOptions.put(IModuleOption.RESOURCE_FOLDER_KEY,servletContext.getRealPath("/"));
IReportRunnable runnable = birtEngine.openReportDesign(reportFileName,null,moduleOptions);
相關文章
相關標籤/搜索