birt开发初探

BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。http://www.eclipse.org/birt/
一、创建第一个报表项目。
1.1创建一个项目
选择 File->New->Project 。 新项目(new project )对话出现。
打开" Business Intelligence and Reporting Tools”组,并选择"report project"。
1.2创建一个报表
选择File->New->Report 。 新建报表(new report )对话出现。
在Tree View中选择我们之前创建的项目。
接下来在文件名字段输入: Customers.rptdesign
点击 next。
选择Grouped Listing.(分组列表)。
点击 Finish。

注:新建报表对话框显示了一些现成的模板模板。
My First Report(我的第一份报表)
空白报表- 创建一个无预定义内容的空白报表。
简易列表- 使用数据源中的字段创建列表报表。
分组列表- 创建一个根据某些字段分组的列表报表。 分组列表不会显示重复的记录。 并且分组允许您创建一个子统计。
双列列表- 创建带两个子组的分组报表。
图表和类标- 创建分组报表,并附带直观表示每个组数据的图表。
双列图表和列表- 创建带两个“图表和列表”子组的分组报表
并排图表和列表- 创建一个分组报表, 其中,每个组都并排包含一个图表和一个列表
信件- A form letter in which database data is "mail-merged" into the text. The letter text can be formatted using a subset of HTML.

二、BIRT的开发界面
Cheat Sheets:在您的Eclipse工作区右边(这是默认配置)有一个Cheat Sheets View。"这个 View 会根据您所选择的模板引导你如何构建报表。
布局编辑器(Layout Editor):中心地区是布局编辑器。
调色板(Palette):显示标准的报表可视控件,您能够通过拖曳的方式添加到你的报表上。
概述(Outline):使用tree view的形式显示您的报表结构。
导航(Navigator): Eclipse将显示你的项目和项目内的报表文件。
数据资源管理器 :BIRT View 显示您的数据源(连接), 数据集 (queries) 和报表参量。 您也可以使用这个View增加数据集字段到您的报表布局(report layout)。
属性编辑器: 显示报表项目所需的properties。 它拥有标签和分组,用分类的形式来组织properties。
PropertiesView:显示和报表相关Properties ,这个view是可选的,我们在这个指南里面不会用到它。

三、建立数据源
BIRT 报表使用一个数据源连接到数据库或其它数据提供者。 BIRT 使用一个数据集从数据提供者处的检索数据。 可以将数据源理解为连接, 数据集作为query。
3.1建立数据源
让我们建立一个数据源:
打开Data explorer(数据资源管理器)。
选择Data Source(数据源)节点。
用鼠标右键单击打开弹出菜单。
选择新建数据源。 新建数据源对话出现。
选择 Classic Models Inc. 示例数据库
在数据源名称输入框, 输入"Sample" 。
点击 next。
点击 Finish。
3.2建立数据集
现在我们准备好建立和测试我们的数据集。
打开数据资源管理器
选择数据集节点。
用鼠标右键单击打开弹出菜单。
选择新建数据集。 新建数据集对话将出现。
“在数据集名称”输入框,输入"Customers"。
确保数据源下拉框显示的是我们之前创建的 Sample 数据源。
确保数据集类型下拉框选中的是"SQL Select Query" 。
点击Finish。

四、构建Table
我们的customer listing report 将以“表”的形式显示客户信息: 类似HTML Table, 附加了能够循环显示报表数据的能力。 我们选择的Grouped Listing 模板预先为我们构建了一个“表”, 我们只需要再填装一些细节。 在开发报表之前, 让我们介绍一下BIRT 的报表项。
BIRT 提供各种各样的报表项用于构建我们的报表。 报表项出现在Palette view。 报表项有:
•标签- 插入一个静态的文本。
•文本- 插入文本块(纯文本或HTML格式)和计算列值。 常用来创建标题, 信格式, "邮件合并" 等。
•动态文本- 插入带有可选 CLOB 数据表达式的文本块。 支持通过表达式对 advanced CLOB 数据进行操作。
•数据- 插入数据集列或表达式结果。
•图象- 任何由浏览器支持的图象。 图象可能被内嵌在一个报表文件中, 或链接到你的网络服务器上的一个文件。
•网格- 提供报表项的表格布局, 很象HTML Table。
•列表- 在页眉、详细信息、页脚区段中插入数据集行的灵活格式表示。
•表- 以Table的形式呈现数据集中的数据。
•图表- 显示商业图表,如饼图、折线图, 等。
4.1在数据集选择中往table里面拖动数据。点击preview测试,或者选择view as html等方式。
4.2重设表-页眉(Table Columns )尺寸,在property edit view
4.3设置背景颜色,在property edit view
4.4设置字体,在property edit view
4.5格式化数据,字符串格式化。选择要格式的字符串,切换到“属性编辑器”的“字符串格式”选项。 选择“字符串格式”为“自定义”。在格式代码输入框中, 出现以下格式: (@@@) @@@-@@@@
4.6设置边框
4.7设置明细数据排序
4.8创造样式、应用样式、编辑样式
4.9创建一个网格
4.10插入一张图片
4.11插入运行期日期
4.12创建一个文本项

二、birt简单应用
1.去掉首页上的标题BIRT Report Viewer
找到birt\webcontent\birt\pages\layout\FramesetFragment.jsp文件在里面定义了标题
2.通过Script方式,可以实现简单的分页和行交替颜色
首先加一个表格,选中表格中的明细行,切换到Script标签页。
在onRender事件中加入以下代码 var count=1;
在onCreate事件中写入
++count;
if (count % 10 == 0) {
style.pageBreakAfter = "always";
}
if (count % 2 != 0) {
style.setBackgroundColor("silver");
}
即可实现每页10条记录和交替颜色功能。(这方法不行)
3.统计功能
在属性编辑器中,选中“绑定”选项然后添加聚集,即可对某一列的进行函数统计。拖动动态文本到界面上。
4.公用数据源及样式
首先新建一个library,然后在打开这个library。在outline视图中可以填加数据源,完成后打开要添加的rptdesign转到resources视图右键选中添加的视图选项。其他公用资源也可这样操作。对于要添加表格线及其他一些样式的时候,可以先进行添加一个样式,然后添加到一个rptdesign的样式里面,就可以对你想要的内容进行应用样式选项了。一个小问题,表格的表格头默认情况是粗体的,选中表格头在property edit视图中点击 两次粗体选项即可。
5.参数的使用
在报表设计阶段,在数据源设置可变的参数条件sql语句中还是使用?进行匹配。然后选中parameters即可进行参数的绑定。如果sql语句是需要通过web页面端的参数进行改变的,首先是在数据集sql语句中写入一个不带任何的sql,然后选中该数据集,在主面板中选中script,在script选项中选择beforeOpen然后使用var pvalues = params[“pname”];
this.queryText += “newquery”;
在web应用阶段,对报表的传递参数可以采用以下几种方式:
1.利用birt自带的标签库传递参数
2.采用url的方式传递参数
3.采用birt engine api写自己的servrlet,然后传递参数即可。
6.国际化问题
首先在报表设计阶段,点击空白处然后在property edit视图找到resources属性填上资源文件的名称。这样就关联了birt的资源文件,如果要对某个地方的文本进行国际可以选中文本然后在property edit中找到localzation即可进行国际化。
资源文件要与设计文件放在同一层目录,如果想要修改资源文件的路径。可以在进行birtengine初始化阶段进行如下设置:
EngineConfig config = new EngineConfig();
config.setResourcePath(sc.getRealPath("/WEB-INF/classes"));
7. 修改webcontent存放路径
在web应用情况下,修改webcontent存放路径问题,可以对viewservlets.jar中的ViewerServlet类修改以下两行即可:
this.viewer.setJSPRootPath("/webcontent/birt");
this.run.setJSPRootPath("/webcontent/birt");

8.web应用下对报表进行访问的方式
frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........
run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........
对于以上2个动作,以下列出可用的参数:
__format:报表输出格式:html或pdf,缺省是html。对于frameset不起作用。
__isnull:指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。
__locale:本地化选项,缺省是jvm的locale。
__report:报表设计文件路径。
报表参数:报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。

9.web.xml详细配置项
10.Birt标签库介绍
目录 第一章、学习基础知识 教程 1:构建简单的列表报告 任务 1:创建新项目 任务 2:创建新报告 任务 3:构建数据源 任务 4:构建数据集 任务 5:对报告进行布局 任务 6:对数据进行排序 任务 7:格式化报告 编辑列标题 格式化列标题 在同一行上显示名字和姓氏 增大行之间的间隔 任务 8:创建报告标题 接下来的步骤 第二章、连接至数据源 如何创建 BIRT 数据源 如何修改现有 BIRT 数据源 如何删除 BIRT 报告设计器数据源 如何对数据库或其他 JDBC 数据源指定连接信息 如何添加 JDBC 驱动程序 如何删除 JAR 文件中的所有 JDBC 驱动程序 第三章、检索数据 如何创建数据集 如何更改数据集的数据源 如何对 JDBC 数据集编写 SQL 查询 如何对 JDBC 数据集指定存储过程 如何查看和更改输出列 如何更改“预览结果”中出现的行数 如何将计算字段添加至数据集 如何连接数据集 如何定义动态查询 如何设置高速缓存首选项 第四章、绑定数据 如何创建列绑定 第五章、对报告进行布局 如何添加行或列 如何删除行或列 如何将数据集绑定至表 如何插入链接的图像 如何插入嵌入式图像 如何插入存储在数据源中的图像 第六章、显示文本 如何使用动态文本元素 第七章、格式化报告内容 如何创建样式 如何导入样式 如何应用样式 如何修改样式 如何删除样式 如何创建格式化规则 如何修改格式化规则 如何删除格式化规则 如何通过拖动边界来调整列或行的大小 如何指定行高 如何指定列宽 如何合并表或网格单元格 如何有条件地隐藏元素 第八章、对数据进行排序和分组 教程 2:对报告数据进行分组 任务 1:打开报告设计 任务 2:将报告另存为新文件 任务 3:将贷记限额字段添加至数据集 任务 4:将贷记限额数据添加至报告 任务 5:按贷记限额对客户数据进行分组 任务 6:在组头中显示贷记限额范围 任务 7:显示聚集信息 任务 8:格式化报告 除去详细信息行中的贷记限额数据 在每组的第一行中显示组标题 用一行分隔每组 任务 9:在 BIRT 报告查看器中预览报告 任务 10:在目录中显示贷记限额范围 第九章、聚集数据 如何在表达式构建器中构造聚集表达式 第十章、编写表达式 第十一章、过滤数据 如何过滤行以便从 JDBC 数据源检索数据 如何在数据集级别进行过滤 如何在报告元素级别进行过滤 如何在组级别进行过滤 第十二章、使用户能够对数据进行过滤 使用户能够在查询运行时进行过滤 如何创建简单报告参数 如何在 SQL 查询中插入参数标记 如何创建数据集参数 如何在运行报告时动态更新过滤条件 第十三章、构建包含子报告的报告 教程 3:构建带有并排子报告的报告 任务 1:创建新报告 任务 2:构建数据源 任务 3:为客户报告构建数据集 任务 4:为订单子报告构建数据集 任务 5:为支付子报告构建数据集 任务 6:创建客户主报告 任务 7:创建订单子报告 任务 8:将订单子报告链接至客户主报告 任务 9:创建支付子报告 任务 10:将支付子报告链接至客户主报告 任务 11:仅显示具有订单或支付的客户 任务 12:并排显示子报告 任务 13:格式化报告 突出显示客户名 编辑列标题 更改日期格式 更改数字格式 增大元素之间的垂直间距 增大订单表与支付表之间的水平间距 在表周围添加边框 增大表边框与内容之间的间距 第十四章、在报告中使用图表 教程 4:创建图表 任务 1:设置报告设计文件 任务 2:在报告中添加图表 任务 3:为图表提供数据 任务 4:查看图表 任务 5:更新图表标题 任务 6:优化图表外观 第十五章、在图表中显示数据 如何选择图表数据集 如何对类别系列数据进行分组 如何设置轴的数据类型和格式 如何更改图表预览首选项 第十六章、对图表进行布局和格式化 如何设置图表背景色 如何定义定制颜色 如何为具有深度的图表或三维图表设置墙体色或地板色 如何设置图表区嵌入 如何为图形设置背景色 如何为图形区加上轮廓 如何为轴中的图形区加上阴影 如何调整图表图形的放置和填充 如何格式化轴名 如何在仪表图或饼图中添加或格式化值系列标题 如何修改轴线 如何修改轴刻度线 如何添加或修改网格线 第十七章、设计多页报告 如何在页眉和页脚中显示文本 如何指定页眉或页脚大小 如何避免首页出现页眉内容 第十八章、添加交互式查看功能 如何创建书签 如何链接两个报告部分 如何链接两个报告 如何创建目录条目 如何导出报告数据 第十九章、构建共享的报告开发框架 如何将元素添加到库中 如何设置报告设计的主题 如何从报告设计中删除主题 如何创建模板报告项 如何设置模板文件夹 如何发布模板 如何使用模板报告项 第二十章、将文本本地化 如何对报告指定资源文件 如何对标签或文本元素指定现有资源键 如何以不同语言环境预览报告 第二十一章、在报告设计中进行脚本编制 BIRT 脚本编制概述 在 Java 与 JavaScript 之间进行选择 同时使用 Java 和 JavaScript 编写事件处理程序 第二十二章、使用 JavaScript 编写事件处理程序 如何使用 BIRT 报告设计器来输入 JavaScript 事件处理程序 确定方法执行顺序 提供 ReportDesign.initialize 代码 如何提供 ReportDesign.initialize 方法的代码 为想要跟踪的方法提供代码 提供 ReportDesign.afterFactory 代码 教程 5:使用 JavaScript 编写事件处理程序 任务 1:打开报告设计 任务 2:在 Table.onCreate( ) 方法中创建并初始化计数器 任务 3:在 Row.onCreate( ) 方法中有条件地使计数器递增 任务 4:使用 ReportDesign.afterFactory( ) 方法来显示结果 第二十三章、使用 Java 编写事件处理程序 如何创建事件处理程序类并将其添加到 Java 项目中 如何使 Java 类与报告元素相关联 第二十四章、脚本编制参考 类 DateTimeSpan DateTimeSpan.addDate DateTimeSpan.addTime DateTimeSpan.days DateTimeSpan.hours DateTimeSpan.minutes DateTimeSpan.months DateTimeSpan.seconds DateTimeSpan.subDate DateTimeSpan.subTime DateTimeSpan.years Finance 类 Finance.ddb Finance.fv Finance.ipmt Finance.irr Finance.mirr Finance.nper Finance.npv Finance.percent Finance.pmt Finance.ppmt Finance.pv Finance.rate Finance.sln Finance.syd Total 类 关于分组和过滤 关于过滤器参数 关于组参数 Total.ave Total.count Total.countDistinct Total.first Total.isBottomN Total.isBottomNPercent Total.isTopN Total.isTopNPercent Total.last Total.max Total.median Total.min Total.mode Total.movingAve Total.percentile Total.percentRank Total.percentSum Total.quartile Total.rank Total.runningCount Total.stdDev Total.sum Total.variance Total.weightedAve
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值