用集算器实现动态数据源报表 推荐
2014-07-11 09:12
190 查看
经常会遇到一些报表需要根据不同的情况(参数)连接不同的数据源从而完成相应的数据的展现,也就是经常说的动态数据源报表。报表工具通常的做法有两种,一是不同的情况加载不同的数据源连接参数,如:url、driver、username、password等;二是利用已配置的多个连接池,根据不同情况选择。这里以BIRT和润乾报表为例来说明。
1.fin= newjava.io.FileInputStream(newString("d:/config.txt"));
2.props= newjava.util.Properties();
3.
4.props.load(fin);
5.extensionProperties.odaDriverClass= newString(props.getProperty("driver"));
6.extensionProperties.odaURL= newString(props.getProperty("url"));
7.extensionProperties.odaUser= newString(props.getProperty("username"));
8.extensionProperties.odaPassword= newString(props.getProperty("password"));
9.fin.close();
其中,config.txt存储的是数据库连接信息,当需要读取不同的数据源时需要更改config中连接参数。
完成后通过Context方式发布报表,而无法通过最常用的file方式发布。
上面两种报表工具的做法我们看到都需要依赖Java编程,且修改维护性很差,对报表开发维护人员都是不小的挑战。而集算器则比较适合辅助完成动态数据源报表,下面来看一下。
![](http://blog.raqsoft.cn/wp-content/uploads/2014/07/esproc_sources.jpg)
A1格通过一句简单的参数判断即可完成不同条件下不同数据源的连接,相比前面报表工具的做法简单了很多。当然,集算器作为独立的计算中间件并不能直接为用户输出报表,报表展现的工作仍然由报表工具完成,为此集算器封装了应用程序调用的标准JDBC。
由此可见,原来需要依靠大量的Java代码的动态数据源报表,通过集算器可以非常简单完成;而集算器提供的JDBC对于报表开发人员来讲大家可以仍然使用固定数据源报表的方式进行报表开发(通过集算器实现了动态数据源功能,也可将集算器用于跨数据和混合数据源报表的开发),将极大地降低报表开发与维护成本。
BIRT的做法
在报表数据源的beforeopen事件中添加如下代码:1.fin= newjava.io.FileInputStream(newString("d:/config.txt"));
2.props= newjava.util.Properties();
3.
4.props.load(fin);
5.extensionProperties.odaDriverClass= newString(props.getProperty("driver"));
6.extensionProperties.odaURL= newString(props.getProperty("url"));
7.extensionProperties.odaUser= newString(props.getProperty("username"));
8.extensionProperties.odaPassword= newString(props.getProperty("password"));
9.fin.close();
其中,config.txt存储的是数据库连接信息,当需要读取不同的数据源时需要更改config中连接参数。
润乾报表的做法
假设我们已在应用端配置了多个数据源,报表使用不同数据源时需要通过JSP/Servlet更改: cxt.setDefDataSourceName("dsName");完成后通过Context方式发布报表,而无法通过最常用的file方式发布。
上面两种报表工具的做法我们看到都需要依赖Java编程,且修改维护性很差,对报表开发维护人员都是不小的挑战。而集算器则比较适合辅助完成动态数据源报表,下面来看一下。
集算器的做法
集算器脚本
![](http://blog.raqsoft.cn/wp-content/uploads/2014/07/esproc_sources.jpg)
A1格通过一句简单的参数判断即可完成不同条件下不同数据源的连接,相比前面报表工具的做法简单了很多。当然,集算器作为独立的计算中间件并不能直接为用户输出报表,报表展现的工作仍然由报表工具完成,为此集算器封装了应用程序调用的标准JDBC。
集算器JDBC
使用集算器JDBC与使用一般数据库的JDBC非常类似,集算器允许报表工具像调用存储过程一样调用集算器脚本,而此时集算器对应用的表现就好像一个数据库一样。由此可见,原来需要依靠大量的Java代码的动态数据源报表,通过集算器可以非常简单完成;而集算器提供的JDBC对于报表开发人员来讲大家可以仍然使用固定数据源报表的方式进行报表开发(通过集算器实现了动态数据源功能,也可将集算器用于跨数据和混合数据源报表的开发),将极大地降低报表开发与维护成本。
相关文章推荐
- 集算器替代存储过程实现报表数据源
- 用集算器实现报表的外置存储过程数据源效果
- 集算器实现无数据源的规则报表
- [转]VS2005下水晶报表实现动态数据源绑定
- VS2005下水晶报表如何实现动态数据源绑定?
- VS2005下水晶报表如何实现动态数据源绑定
- 润乾集算报表实现动态数据源
- 润乾报表实现动态数据源报表及改进
- 使用集算器实现报表自定义数据源(附java程序)
- 报表工具的动态数据源实现
- [转]VS2005下水晶报表实现动态数据源绑定
- 报表工具的动态数据源实现
- VS2005下水晶报表如何实现动态数据源绑定?
- 用脚本实现报表的动态数据源
- Spring(AbstractRoutingDataSource)实现动态数据源切换 推荐
- VS2005下水晶报表实现动态数据源绑定
- VS2005下水晶报表如何实现动态数据源绑定?
- reportviewer动态加载报表的实现以及动态控制报表,套打,存折打印模式等的一些探讨,欢迎批评指正!
- asp.net2.0 treeview控件用数据表做为数据源实现n级动态菜单
- VS2005中的水晶报表也可以用推模式动态绑定数据源