用脚本实现报表的动态数据源

报表系统中有一些报表往往要根据条件连接不同的数据源,从而完成报表展现。这种需要在不同数据源间切换的情况我们称为动态数据源。一般报表工具实现动态数据源往往要依靠第三方程序(JAVA等)实现,润乾集算报表则可以通过内置的脚本完成,本文将通过一个例子来了解实现过程。

报表说明

学生信息中通过参数控制报表连接的数据源,参数status为1时连接数据源一(dev_1),否则连接数据源二(dev_2),按班级汇总学生总成绩。

在集算报表中,通过集算脚本完成参数的判断,连接不同的数据源;然后在报表模板中使用脚本返回的结果集,与使用一个数据源一样。以下为具体步骤:

编辑报表模板

首先需要新建两个数据源(dev_1和dev_2),用于报表开发。

使用集算报表设计器新建报表模板,并设置报表参数、数据集和报表表达式。

        设置报表参数

status用于控制连接的数据源,默认为1,连接dev_1。

        设置数据集

使用脚本数据集,根据参数判断连接的数据源,并完成取数计算:

在A1中根据报表参数判断需要连接的数据源,A2完成数据查询,结果通过A4返回。

        设置报表表达式

编辑报表表达式,直接使用集算脚本返回的结果集,使用简单的报表表达式,完成报表制作。

可以看到,使用脚本数据集通过接收报表参数进行简单的判断即可完成动态数据源连接,而不必另外在Java程序中完成,更加简单直接。

了解脚本数据集请见:http://blog.csdn.net/u012388497/article/details/40076481

时间: 2024-12-19 14:50:41

用脚本实现报表的动态数据源的相关文章

润乾报表实现动态数据源报表及改进

经常会遇到一些报表需要根据不同的情况(参数)连接不同的数据源从而完成相应的数据的展现,也就是经常说的动态数据源报表.报表工具通常的做法有两种,一是不同的情况加载不同的数据源连接参数,如:url.driver.username.password等:二是利用已配置的多个连接池,根据不同情况选择.这里通过一个实例,说明润乾报表的实现过程及改进方案. 报表说明 应用中需要通过参数控制报表连接的数据源,当参数flag为1时连接数据源一(db1),否则连接数据源二(db2). 润乾报表实现 首先根据flag

报表工具的动态数据源实现

有时候我们需要用参数动态指定数据源,或将多数据源连接为单数据源,或向子报表.table控件动态传入数据源名.对于此类需求,报表工具经常要借助高级语言实现或牺牲安全性以降低复杂度,尤其是BIRT.Jasper等单源报表. 使用免费的集算器可以弥补这一不足.集算器封装了丰富的结构化计算函数,支持动态解析表达式,支持多数据源混合计算,书写简单脚本就能实现动态数据源.集算器还提供了简单易用的JDBC接口,报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果. 集算器与报表工

集算报表与润乾报表处理动态报表时的异同

集算报表继承了润乾报表的宏机制来处理动态报表,对于简单的动态报表使用宏实现非常方便.对于一些复杂的动态报表,集算报表还提供了脚本数据集来处理动态报表,适合宏无法实现的场景,而润乾报表中要实现复杂动态报表时则需要编写自定义数据集来完成.下面通过几个例子来详细比较一下集算报表和润乾报表在处理动态报表时的相同与不同点. 相同点 集算报表和润乾报表都提供了宏,使用方式几乎完全一致,且都包含普通宏和动态宏.         普通宏常用于静态内容替换,如在员工表中同时只希望查看薪金或奖金,开发两张报表显然是

ActiveReports 报表应用教程 (9)---交互式报表之动态排序

原文:ActiveReports 报表应用教程 (9)---交互式报表之动态排序 在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据. 1.创建报表文件 在应用程序中创建一个名为 rptProductListForSort.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 V

润乾报表使用EXCEL数据源的方法及改进

Excel作为一种常见的文件格式广泛存在,很多报表的数据来源于Excel.由于报表一般都带有参数,经常需要对原始数据进行分组.过滤等,都需要再编写程序代码才能满足有参数报表的查询需求. 润乾报表使用Excel数据源,需要用Java程序处理文件,通过自定义数据集为报表提供数据源支持.这里通过一个实例说明润乾报表实现过程,以及改进方式. 报表描述 基金公司将股票信息以每月一个Excel存储,命名方式为:stock_yyyyMM.xls.包括每只股票的股票编码.交易日期和收盘价,现报表参数为起始年月和

润乾集算报表使用EXCEL数据源的示例

Excel作为一种常见的文件格式广泛存在,很多报表的数据来源于Excel.集算报表可以直接使用Excel作为数据源来开发报表.这里通过一个实例说明集算报表实现过程. 报表描述 基金公司的股票信息以每月一个Excel存储,命名方式为:stock_yyyyMM.xls.先需要查询一定周期内各支股票的最高最低收盘价,以及创下最高或最低收盘价的交易日期. 报表样式如下: 实现步骤 编写脚本 首先使用集算器完成Excel文件读取和数据计算,编写脚本(fromExcel.dfx). A1通过传入的起始结束月

润乾报表使用json数据源的方法改进

JSON作为一种轻量级数据格式应用非常广泛,报表读取json数据源进行报表开发的需求也很常见.润乾报表使用json数据源需要在自定义数据集中通过Java程序解析json文件后将结果集返回给报表,这里介绍润乾报表的实现方式以及改进方法. 报表需求 学生成绩在应用中以json文件存在,现需要根据学科参数查询指定科目学生成绩,并按学生成绩降序排列.报表样式如下: 润乾报表实现 自定义数据集 润乾报表中需要通过自定义数据集完成json文件的读取,实现过程如下: 1.  准备json解析依赖包 Java程

润乾集算报表使用json数据源的示例

JSON作为一种轻量级数据格式应用非常广泛,报表读取json数据源进行报表开发的需求也很常见.润乾集算报表可以很好支持json数据源,这里通过实例说明. 示例一 报表说明 学生成绩在应用中以json文件存在,现需要汇总学生成绩,并按总成绩排名,结果以报表展现.报表样式如下: JSON文件中包含班级.编号.姓名.学科.成绩等信息,格式如下: [ { "class": "Class one", "id": 1, "name": &

润乾集算报表使用文件数据源的示例

文件作为报表数据源的情况很常见,润乾集算报表可以很好地支持这一点,下面通过一个实例说明. 报表描述 数据文件为每个月个月的股价信息(每个月一个文件,文件命名方式为"stock_record_yyyyMM",如:stock_record_200901.txt.stock_record_200902.txt-),包括每只股票的股票编码.交易日期和收盘价,报表参数为起始年月和结束年月,需要查询该时间段内各只股票最长连续上涨天数,以及创下最长连续上涨天数记录当天的日期以及收盘价. 报表格式如下