集算器协助报表开发之动态数据源.pdf

集算器协助报表开发之动态数据源.pdf

ID:52767932

大小:420.76 KB

页数:3页

时间:2020-03-30

集算器协助报表开发之动态数据源.pdf_第1页
集算器协助报表开发之动态数据源.pdf_第2页
集算器协助报表开发之动态数据源.pdf_第3页
资源描述:

《集算器协助报表开发之动态数据源.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、集算器协助报表开发之动态数据源JasperReport或BIRT等报表工具对多数据源的支持不够好,碰到动态数据源需求时常常需要再编写复杂的Java程序完成,而使用集算器辅助报表工具实现这类处理要简单得多。下面通过一个例子来说明动态源的实现过程。myDB1和myDB2是两个不同的数据库,但都有表sales,只是数据不同。现在要通过参数PsCode来控制报表的数据来源,报表还有另两个参数Pbegin和Pend,用来控制取数范围。集算器代码Aresult${sCode}.query("select*fromsaleswhereOrderDate

2、>=?andOrderDate1<=?",begin,end)可以看到,集算器只需一行代码就能实现动态源的切换。代码中的sCode、begin、end都是集算器参数,定义界面如下:其中begin/end用来在SQL中控制取数范围,sCode用来控制数据源。${sCode}是个宏,可以将参数解析为集算器表达式,比如用户将sCode赋值为myDB2时,上述脚本会被解析为:resultmyDB2.query("select*fromsaleswhereOrderDate>=?andOrderDate<=?",begin,end)函数query用

3、来执行SQL,可接受参数。语句result可将计算结果返回给报表工具。集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库,具体集成方案可参考相关文档。接下来以JasperReport为例设计报表,表样如下:需要定义三个报表参数PsCode、Pbegin、Pend,分别对应集算器中的三个参数。预览后可以看到报表结果:上图中参数PsCode的值是myDB1,将它改为myDB2就可以看到切换数据源的效果:需要注意的是,报表调用集算器的方法和调用存储过程一样,比如将本脚本保存为dsource.dfx,则在的JasperReport的S

4、QL设计器中可以用dsource$P{PsCode},$P{Pbegin},$P{Pend}来调用。在之前的集算器脚本中,直接用数据源名称做参数,存在一定的安全隐患,用户有时候更愿意用编号来指定数据源,比如PsCode=1时从myDB1取数,等于其他值时从myDB2取数。下面的代码可以满足这个需求:A=if(sCode==1,"myDB1","myDB2")1=connect(A1)2=A2.query("select*fromsaleswhereOrderDate>=?andOrderDate3<=?",begin,end)>A2.cl

5、ose()4resultA3上述代码还使用了函数connect和close来显式连接关闭数据库,这种用法自由度更高。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。