BIRT运行时动态设置资源相对路径的方法
BIRT运行时动态设置资源相对路径的方法
李玉珏 发表于3年前
BIRT运行时动态设置资源相对路径的方法
  • 发表于 3年前
  • 阅读 529
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 用BIRT开发报表时,可能会引用其他类型的文件,比如JS文件,库文件等,开发时引入这些资源文件时,在报表源文件中是一个相对路径,因此在BIRT的运行时要想正确处理这个相对路径,需要设置一个这个相对路径的根目录,本文将介绍两种设置方法。

        用BIRT开发报表时,可能会引用其他类型的文件,比如JS文件,库文件等,开发时引入这些资源文件时,在报表源文件中是一个相对路径(开发时这个相对路径具体相对于哪个根目录,需要在BIRT设计器的选项中设置,具体位置在eclipse->window->preferences->report design->resource中设置相对路径的根目录,但是注意这个根路径是全局性的,如果每个报表相对根路径不同,则只能手工修改源文件),因此在BIRT的运行时要想正确处理这个相对路径,需要动态的设置一个这个相对路径的根目录,本文将介绍两种设置方法。

    这两种方法都是基于ReportEngine的openReportDesign方法,因此可以针对不同的报表设置不同的相对根路径。

    1.IResourceLocator扩展:

        IReportEngine的openReportDesign方法可以有一个IResourceLocator类型的参数,可以通过实现该接口的findResource方法来动态设置相对目录根路径,BIRT也内置了该接口的实现ResourceLocatorImplBase,该实现较为复杂,有兴趣的可以研究其源代码,并且初步判断该实现在BIRT4.4版本中有Bug,不建议使用。

    2.IModuleOption.RESOURCE_FOLDER_KEY常量:

        该方法较为简单,以相对根路径为WEB的根目录为例,样例代码如下:  

IReportEngine birtEngine = ...;
Map moduleOptions = new HashMap();
moduleOptions.put(IModuleOption.RESOURCE_FOLDER_KEY,servletContext.getRealPath("/"));
IReportRunnable runnable = birtEngine.openReportDesign(reportFileName,null,moduleOptions);


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
李玉珏
粉丝 208
博文 47
码字总数 68847
×
李玉珏
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: