birt配置动态数据源

4. 使用birt的scrip读取配置文件动态的部署数据源
首先它可以分为配置文件路径是固定及不固定的(配置文件在项目目录中)。
4.1配置文件内容如下:
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:tortrend
username=test
password=test

4.2文件路径固定的报表设计可以在数据源的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();
注:首先要加入jdbc数据源而不是使用script数据源。
4.3如果配置文件是放到项目中的某个文件下,这时候的路径是变化的。
首先就要在运行报表birt的IEngineTask中加入,
context.put( EngineConstants.APPCONTEXT_BIRT_VIEWER_HTTPSERVET_REQUEST, request );

这样使报表文件可以获得request对象。
然后在报表设计界面点击空白出,然后在script中的initialize的事件中加入以下代码:
importPackage( Packages.java.io,Packages.java.util,Packages.java.net ); 
importPackage( Packages.javax.servlet.http );
req = reportContext.getHttpServletRequest();
propPath = new String("/WEB-INF/classes/config.txt");
url = req.getSession().getServletContext().getResource( propPath );
if ( url != null ) {
props = new java.util.Properties();
props.load( url.openStream() );
odaDriverClass = new String(props.getProperty("driver"));
odaURL = new String(props.getProperty("url"));
odaUser = new String(props.getProperty("username"));
odaPassword = new String(props.getProperty("password"));
}
最后在编辑数据源,选中property binding项,进行填写odaDriverClass、odaURL、odaUser、odaPassword的绑定即可。
注:这两类写法有四处是不一样的,第一在动态路径运行时报表要传递request对象,第二两处对象和事件是不一样的,第三动态路径时注意script的脚步是没有extensionProperties这个对象的。第四、动态路径要进行数据源的绑定操作。

遇到的问题:
birt中的script里获得request为空,获取失败
这是因为要在birt的IEngineTask中加入,
context.put( EngineConstants.APPCONTEXT_BIRT_VIEWER_HTTPSERVET_REQUEST, request );
Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc.
Cannot load JDBC Driver class: org.mozilla.javascript.NativeJavaObject@193ee6b
这个不是由于驱动的关系,是报表设计动态数据源加载的问题。
birt 报表动态数据源设置方法 你是否在为每一张birt报表都需要设置数据源,而修改时又需要没张报表修改数据源配置而犯愁呢!有这这个文档后你就可以实现动态数据源配置,只需要修一个地方,所有报表的数据源都可以更改!快看看吧! 立即下载

相关推荐

birt从配置文件读取数据源

birt从配置文件读取数据源birt从配置文件读取数据源

birt学习笔记-动态配置数据源

1      动态配置数据源 1.1    可以使用公用library 1)       新建一个公共的rptlibrary 2)       新建一个公共的数据库(也可以从已有的报表中导出 export to library)   这样就建好一个公用的library.然后新建一个报表,导入这个library.   3)       新建一个报表,点击resource explore

clbhii的专栏 1460

LabVIEW机器视觉通用软件

LabVIEW 通用视觉一款仿C模式的思想与方法 全网最精简零基础+通用视觉全套视频教程 只想把LabVIEW当作一种兴趣,结果却当成了职业 http://t.elecfans.com/c1181.html 本次(开源 )针对有一定视觉基础或项目开发经验的工程师量身打造视觉通用性系统(完全仿面向对象的原理),相对于一般的非标框架更具功能性,有效的解决复杂项目开发过程中的思路瓶颈。 LabVIEW通用视觉系统:通用软件可快速解决大部分简单的视觉开发项目,帮助众多软件工程师解决在非标视觉软件开发中的繁琐过程问

qq_21516871的博客 4610

birt动态报表参数的设置

       对于前面的sql语句已经写好,看看里面有几个?,就表示有几个数据集参数了,这个一般都是调用报表参数,而不是直接使用数据集参数向报表中传递参数。         这个地方对于新手不容易理解的就是报表参数和数据集参数这两个概念,传递给报表的参数就是报表参数,比如对于web调用中,从客户端传过来的url参数中就包含报表参数;而数据集参数是指传递给sql语句的查询,这个一般不直接从客户端...

hupy2007的专栏 453

老司机避坑指南:UC3842自举驱动电路发热严重?这样选C39/C37电容值最稳

本文针对UC3842自举驱动电路发热严重的问题,深入剖析了驱动波形边沿速度与损耗的矛盾根源。通过实测数据与热成像分析,重点阐述了关键电容C39/C37的选型策略,提供了从经验公式到量化计算的优化方法,帮助工程师在发热与效率间找到最佳平衡点,并探讨了分立方案与专用驱动IC的适用场景。

lambda的博客 747

ResNet改进(51):基于轴向注意力机制的改进ResNet模型

本文介绍了一种结合轴向注意力机制的改进ResNet模型。 通过在传统CNN中引入轴向注意力,我们能够在保持计算效率的同时,增强模型对图像全局上下文的理解能力。这种混合架构结合了CNN的局部特征提取优势和注意力机制的全局建模能力,在图像识别任务中表现出色。 轴向注意力机制的应用不仅限于ResNet,也可以灵活地集成到其他CNN架构中。 未来可以探索更多注意力变体,或将其应用于特定领域任务,如医学图像分析、自动驾驶等需要精确空间理解的场景。 希望本文能帮助你理解如何将注意力机制与传统CNN结合,为你的计

2401_82355416的博客 359

Birt API 实现动态参数列报表

使用BIRT API 拓展 ReportEventAdapter 类,实现报表动态列展现。 传入参数columnNames字串,解析包含列,动态插入birt报表table列,实现动态参数报表展现。

就在今晚 的专栏 1万+

【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

本专栏整理了《深度学习时间序列预测案例》,内包含了各种不同的基于深度学习模型的时间序列预测方法,例如LSTM、GRU、CNN(一维卷积、二维卷积)、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等经典模型,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+

birt报表数据只有一条_BIRT 如何配置动态数据源

BIRT本身不直接支持动态数据源,常见解决办法是在数据源的beforeopen事件中添加类似如下代码:...importPackage( http://Packages.java.io );importPackage( Packages.java.util );fin = new java.io.FileInputStream(new String("d:/config.txt"));props ...

weixin_39640904的博客 221

Cadence Orcad Capture原理图断线的检查与避免方法

在设计电路图中,尤其是直接借鉴别人的设计进行二次开发的过程中难免会遇到如下尴尬的情况。有没有眼神好的朋友发现图纸的哪里有不对劲的地方呢?

fydar的博客 3269

华为OD机考 新系统真题 【区分奇偶的数组排序】

华为OD机试 新系统真题【区分奇偶的数组排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【区分奇偶的数组排序】多语言题解。

qq_45776114的博客 513

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( ); pr

cainiao_M的博客 322

自动权重化图卷积网络(Auto-Weighted GCN)算法在反洗钱识别中的应用及代码实现

该算法通过自动学习节点之间的权重信息,能够更好地捕捉AML数据中的关系和结构,从而提高反洗钱识别的准确性和效果。传统的AML识别方法通常依赖于专家定义的规则和手动提取的特征,但这些方法在应对大规模和复杂的数据时存在一定的局限性。GCN通过在图上执行卷积操作来捕捉节点之间的关系和结构信息,从而实现对图数据的学习和表示。自动权重化图卷积网络是一种基于GCN的改进算法,能够自动学习节点之间的权重信息,从而更好地捕捉图中的关系。利用自动计算的权重值执行图卷积操作。根据节点之间的相似度,计算每个节点的权重。

syntax_api860的博客 377

birt 配置动态数据源

项目中使用3.7.1的birt。 因为项目需要在birt中配置动态数据源,因此在网上搜索了一下动态数据源的配置方法,按网上的说明,在数据源的beforeopen事件中添加类似如下代码: importPackage( Packages.java.io ); importPackage( Packages.java.util ); fin = new java.io.FileInputStre

銠槍--突廆孒 2537

Ardupilot chibios主函数学习(1)

目录 文章目录目录摘要第一部分chibios主函数**(1)主回调函数入口****(2)主回调函数入口****(3)主回调函数入口****(4)主回调函数入口**1.函数hal.scheduler->init()分析 摘要 本节主要记录自己学习Ardupilot的 chibios代码过程,欢迎批评指正。 第一部分chibios主函数 (1)主回调函数入口 AP_HAL_MAIN_...

陌城烟雨 4243

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

关于birt中配置数据源!

      以前一直用润乾报表,现在突然改成了birt,还真是有点不适应!整个动态数据源,也搞了好些天,资料太少,先记录下看到的几种方法:第一种和第二种都要配置一下几个报表参数(odaDriverClass 、odaURL、odaUser  、odaPassword )同时需要在Property Binding中将JDBC的参数值绑定到报表参数图片上不来 第一种:读

我的地盘,哈哈... 8850

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

birt用脚本javascript创建数据源,并从配置文件中读数据库信息

可以用script去解决第一个问题。 第一步:新建一个JDBC数据源(这里要说明的是必须要填写Driver class和Driver URL,不然新建不了JDBC数据源,这里birt就有点让人郁闷啦)第二步: 选择上一步新建好的数据源,然后选择script窗口,在数据源的beforeOpen事件中写以下代码可以定义一个参数去指定properties文件的路径,然后创建datasource。在...

fan.zhang 238

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

解决 BIRT 动态数据源的若干示例

原文地址:http://c.raqsoft.com.cn/article/1576544515636?r=CGQ 原文地址可以查看更多birt报表的数据源问题示例 解决 BIRT 动态数据源的若干示例 ...

terry_chengq的博客 237

birt用脚本javascript创设数据源,并从配置文件中读数据库信息

[url]http://www.myexception.cn/database/607282.html[/url] birt用脚本javascript创建数据源,并从配置文件中读数据库信息 可以用script去解决第一个问题。 第一步: 新建一个JDBC数据源(这里要说明的是必须要填写Driver class和Driver URL,不然新建不了JDBC数据源,这里birt就有点让人郁闷...

pyzheng的专栏 178

第三章 BIRT数据源的配置(续2)

3.8 Excel数据源 新建Excel Data Source,取名Excel _birt, 把要当做数据源的excel放置到同一个工程下,注意excel必须是单一的表格,不是包含嵌套表格或者图表的表格,但可以包括多个sheet。 创建数据集,选择一个sheet,并选择需要作为数据集的属性列: 定义相应的格式: 预览结果: 则该

z1012890225的专栏 1190

BIRT开发心得

一、报表模板设计环境 1.使用如下URL下载报表的设计环境: http://download.eclipse.org/birt/downloads/        下载birt-report-framework-2.1.2.zip文件,解压缩该文件到eclipse安装目录下。               2.使用如下URL下载 itext-1.3.jar: http://pr

Alinaxz的专栏 1249
上一篇: java常见异常
下一篇: BIRT Design API 学习
danwind
博客等级 码龄19年 6粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值