博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
润乾报表 动态改变数据源
阅读量:6692 次
发布时间:2019-06-25

本文共 1616 字,大约阅读时间需要 5 分钟。

经常会遇到一些报表需要根据不同的情况(参数)连接不同的数据源从而完成相应的数据的展现,也就是经常说的动态数据源报表。

实现动态数据源有多种方法:具体说两种使用过的方法:

第一种:使用脚本集算器法

使用集算脚本编辑工具完成计算脚本,并为报表输出计算后结果集:

 

 A1:根据参数dbname参数值决定数据源

 A2:编写查询SQL

    A3:执行sql取数

    A4:关闭连接

    A5:将结果集返回报表 

优点:开发简单,理解方便。缺点:必须 集算器授权

第二种:TAG标签

1、导包

 

1 <%@ page import="com.raqsoft.report.usermodel.Context"%>2 <%@ page import="com.raqsoft.report.view.*"%>3 <%@ page import="com.raqsoft.report.util.*"%>4 <%@ page import="com.raqsoft.report.model.ReportDefine"%>5 <%@ page import="com.raqsoft.report.usermodel.DataSetMetaData"%>6 <%@ page import="com.raqsoft.report.usermodel.DataSetConfig"%>

 

 

2.编写更换数据源的方法

1 <%! 2     public static ReportDefine changeDataSource(String filePath, String dataSourceName){ 3         ReportDefine rd = null; 4         try{ 5             rd = (ReportDefine)ReportUtils.read(filePath);//读取报表 6             DataSetMetaData dsmd = rd.getDataSetMetaData(); //取数据集元数据 7             for(int i=0; i

 

3.调用换取数据源方法

1     //获取数据源名称 2     String dbname = request.getParameter("dbname"); 3      4     //动态设置报表中数据集的数据源 5     String reportPath = request.getRealPath("/WEB-INF/reportFiles/"+report); 6     ReportDefine rd = changeDataSource(reportPath, dbname); 7      8     //把 ReportDefine 放在Request 中,方便取用 9     String rptName = "RPT_"+Double.toString(Math.random());10     request.setAttribute(rptName,rd);

 

 4.发布报表

使用defineBean方式发布报表,有参数模版包括参数模版

1 
11 12

 

优点:只使用报表即可 缺点:编写复杂,不易懂

以上实测有效。以下为了解方法,未实践。

第三种:使用API方式

参考连接地址:http://blog.sina.com.cn/s/blog_8910bc4f0100ugyd.html

第四种:润乾报表实现(官方论坛方法)

参考地址:http://bbs.raqsoft.com.cn/portal.php?mod=view&aid=394

转载于:https://www.cnblogs.com/personal-blog/p/9343105.html

你可能感兴趣的文章
行为型模式:中介者模式
查看>>
政府信息化建设重点——服务、多元化
查看>>
学习像树一样活着!
查看>>
Linux操作系统分析(10) - 进程通信之管道与信号量
查看>>
UpdateData()
查看>>
0001 kali linux 学习之起航篇
查看>>
在UnitedStack公有云上DevStack快速部署Openstack
查看>>
使用Xcode和Instruments调试解决iOS内存泄露
查看>>
Volley使用方法
查看>>
我的友情链接
查看>>
ASA防火墙的应用
查看>>
linux中telnet 带外管理服务器的设置
查看>>
用户登录认证
查看>>
Web版RSS阅读器(一)——dom4j读取xml(opml)文件
查看>>
百度UEditor编辑器ueditor.setContent总是报错
查看>>
属性化字符串问题集
查看>>
Windows 2012 下如何强制同步 AD SYSVOL
查看>>
Java AtomicInteger的用法
查看>>
利用公有云平台构建网站项目总结
查看>>
php 与 C# 之间的DES加解密
查看>>