第四章 BIRT数据集和参数的建立

BIRT报表目录 打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案例和源码,例子,诠释这个报表设计工具,展现工具,开源框架,扩展框架的种种优点特性。 初稿内容如下,书写正在进行中~ 欢迎大家光临我的主页:http://blog.youkuaiyun.com/birtbird~ BIRT的世界-BIRT技术漫谈 目录 第一章 BIRT简介 3 1.1 BIR 阅读详情

4.1 数据集的设置

4.1.1 SQL选择查询数据集

在“新建数据集”对话框,输入数据集名,选择“数据集类型”为“SQL选择查询”,再选择某个JDBC数据源,如下图所示:

点击“Next>”进入SQL查询语句的输入界面,如下图所示:

各主要参数含义如下:

可用数据项

默认列出从数据库中读出的所有表/视图/存储过程。如果数据库支持架构(Schema),则按Schema进行分组。用户双击某个非根结点,该结点对应的文本将自动添加到右侧的SQL查询语句输入框。

事实上,“可用数据项”中的项如何显示也是可以设置的。点击系统菜单“窗口”->“Preferences”,在打开的对话框的左侧,选择“报表设计”->“数据集编辑器”->“JDBC数据集”结点,如下图所示:

JDBC 编辑界面设置

该设置界面中参数的含义如下:

从数据库中预取所有架构:该项设置只对支持Schema的数据库有效。如果选中,“可选数据项”中初始显示从数据库中读出的Schema;如果未选中,“可选数据项”中初始为空,直到用户输入相应过滤条件,点击“应用筛选器”后才显示满足用户条件的项。

要显示的最大架构数:“可选数据项”中最多显示的Schema数目。只对支持Schema的数据库有效。

每个架构中要显示的最大表数:“可选数据项”中每个Schema下最多显示的表数目。如果数据库不支持Schema,则指“可选数据项”中最多显示的表数据。

架构(Schema)

该列表列出从数据库中读出的所有Schema。用户可以选择某个Schema,点击“应用筛选器”,使“可选数据项”只显示指定Schema下的项。

如果数据库不支持Schema,则该列表是无效的(disable)。

筛选器

输入字符串,点击“应用筛选器”,使“可选数据项”只显示其名称起始部分可与用户指定字符串相匹配的表/视图/存储过程。在用户输入的字符串中,“%”代表任意多个字符(Character),“_”代表任何一个字符。

类型

有“-全部-”/“表”/“视图”/“存储过程”四个选项。用户可选择一个选项,点击“应用筛选器”,使“可选数据项”只显示指定类型的项。

使用标志符引用

如果选中,则双击“可选数据项”中某个非根结点时,该结点对应文本的每项的两侧都会被加上某个符号再自动添加到右侧的SQL查询语句输入框。事实上,该符号是从对应JDBC 驱动中读出的(通过java.sql.DataBaseMetaData接口的getIdentifierQuoteString()方法)。如双击“可选数据项”内的“Products”结点,则添加到右侧SQL查询语句输入框的是:”ROOT”.”PRODUCTS”。

显示系统表

是否在“可选数据项”中显示系统表。点击“应用筛选器”后生效。

在右侧输入框,用户可输入对应JDBC驱动支持的SQL查询语句。

动态配置“SQL选择查询”数据集

对于已创建的“SQL选择查询”数据集,其SQL查询语句以及查询最大执行时间是可以在报表运行时动态配置的。在“编辑数据集”对话框,选择“属性绑定”,如下图所示:

各个主要参数如下:

查询文本

用户输入的JavaScript表达式的值在报表运行时动态计算出并被作为该数据集的SQL查询语句。例如图 6中的“查询文本”为:

“select * from ” + params[“tableName”].value

这样,根据报表参数“tableName”的值动态构造SQL查询语句。

查询超时(秒)

用户输入的JavaScript表达式的值在报表运行时动态计算出并作为SQL查询语句的最大执行时间(以秒计)。执行查询时,该值会通过java.sql.Statement的setQueryTimeout( int seconds )方法传递给JDBC驱动。

用户可点击“fx”按钮打开“表达式生成器”对话框来帮助构造JavaScript表达式。

运行带参数的SQL查询语句

如果数据集的SQL查询语句带有参数,如下图 7所示:

图 7 带参数的SQL查询语句

可按顺序将SQL查询语句中的参数与某个报表参数绑定,以便报表运行时,将报表参数的值赋值给SQL查询语句中对应的参数。

点击图 7左侧“参数”即进入参数绑定列表界面,如图 8所示:

图 8 SQL参数绑定列表

按顺序通过“新建…”将SQL语句中的参数与报表参数绑定或为其提供默认值,如图 9所示:

图 9 添加一个SQL参数绑定

对于某个SQL参数,如果不想让其与某个报表参数绑定,则必须为其提供默认值:在“默认值”中输入JavaScript表达式。

“SQL选择查询”数据集的其它设置

在“编辑数据集”对话框,点击左侧“设置”,进入设置界面,如图 10所示:

图 10 “SQL选择查询”数据集设置界面

各主要参数含义如下:

数据提取设置

设置将SQL查询语句执行结果集中的前多少条记录作为数据集的数据源。事实上,如果用户设置了某个具体值,在查询执行时,该值会通过java.sql.Statement的setMaxRows( int max )方法传递给JDBC驱动。

注意:该项设置不只是在报表设计时有效,在报表运行时依然有效。

Result Set Selection

当SQL执行结果中包含多个结果集(Result Set)时(如“SQL存储过程查询”数据集),此设置用于指定那个结果集作为数据集的数据源。“SQL选择查询”数据集的SQL查询语句执行结果一般为一个结果集,因此无需设置。

添加JDBC驱动搜索路径

由章节“2创建JDBC数据源”知,BIRT中JDBC驱动的默认搜索路径为“\\plugins\org.eclipse.birt.report.data.oda.jdbc_xxx\drivers”目录(其中“xxx”代表版本号)。如果需要,你也可以以API调用方式通过应用程序上下文(AppContext)来添加JDBC驱动搜索路径。相对应的应用程序上下文关键字定义如表 1所示:

关键字

描述

由org.eclipse.birt.report.data.oda.jdbc.IConnectionFactory. DRIVER_CLASSPATH定义的常量

可以是一个字符串以添加一个路径;也可以是一个java.util.Collection实例以添加多个路径:其中每项的toString()结果表示一个路径。

每个路径是一个jar/zip包或一个目录的绝对路径。

表 1与JDBC驱动搜索路径对应的应用程序上下文关键字

用户添加的JDBC驱动搜索路径优先于BIRT的默认搜索路径。

另外,我们可以在脚本中动态改变数据集的查询sql,在报表编辑器的脚本编辑区,我们选中beforeOpen下拉框,在里面输入:

  1. var a = reportContext.getParameterValue("kemu");  
  2. if(a==1)  
  3. {  
  4. this.queryText +="and (a.dbtranamt !=0 or a.crtranamt !=0)";  
  5.   
  6. }  
  7. if(a==0)  
  8. {  
  9. this.queryText +="and (a.dbtranamt !=0 or a.crtranamt !=0)";  
  10. }  
  11. this.queryText+="order by a.trandate asc,a.subctrlcode asc";  


说明:

reportContext.getParameterValue()代表获取报表参数;

this.queryText代表数据集的查询sql;

4.1.2 多维数据集

新建一个数据集Data Set,基于样本数据源

SELECT CLASSICMODELS.PRODUCTS.PRODUCTLINE, CLASSICMODELS.PRODUCTS.PRODUCTNAME, 

(CLASSICMODELS.ORDERDETAILS.PRICEEACH * CLASSICMODELS.ORDERDETAILS.QUANTITYORDERED) AS TOTAL

FROM CLASSICMODELS.PRODUCTS, CLASSICMODELS.ORDERDETAILS

WHERE CLASSICMODELS.PRODUCTS.PRODUCTCODE = CLASSICMODELS.ORDERDETAILS.PRODUCTCODE

新建一个参数pMinDealSize,默认值是8000.00

 

设置Data Set,添加过滤器row["TOTAL"] 大于 params["pMinDealSize"].value

预览数据:

我们以此数据集为基础,创建多维数据集Data Cube:

分别把productline,productname拖到组中,把total拖到摘要字段中。当然,组和摘要都可以用表达式生成器去编辑,聚合条件也可以编辑。

我们新建一个交叉报表,把productline,productname分别拖入交叉表的行数据字段和列数据字段,把total拖入交叉表的统计字段。

在报表查看器中查看,如下图所示的效果:

至此,多维数据集建立完毕。后文再详细介绍如何建立交叉报表,怎么画斜线,怎么制作多重交叉报表。

4.1.3 联接数据集

BIRT报表中允许用户对已经创建的两个数据集进行联接操作,形成新的数据集,该数据集就称为联接数据集。

由于联结数据集操作是在BIRT报表数据引擎内部执行的,因此它也无法达到数据库的运算效率。因此,在实际运用这个功能时,一定要考虑相关性能问题。我们建议只针对无法避免的情况才使用。比如异构的(即来源于不同类型数据源的)、离线的而且是报表系统无法直接进行编程的数据集之间的联结运算。

在创建联接数据集之前,您需要首先创建了两个数据集,这两个数据集之间需要有一个共同的字段用于联接操作。

打开“数据资源管理器”窗口,右键点击“数据集”,在弹出的菜单中选择“新建联接数据集”。

在弹出的新建联接数据集窗口中,输入数据集名称。在下拉列表中分别选择进行联接的数据集,并选择联接的依据字段以及联接类型。

点击“完成”,在编辑数据集窗口中预览数据结果,或继续编辑数据集。

 

精通BIRT:Eclipse商务智能报表工具开发实践指南 书籍正有清华大学出版社编辑出版发行中,敬请期待,目录如下:  第一章 BIRT简介 5 1.1 BIRT初识 5 1.2 BIRT安装 8 1.2.1 BIRT设计器的安装 8 1.2.2 BIRT运行时环境的安装 9 第二章 BIRT设计器概述及本地化支持 12 2.1 BIRT设计器概述 12 2.1.1 基本概念 12 2.1.2 基本视图 13 2.2 BIRT本地化之 阅读详情

相关推荐

第二章 BIRT设计器概述及本地化支持

2.1 BIRT设计器概述 2.1.1 基本概念 数据源:数据的来源,或提供者。如xml数据源、jdbc数据源等。  数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。  报表以及报表项:报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 --- 数据集 --- 报表

BIRT的世界-BIRT技术漫谈 1万+

BIRT Viewer 2.2 参数设置详解(引用)

[color=greens]BIRT Viewer 2.2 参数设置详解 作者:会飞的球球 2007.08.24 BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE应用的web server服务器上,可以对...

eminem 476

第九章 BIRT嵌套报表以及参数的传递

9.1 表内的嵌套 我们新建报表MasterDetailOneReport_A.rptdesign,空白模板,示例数据库,sql选择查询数据集。 新建数据集Orders: select * from orders 新建数据集SingleOrderDetail select * from orderdetails where ordernumber = ? 数据集参数默认值为101

BIRT的世界-BIRT技术漫谈 1万+

sql 查询时给默认值 ,然后默认加一

可以使用 COALESCE 函数来给默认值。例如,如果你想给列 col1 设置默认值 0,并将其值加 1,你可以使用以下 SQL 查询: SELECT COALESCE(col1, 0) + 1 FROM table_name; 如果 col1 的值为 NULL,则会使用默认值 0;否则,将使用 col1 的实际值。无论哪种情况,最终都会将值加 1。 注意,这只是一个简单的示例。实际使用时,可能...

weixin_35750953的博客 1443

BIRT数据源设置和动态Sql

BIRT数据源设置和动态Sql

单粒子翻转对FPGA的影响及解决方法

单粒子翻转对FPGA的影响及解决方法

航天领域资深码农,型号经验丰富,一线干货分享 2446

BIRT修改下拉多选框

深入研究过BIRT运行时的小伙伴们应该对BIRT运行时整体运行流程应该是比较清晰的,BIRT运行端主要是通过prototype的javascript框架进行控制,将每个布局进行展示并且进行事件处理。那么在BIRT运行端显示多选框的时候会是这种样式的:但是这种显示在BIRT报表运行中是可以的,因为在BIRT中是通过参数容器页面来显示所有的参数,当然其中也包括这个多选框,但是如果是将BIRT改成更加适

Q 4139

【推荐算法】召回模型总结

【推荐算法】召回模型总结

m0_48086806的博客 6243

BIRT入门教程1

创建第一个报表 通过一个简单项目认识birt,把Classic Cars库中的员工信息展示出来。 1.新建项目 打开 Navigate 视图,在任意空白处右击,从菜单中选择New,并选择project。 然后选择列表文件夹中的 Business Intelligence and Reporting Tools,展开后选择Report Project,点击Next按钮。 输入Class_Cars_

neweastsun的专栏 4549

gRPC之gRPC开发流程与入门案例

gRPC之gRPC开发流程与入门案例

YIYIYI 3759

《基于Yolo算法的火灾检测系统设计与实现》开题报告

在消防安全领域,火灾对生命财产安全构成严重威胁。传统的火灾检测手段存在诸多不足,如误报率高、检测范围有限、响应速度慢等。基于 Yolo 算法的火灾检测系统能够利用深度学习技术,实现对火灾的高效、精准检测,具有重要的现实意义。         从社会安全角度看,该系统可以广泛应用于各类公共场所、工业厂房和居民住宅,实时监测火灾隐患,及时发出警报,为人员疏散和消防救援争取宝贵时间,有效降低火灾造成的人员伤亡和财产损失,保障社会公共安全。

m0_69704149的博客 1384

第四章:BIRT数据集和参数的建立

第四章:BIRT数据集和参数的建立   转载至:http://blog.youkuaiyun.com/birtbird/article/details/8480547 4.1 数据集的设置   4.1.1 SQL选择查询数据集   在“新建数据集”对话框,输入数据集名,选择“数据集类型”为“SQL选择查询”,再选择某个JDBC数据源,如下图所示: 图4-1 点击“Ne

Oscar Chen 5311

cesium加载geotiff的 四种方法

本文介绍了在Cesium中加载GeoTIFF数据的两种主要方法。首先解析了核心前置知识,包括坐标系匹配、数据类型区分和性能优化。方法1详细演示了如何将RGB影像GeoTIFF转换为Cesium影像图层,包含从数据解析到Canvas转换的完整代码流程。方法2则针对高程数据(DEM)处理,展示了前端直接解析构建地形网格的方案。文章提供了完整的代码示例和关键实现要点,适用于卫星影像、专题图和数字高程模型等多种GeoTIFF数据类型在三维场景中的可视化需求。

大剑师兰特的GIS世界 395

第四章 BIRT数据集和参数的建立 (续) .

4.2 参数的设置 新建报表 说明: 名称:用来定义参数的名字 提示文本:报表运行时参数输入时提示的文本 帮助文本:报表运行时参数输入时鼠标移过时的帮助文本 数据类型:参数的类型,共有八种基本类型(布尔,整型,浮点型,日期,时间,日期时间,字符串,十进制) 显示类型:显示的时候提供的类型(共有四种:文本框,组合框,列表框,单选按钮) 格式,指定帮助文件的格式;必须与否,指定

huazaichang的专栏 904

YOLOv8改进 | 特殊场景检测篇 | 最新的多尺度特征提取DICAM(全网独家首发,增强水下图像的质量)

本文给大家带来的最新改进机制是多尺度特征提取和通道注意力机制DICAM,深度Inception和通道注意力模块(DICAM)主要用于用于增强水下图像的质量、对比度和色偏。所提出的DICAM模型考虑了水下图像的比例退化和不均匀色偏,从而提高图像的质量。通过在两个公开的水下图像增强数据集上的广泛实验,验证了提出的模型在全参考和无参考图像质量评估指标方面。欢迎大家订阅我的专栏一起学习YOLO,购买专栏读者联系读者入群获取进阶项目文件!

Snu77的博客 2216

YOLOv8模型压缩终极方案:LAMP剪枝实战,速度提升不掉点

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

LXY_LOVE36的博客 176

四、BIRT数据集和参数的建立

4.1 数据集的设置 4.1.1 SQL选择查询数据集 在“新建数据集”对话框,输入数据集名,选择“数据集类型”为“SQL选择查询”,再选择某个JDBC数据源,如下图所示: 点击“Next>”进入SQL查询语句的输入界面,如下图所示: 各主要参数含义如下: 可用数据项 默认列出从数据库中读出的所有表/视图...

weixin_41961329的博客 381

RK3399平台入门到精通系列讲解 - 总目录

欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...

内核笔记 10万+

JAVA调用BIRT设置的SCRIPT数据集

第一步:定义一下JAVA,class(看后面附件)第二步:定义一个LIST第三步:在BIRT报表的DATASET事件中(open)中输入   count = 0;   cf = new Packages.user.ContactListFactory();   c = cf.createContactList(); 在BIRT报表的DATASET事件中(CLOSE)中输入    cf=null;

6448

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

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

BIRT参数设置详解

在使用birt报表的时候感觉页面的 BIRT Report Viewer头标题没有用,想去掉在网上一查原来有详细的参数设置,看来birt的功能还是很强大啊。现在转帖如下:    BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支

知识积淀 6453

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BIRT 中对 CSV 数据集传递参数

来源:https://forums.opentext.com/forums/discussion/50068/set-report-parameters-with-csv-files-as-datasource#latest 在 birt 中做 SQL 查询可以为数据集指定数据集参数,数据集参数使用时还可以链接到某个报表参数,简单易操作。当然,如果想对 csv 类型的数据文件做查询也很方便...

Raqsoft 218

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 第三章 BIRT数据源的配置
下一篇: 第五章 BIRT文本类报表
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值