小编今天带大家了解BIRT怎么配置动态数据源,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“BIRT怎么配置动态数据源”的知识吧。
BIRT本身不直接支持动态数据源,常见解决办法是在数据源的beforeopen事件中添加类似如下代码:
... importPackage( Packages.java.io ); importPackage( Packages.java.util ); fin = new java.io.FileInputStream(new String("d:/config.txt")); props = new java.util.Properties( ); props.load(fin); extensionProperties.odaDriverClass = new String(props.getProperty("driver")); extensionProperties.odaURL = new String(props.getProperty("url")); extensionProperties.odaUser = new String(props.getProperty("username")); extensionProperties.odaPassword = new String(props.getProperty("password")); fin.close() ... |
这种通过硬编码的方式解决(要么需要大量修改报表文件,要么需要每个报表继承一个公共的库文件),过程还是比较复杂,在报表数量较多,开发人数较多时,需要注意的地方有些多,并不完美。
如果有了集算器,这样的问题就简单多了,其独特的宏替换机制极大地提高代码复用程度,根据不同参数值,得到不同结果。
比如要处理这么个场景: 数据源myDB和oraDB分别指向不同的数据库,两库中有相同结构的表ORDER,报表需要根据参数动态连接数据源,查询并展现ORDER中金额大于1000的订单。示意图如下:
集算器SPL仅1行就搞定了:
A | |
1 | =${pSource}.query("select * from ORDER where Amount>1000") |
其中 pSource 为是报表参数,代表数据源名,${…} 表示将字符串解析为表达式。其实还有很多情况BIRT解决动态计算问题不太方便,但有集算器SPL的辅助却很简单,集算器提供了 JDBC 驱动,可以很方便的与BIRT等报表工具集成, BIRT调用SPL脚本有使用和获得它的方法。
感谢大家的阅读,以上就是“BIRT怎么配置动态数据源”的全部内容了,学会的朋友赶紧操作起来吧。相信亿速云小编一定会给大家带来更优质的文章。谢谢大家对亿速云网站的支持!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。