在BIRT帮助文档上没看到这个问题的解决方法,我用的报表是FineReport,解决方案如下,供借鉴:
问题描述
当对模板进行分页预览时,若模板的页面设置超过了浏览器的大小,在进行向下或者向左滚动时标题也会滚动,此时就很难分清当前单元格对应的是哪一列了,为此FineReport提供了分页冻结,即在分页预览时,设置了冻结的行或列不随着滚动条的变化而变化,如下图:
2. 实现步骤
2.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\Multi_3.cpt。
2.2 冻结行列设置
点击菜单模板>重复与冻结设置,然后根据需求,先进行重复标题行和重复标题列设置,然后再进行分页冻结设置,具体的设置如下图:
点击分页预览即可查看效果。模板效果在线查看请点击Multi_4.cpt
已完成模板可查看%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\Multi_4.cpt
选中列头,右键-》插入-》选择左还是右方插入列。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(数据源)节点。
用鼠标右键单击打开d出菜单。
选择新建数据源。 新建数据源对话出现。
选择 Classic Models Inc. 示例数据库
在数据源名称输入框, 输入"Sample" 。
点击 next。
点击 Finish。
3.2建立数据集
现在我们准备好建立和测试我们的数据集。
打开数据资源管理器
选择数据集节点。
用鼠标右键单击打开d出菜单。
选择新建数据集。 新建数据集对话将出现。
“在数据集名称”输入框,输入"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,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,d出的参数值已经改变。
1、打开BIRT报表页面,如图所示。
2、找到步骤1的图中的红方框标示的位置,点击它,可以看到下面的界面,在界面中点击【Excel】下拉框,可以看到有5种格式可导出,在这儿就选择Excel格式。
3、选中Excel格式之后,点击【确定】按钮就可把数据导出为Excel,打开导出的Excel文件如下图所示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)