BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。
使用BIRT,能制作出多样化的报表到你的应用中。比如:列表 lists ,图表 charts,混合报表 Compound Reports,交叉表(二维表)Crosstabs(二维报表目前在BIRT 2.1.1 还未实现,但在以后的版本中将会实现此功能)。
2. BIRT的安装
2.1>birt的安装
Eclipse 3.1 支持 BIRT 2.0
Eclipse 3.2 支持 BIRT 2.1
目前我使用的版本是BIRT 2.1.1,BIRT的安装有很多的方法。
方法一:
到Eclipse的官方网站[download.eclipse.org]去下载 BIRT 插件(birt-report-designer-all-in-one-2_1_1),解压后,它就是一个拥有 BIRT插件的Eclipse。如果你已经安装了Eclipse,那么把下载的文件夹的内容拷到所对应的 Eclipse 的文件夹里(plugins和features两个目录),之后的第一次启动是通过DOS进入到Eclipse目录,启动 Eclipse -clean 命令,此命令是清除 Eclipse 缓存里的记录并启动Eclipse。这也是最简单的安装BIRT方法。
方法二:
BIRT 2.1开始,可以在 Eclipse 里直接下载。[帮助]à[软件更新]à[查找并安装]
方法三:
如果你的 Eclipse 已经安装或者不想使用方法一安装,可以进行分别安装的方法。EMF, GEF 和 BIRT 都是需要通过 Eclipse download page下载的。请注意以下的配置要求:
BIRT 2.0.2
Eclipse 3.1
GEF 3.1.
EMF 2.1.
JRE 1.4.2/JRE 1.5.
BIRT 2.1/2.1.1
Eclipse 3.2.
GEF 3.2.
EMF 2.2.
JRE 1.4.2/JRE 1.5.
BIRT 2.2M4 and higher
Eclipse 3.3.
GEF 3.3.
EMF 2.3.
JRE 1.5.
GEF:图形编辑框架,是一个通过 BIRT UI 使用的Eclipse 插件
EMF:用来制作图表的框架
具体的安装和配置请参考 Eclipse官方网站 这里我还推荐一个BIRT 2.0.1的安装视频 希望对大家有所帮助。
注意:iTextAsian.jar 是为了支持用PDF输出时亚洲人的字体。prototype.js 是安装 BIRT 2.0.2 或者更早的版本使用的,目前版本不需要了。
提示:我个人使用的是方法一,首先安装比较方便,其次如果使用方法二,在Eclipse [帮助]à[帮助内容] 里没有关于 BIRT 的帮助文档,这样对学习不是很方便。
2.2 birt版本升级
1.删除在 plugins 目录下的所有以 org.eclipse.birt 开头的文件。
2.按照上面的方法一进行安装。
3.重新启动 Eclipse -clean
2.3 语言包安装
目前 BIRT的2.1.1 已经有中文语言包。下载完毕以后把对应的目录 copy 到对应的 Eclipse 目录下,然后 Eclipse -clean 启动。
3. BIRT应用
在这里我提供了一个 “BIRT中文教程”,在Eclipse官方网站也有它的演示视频,Customers.rptdesign 是做好的报表。
JDBC Drivers
以上例子介绍的是使用“示例数据库”的数据源,在大多数情况下我们使用的是自己的JDBC driver,下面介绍连接 Oracle 数据库。
打开 Eclipse 后进入 [窗口]à[打开透视图]à[报表设计],新建项目 [文件]à[新建]à[项目],选择“业务智能和报表工具”à“报表项目”,起项目名。新建的项目上,右键 新建报表,给报表起名字,报表的后缀名是 .rptdesign
[数据源]à[新建数据源],选择“JDBC数据源”(别忘了给数据源起名字),“管理驱动程序”à“添加”,把所需要的数据库 jar 包添加进来。选择oracle.jdbc.driver.OracleDriver ( v1.0),写上正确的数据库 URL,用户名,密码,点击“测试连接”,显示 连接成功。
报表的种类有很多,具体的制作过程参考[帮助]à[帮助内容]
提示:交叉表即二维报表在目前BIRT 2.1.1 还未实现,但在以后的版本中正在计划实现此功能。
4. BIRT部署
BIRT 2.1.1所对应使用的部署工具是birt-runtime-2_1_1,可以到 Eclipse 官方网站下载。
4.1. tomcat 部署
我使用的版本是 tomcat 5.5,步骤如下:
1) mail.jar activation.jar拷到Tomcat 5.5\common\lib
2) iTextAsian.jar itext-1.3.jar拷到
WebViewerExample\WEB-INF\platform\plugins\com.lowagie.itext\lib
3) 连接数据库的包拷到
WebViewerExample\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_2.1.1.v20060922-1058\drivers
4) WebViewerExample整个目录copy 到 Tomcat 5.5\webapps下,可以更改文件夹名。
5) 完成的报表可以直接复制到根目录下,也可以新建文件夹目录。
现在BIRT支持两种浏览报表模式,frameset是支持显示分页的,采用Ajax技术。run暂不支持显示分页,直接输出HTML流。比较一下它们的区别,如下:
http://localhost:8080/WebViewerExample/frameset?__report=Customers.rptdesign
http://localhost:8080/WebViewerExample/run?__report=Customers.rptdesign
注意:
a) 问号后面的是双下划线
b) 以上报表是放在根目录下,如果是放在自己新建的目录比如 myreport 下URL应是:
http://localhost:8080/WebViewerExample/run?__report=myreport/Customers.rptdesign
4.2. Weblogic Server 部署
我使用的版本是 Weblogic Server 9.2,它是 BEA WebLogic 产品的一部分。BEA WebLogic Server 是一个功能丰富、基于标准的现成的企业 J2EE应用服务器。
Weblogic Server 有很多的域组成,medrec 和 wl_server 是其中自带的域,也可以自己创建新的域。域中可以包含许多服务器,在服务器中可以部署许多的应用程序。域有一个默认的服务器,它是管理服务器。每个域中的管理服务器是唯一的,其他创建的服务器叫受管服务器。
Weblogic Server 的安装就不多做介绍了,主要介绍它的配置和部署。下面介绍一下新建域和部署的步骤:
1) 运行开始 ->程序 ->BEA Products ->Tools ->Configuration Wizard
2) 选择 Create a new WebLogic domain,Next。
3) 在 Select Domain Source 界面保持默认,Next。
4) 在 User name 处输入用户名,如 user,password 输入密码,如12345678(密码要求 8 位),Next。
5) 在 Configure Server Start Mode and JDK 界面中保持默认,即 JDK 选择的是“Sun SDK 1.5.0_04 @ C:\BEA\jdk150_04”,注意这里若选择“Other JDK”配置比 SDK 1.5.0_04 更高的版本,服务器启动时将会出现异常,所以最好保持默认,然后 Next。
6) 在 Customize Environment and Services Settings 界面中默认为 No,Next。
7) 在 Domain name 处输入 mydomain,点击 Create。
8) 完成后点击 Done 关闭 Configuration Wizard 对话框。
9) 运行开始 ->程序 ->BEA Products ->User Projects ->mydomain ->Start Admin Server for Weblogic Server Domain,启动创建域的服务器。如果最后显示 <Server started in RUNNING mode>则说明服务器启动成功。
10) 在地址栏输入 http://localhost:7001/console 进入管理控制台,输入刚才的用户名和密码。点击 更改中心 的[锁定并编辑],域结构 中的[部署],点击[安装]。找到你要部署的应用程序,之后都为默认,最后点完成。在更改页面上点击[保存],完成所需的更改后,单击 更改中心 中的[激活更改]。注意:只有点击了[激活更改]后才真正保存了更改。某些在管理控制台中所做的更改在激活后立即生效。有些更改需要重新启动此更改影响到的服务器或模块。后面的这些更改称为非动态更改。非动态更改在管理控制台中由此警告图标表示: 如果对非动态配置设置进行了编辑,则只有在重新启动服务器之后,所有对动态配置设置所进行的编辑才会生效。
11) 点击 域结构 中的[部署],启动刚才部署的应用程序。
12) 在地址栏中输入 http://localhost:7001/部署程序名在web中显示应用程序。
BIRT的部署方法基本和上面步骤相同,注意一点,在部署前将
commons-logging.jar 拷入 WebViewerExample 中的 lib 包中,否则最后显示会报错。
Weblogic Server 的部署方法有很多,weblogic.Deployer、管理控制台、WLST 等等。刚才介绍的管理控制台的部署,它是一个可视化的界面,用起来比较方便。
推荐:在这里推荐使用一种应用程序的目录管理方法,新建目录结构如下:
C:myApplication
app
plan
将你的应用程序放入此目录
部署完后将会再此目录下自动产生plan.xml文件
用此目录有利于很好的管理配置文件。
关于 Weblogic 的更多详细资料,我这里推荐几个比较好的官方学习网站:
www.bea.com.cn bea的产品网站
edocs.bea.com.cnbea的比较系统的学习网站
dev2dev.bea.com.cn 一般介绍bea的最新技术,动态等的网站
4.3. web外观显示
部署好的报表页面显示样式是固定的,在多数情况下我们都希望修改外观,下面将对此做简单介绍。
Webcontent是主要文件夹:
1) Webcontent中的ajax目录,完成了在web上显示的报表分页的功能。
2) Styles目录中的style.css是整个报表在web上显示的外观,包括工具条颜色,字体。文件注释很清楚,具体修改可以参见注释。
3) pages目录pages/control/ NavigationbarFragment.jsp 分页那一条工具栏的 JSP pages/control/ ToolbarFragment.jsp 工具按纽JSP,可以修改以保留自己想要使用的功能按纽。pages/control/ ProgressBarFragment.jsp 它是显示刚开始读取报表时,显示条的样式。
4) Layout目录 FramesetFragment.jsp 可以修改报表标题。
在 WEB-INF/web.xml文件中,BIRT_VIEW_REPORT_ROOT 是配置报表路径的属性,如果没有配置则是默认路径:$tomcat$\webapps\birt
目前在web上显示的所有的都是英文。项目有一个资源文件,打包在lib/viewservlets.jar中,…/…/resource/messages.properties文件中。显示中文的解决方法是,用unicode转换器把要显示的中文事先转换好,然后替换资源文件中的英文。
5. BIRT总结
BIRT是目前比较常用也是比较方便,效率较高的报表制作工具。
BIRT作款功能强源报表工具其版本升级更新速度非快1.02.0直新 2.2.1版本论功能性能都极提高扩充BIRT提供标准J2EE实现组件发布支持J2EE应用web server服务器报表进行预览等操作家使用BIRT Viewer候能益纷繁参数设置云雾网论坛碰哪问题同官文档细致全所我些 参数进行简单系统总结希望能家BIRT发所帮助些参数2.2.1版本准请家特别注意1. Servlet模式说明
查看BIRT Viewer自带web.xml文件看几pattern:
frameset ----
采用Ajax框架显示工具条导航条TOC面板实现复杂操作页处理导数据导报表打印等等该模式自report document文件(预览report design文件)特定目录(用户用参数指定定义web.xml)采用Ajax速度较慢
run ----
采用Ajax框架实现frameset复杂功能临report document文件(预览report design文件)支持页主要应用BIRT Designerpreview tab支持cancel操作其用采用Ajax速度较慢
preview --- 没用Ajax框架直接调用底层Engine
API报表进行render报表内容直接输浏览器种模式run模式调用相同Engine
API唯区别于run采用Ajax获取报表内容preview直接输浏览器要支持页用户需要URL定义__page
__pagerange参数两参数面详细说明需要特别说明几种预览模式preview速度快
document ---
该模式主要report design文件report
document文件用户URL提定document文件存放路径(存放server端)未指定直接
rptdocument发送客户端浏览器用户载客户端
output --- 该模式类似于frameset自report
document文件(预览report design文件)区别于output采用Ajax报表内容直接输浏览器
parameter
--- 该模式主要用于参数框般用户用用户直接通提供JSP
Tag--parameterPage实现参数框需要直接调用
download ---
用于导报表数据CSV格式使用frameset工具条导数据功能用模式
2. web.xml参数设置
web.xml文件许参数用户应该根据自已需求发些参数深入解面我些参数做说明
[BIRT_VIEWER_LOCALE]
设置默认Locale信息暂没太意义Locale信息首先URL定义__locale准没定义找前浏览器Locale信息才用定义信息
[BIRT_VIEWER_WORKING_FOLDER]
设置BIRT
Viewer工作目录用户report design或report
document文件存放目录URL采用相路径预览些报表文件默认前根目录
前支持三种形式:
相路径 ---
相前WEB应用context root.
绝路径
JAVA系统变量 --- 启服务器定义JVM系统变量java
–Dmyworkingfolder=D:/reportsweb.xml用${myworkingfolder}进行引用
[BIRT_VIEWER_DOCUMENT_FOLDER]
设置document文件存放路径默认documents目录路径设置同
[WORKING_FOLDER_ACCESS_ONLY]
简单报表访问限制控制实现设true,哪能预览存放工作目录报表文件默认值false
[BIRT_VIEWER_IMAGE_DIR]
设置临图片存放路径默认report/images目录路径设置同工作目录设置
[BIRT_VIEWER_LOG_DIR]
设置志文件存放路径默认logs目录路径设置同工作目录设置
[BIRT_VIEWER_LOG_LEVEL]
设置志level选值:ALL|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|OFF级别由高低
[BIRT_VIEWER_SCRIPTLIB_DIR]
设置用户script
lib文件存放目录( 报表用Java Event Handler Class
)默认值scriptlib路径设置同工作目录设置
[BIRT_RESOURCE_PATH]
设置用户资源存放路径些资源包括library文件image文件等默认前根目录路径设置同工作目录设置
[BIRT_VIEWER_MAX_ROWS]
设置获取dataset记录数主要应用于设计报表候预览报表记录数太花费间能引起out
of
memory问题默认限制
[BIRT_VIEWER_MAX_CUBE_LEVELS]
设置CUBE查询级数前面参数作用类似默认限制
[BIRT_VIEWER_CUBE_MEMORY_SIZE]
设置CUBE写memory值单位MB提高效率写内存比直接写硬盘快同要注意内存占用问题
[BIRT_OVERWRITE_DOCUMENT]
该参数主要用于frameset/output模式临document文件设true则每刷新页面都重新document文件false则重新用原document文件报表内容
[BIRT_VIEWER_CONFIG_FILE]
定义properties文件路径修改
[BIRT_VIEWER_PRINT_SERVERSIDE]
frameset工具条提供台服务器打印功能该参数设置打关闭台打印功能默认打选值:
ON
OFF
[HTML_ENABLE_AGENTSTYLE_ENGINE]
参数传递给Engine主要用于些CSS兼容性面问题默认值true
3. viewer.properties参数设置
viewer.properties文件主要定义些扩展参数
# configurable variable for JSP base
href. Please uncomment the below line.
#base_url=http://127.0.0.1:8080
该设置主要应用于代理服务器情况使用代理服务器request获取URI并非真URI需要定义
#
[EXTENSION
SETTING]
viewer.extension.html=html
viewer.extension.pdf=pdf
viewer.extension.postscript=ps
viewer.extension.doc=doc
viewer.extension.xls=xls
viewer.extension.ppt=ppt
定义输报表文件缀名format相关联
#
[OUTPUT FORMAT LABEL
NAME]
viewer.label.html=HTML
viewer.label.pdf=PDF
viewer.label.postscript=PostScript
viewer.label.doc=Word
viewer.label.xls=Excel
viewer.label.ppt=PowerPoint
定义导报表框报表格式列表format相关联名字更意义
#
[CSV
SEPARATOR]
viewer.sep.0=,
viewer.sep.1=
viewer.sep.2=:
viewer.sep.3=|
viewer.sep.4=\t
支持种CSV隔符用户增加新隔符(支持charstring)同需要修改JSP文件Messages.properties文件
#
[LOGGERS]
# "logger."+class=level
# if no level is specified or the text
"DEFAULT",
# then the default level from the web.xml will be
used
logger.org.eclipse.datatools.connectivity.oda=DEFAULT
logger.org.eclipse.datatools.enablement.oda=DEFAULT
前志都通Engine输需要其组件志输定义注意格式必须logger.org……且该组件必须实现javalogger
单独该组件设置志级别设DEFAULT使用web.xml设置
4. URL参数
面些主要用URL参数
__report
定义要预览rptdesign文件路径支持相路径绝路径相路径相于web.xml定义工作目录
__document
定义要预览rptdocument文件路径同支持相绝路径相路径相于web.xml定义工作目录同定义__report
__document参数__document优先未找相应document文件才design文件document文件
(frameset/output)或直接renderdesign文件(preview/run)
__title
定义报表显示标题
__showtitle
否显示frameset模式标题部true
| false
__toolbar
否显示frameset模式工具条true |
false
__navigationbar
否显示frameset模式导航条true |
false
__parameterpage
否强制弹或弹报表参数框true |
false
__format
输报表格式默认html现支持:pdf | doc | xls | postscript |
ppt
__locale
设置Locale信息 __locale=zh_CN
注意必须家加语言
__svg
设置chart输否SVG格式输true |
false
framesetrun模式采用javascript判断客户端浏览器否支持svg并非所浏览器效
__bookmark
设置页面要定位书签名字
__istoc
指定定位书签TOC名字true,根据__bookmark参数值获取真书签名实现跳转主要用于定位TOC
__rtl
指定HTML页面输否需要right
to left支持同家阅读习惯阿拉伯家右左
__page
指定要输报表页数依赖于报表页设计(page
break)
__pagerange
指定要输报表页数范围1,3,5-9
__resourceFolder
定义资源目录路径同web.xmlBIRT_RESOURCE_PATH设置
__asattachment
否附件式载报表PDF或其格式默认inline
__masterpage
否要显示master
pagetrue | false
__designer
该参数主要应用BIRT
Designer环境读取cache报表参数等等般用true |
false
__overwrite
该参数同web.xml定义参数web.xml全局设置URL通参数定义本操作设置
__imageID
内部参数用于image引用般用
__maxrows
设置Dataset查询记录数要注意设置全局影响面所请求主要用于BIRT
Designer提高报表设计效率同web.xmlBIRT_VIEWER_MAX_ROWS设置
__maxlevels
设置查询获取Cube级数同面__maxrows主要用于BIRT
Designer设计环境
同web.xmlBIRT_VIEWER_MAX_CUBE_LEVELS设置
__cubememsize
同web.xmlBIRT_VIEWER_CUBE_MEMORY_SIZE参数设置
__instanceid
查看BIRT输HTML代码看些HTML
Elementiid属性(table)instanceidEngine态提前预知所需要
HTML代码值该参数主要获取reportlet(报表片断输报表Table或Chart)需要配合
__isreportlet参数
__isreportlet
指定前输reportlettrue | false
特别说明:输reportletBIRT现提供两种式
1.
要输象(表格或Chart)定义bookmark用面URL输reportlet.
http://localhost:8080/birt/frameset?__report=test.rptdesign&__bookmark=bk&__isreportlet=true
2.
采用instanceid值事先预知需要预览HTML代码用面URL输reportlet.
http://localhost:8080/birt/output?__report=test.rptdesign&__instanceid=iid&__isreportlet=true
要注意reportlet支持document文档预览design文档输reportlet必须要使用frameset/output(自document文档)
__clean
BIRT临些文件都session相关比临document文件image文件些文件通session进行管理参数指定否需要session
timeout候清除些临文件默认值true
true |
false
__dpi
设置输Chartdpi数值
__fittopage
暂参数PDFpostscript格式报表效指定否调整至适合页面
__pagebreakonly
暂参数PDFpostscript格式报表效指定否采用BIRT报表内定页设置参数般需要__fittopage联合使用
__agentstyle
同web.xmlHTML_ENABLE_AGENTSTYLE_ENGINE参数设置
==========================
台Server端打印相关参数
==========================
__action
定义执行指令名称前支持print指令用于台服务器打印
__printer
台打印机名称
__printer_copies
应打印机打印份数参数
__printer_collate
应打印机双面打印参数
__printer_duplex
应打印机duplex参数
__printer_mode
应打印机模式参数单色彩色
__printer_pagesize
应打印机纸型参数比A4
BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的 2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE应用的web server服务器上,可以对生成的报表进行预览等操作。在大家使用BIRT Viewer的时候,可能会对它日益纷繁的参数设置如云里雾里,在网上论坛里也有很多人碰到这样哪样的问题,同时官方的文档也不细致不全。所以我就对这些 参数进行了一个简单系统的总结,希望能对大家的BIRT开发有所帮助。这些参数以2.2.1版本为准,请大家特别注意。1. Servlet模式说明
查看BIRT Viewer自带的web.xml文件,可以看到有以下几个pattern:
frameset ----
采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。
run ----
也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。
preview --- 没有用到Ajax框架,直接调用底层Engine
API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine
API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义__page和
__pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。
document ---
该模式主要是为了从report design文件生成report
document文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成
rptdocument发送到客户端浏览器,用户可以下载到客户端。
output --- 该模式类似于frameset,会自动生成report
document文件(预览report design文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。
parameter
--- 该模式主要用于生成一个参数对话框,一般用户不常用,用户可以直接通过提供的JSP
Tag--parameterPage去实现参数对话框,不需要直接调用。
download ---
用于导出报表数据为CSV格式,当你使用frameset工具条里的导出数据功能时,会用到这个模式。
2. web.xml里的参数设置
web.xml文件里有许多参数,用户应该根据自已的需求出发对这些参数有一个深入的了解。下面我会对这些参数一一做以说明。
[BIRT_VIEWER_LOCALE]
设置默认的Locale信息,暂时没有太大意义。因为Locale的信息,首先以URL上定义的__locale为准,如果没有定义,会找到当前浏览器的Locale信息,最后才会用到这里定义的信息。
[BIRT_VIEWER_WORKING_FOLDER]
设置BIRT
Viewer的工作目录。用户可以把report design或是report
document文件存放在这个目录下,这样就可以在URL上采用相对路径去预览这些报表文件了。默认是当前根目录。
当前支持三种形式:
相对路径 ---
这个相对当前的WEB应用的context root.
绝对路径
JAVA系统变量 --- 可以在启动服务器时,定义JVM的系统变量,如java
–Dmyworkingfolder=D:/reports。这样就可以在web.xml中用${myworkingfolder}进行引用了。
[BIRT_VIEWER_DOCUMENT_FOLDER]
设置生成的document文件的存放路径。默认是documents目录。路径设置同上。
[WORKING_FOLDER_ACCESS_ONLY]
简单的报表访问限制控制实现,如果设为true,哪就只能预览存放在工作目录下的报表文件。默认值是false。
[BIRT_VIEWER_IMAGE_DIR]
设置生成的临时图片的存放路径。默认是report/images目录。路径设置同工作目录设置。
[BIRT_VIEWER_LOG_DIR]
设置生成的日志文件存放路径。默认是logs目录。路径设置同工作目录设置。
[BIRT_VIEWER_LOG_LEVEL]
设置日志的level,可选的值有:ALL|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|OFF。级别由高到低。
[BIRT_VIEWER_SCRIPTLIB_DIR]
设置用户script
lib文件的存放目录( 在报表中用到的Java Event Handler Class
)。默认值是scriptlib。路径设置同工作目录设置。
[BIRT_RESOURCE_PATH]
设置用户资源存放路径,这些资源包括library文件,image文件等。默认是当前根目录。路径设置同工作目录设置。
[BIRT_VIEWER_MAX_ROWS]
设置获取dataset的最大记录数。主要应用于设计报表的时候,预览报表如果记录数太多,会花费很多的时间,也可能会引起out
of
memory问题。默认是不限制。
[BIRT_VIEWER_MAX_CUBE_LEVELS]
设置CUBE查询的最大级数。和前面的参数作用类似。默认是不限制。
[BIRT_VIEWER_CUBE_MEMORY_SIZE]
设置在生成CUBE时,可以写在memory中的最大值,单位是MB。可以提高效率,写在内存会比直接写在硬盘快很多。但同时也要注意内存占用的问题。
[BIRT_OVERWRITE_DOCUMENT]
该参数主要用于frameset/output模式,它们会生成临时的document文件上。如果设为true,则每次刷新页面时,都会重新去生成document文件,如果为false,则不会重新生成,只会用原来的document文件去生成报表内容。
[BIRT_VIEWER_CONFIG_FILE]
定义properties文件的路径,不可以修改。
[BIRT_VIEWER_PRINT_SERVERSIDE]
在frameset工具条上,提供有后台服务器打印的功能,该参数可以设置是打开还是关闭后台打印的功能。默认是打开。可选值为:
ON 和
OFF。
[HTML_ENABLE_AGENTSTYLE_ENGINE]
这个参数是会传递给Engine的,主要用于一些CSS的兼容性方面的问题。默认值是true。
3. viewer.properties参数设置
viewer.properties文件主要是定义一些扩展的参数。
# configurable variable for JSP base
href. Please uncomment the below line.
#base_url=http://127.0.0.1:8080
该设置主要应用于代理服务器的情况下,在使用代理服务器后,从request里获取的URI并非真正的URI,需要在这里定义。
#
[EXTENSION
SETTING]
viewer.extension.html=html
viewer.extension.pdf=pdf
viewer.extension.postscript=ps
viewer.extension.doc=doc
viewer.extension.xls=xls
viewer.extension.ppt=ppt
定义输出的报表文件的后缀名,和format相关联。
#
[OUTPUT FORMAT LABEL
NAME]
viewer.label.html=HTML
viewer.label.pdf=PDF
viewer.label.postscript=PostScript
viewer.label.doc=Word
viewer.label.xls=Excel
viewer.label.ppt=PowerPoint
定义导出报表对话框里的报表格式列表,和format相关联,这样名字会更有意义。
#
[CSV
SEPARATOR]
viewer.sep.0=,
viewer.sep.1=
viewer.sep.2=:
viewer.sep.3=|
viewer.sep.4=\t
支持多种CSV分隔符,用户也可以增加新的分隔符(只支持char,而不是string)。但同时需要修改JSP文件和Messages.properties文件。
#
[LOGGERS]
# "logger."+class=level
# if no level is specified or the text
"DEFAULT",
# then the default level from the web.xml will be
used
logger.org.eclipse.datatools.connectivity.oda=DEFAULT
logger.org.eclipse.datatools.enablement.oda=DEFAULT
当前的日志都是通过Engine输出的,如果需要其它组件的日志输出,可以在这里定义。注意格式必须为logger.org……。而且该组件必须实现了java的logger。
可以单独为该组件设置日志级别,如果设为DEFAULT,就会使用web.xml里的设置。
4. URL参数
下面是一些主要用到的URL参数。
“__report”
定义要预览的rptdesign文件路径,支持相对路径和绝对路径,相对路径是相对于web.xml中定义的工作目录。
“__document”
定义要预览的rptdocument文件路径,同样支持相对和绝对路径。相对路径是相对于web.xml中定义的工作目录。在同时定义了__report
和__document参数时,以__document为优先,如未找到相应的document文件,才会从design文件生成document文件
(frameset/output)或是直接去render这个design文件(preview/run)。
“__title”
定义报表显示的标题。
“__showtitle”
是否显示frameset模式下上方的标题部分。true
| false
“__toolbar”
是否显示frameset模式下的工具条。true |
false
“__navigationbar”
是否显示frameset模式下的导航条。true |
false
“__parameterpage”
是否强制弹出或不弹出报表参数对话框。true |
false
“__format”
输出报表的格式,默认为html。现在支持:pdf | doc | xls | postscript |
ppt
“__locale”
设置Locale信息,如 __locale=zh_CN,
注意必须是国家加语言。
“__svg”
设置chart输出是否以SVG格式输出。true |
false
frameset和run模式下,会采用javascript判断客户端浏览器是否支持svg,但并非对所有浏览器有效。
“__bookmark”
设置页面要定位的书签名字。
“__istoc”
指定定位的书签是不是一个TOC名字。如为true,就会根据__bookmark参数值去获取一个真正的书签名,从而实现正常的跳转。这个主要用于定位到一个TOC上。
“__rtl”
指定HTML页面输出是否需要right
to left。支持不同国家的阅读习惯,如阿拉伯国家是从右到左的。
“__page”
指定要输出的报表页数,这个依赖于报表的分页设计(page
break)。
“__pagerange”
指定要输出的报表页数范围。如1,3,5-9。
“__resourceFolder”
定义资源目录路径。同web.xml中的BIRT_RESOURCE_PATH设置。
“__asattachment”
是否以附件方式下载报表,如生成PDF或是其它格式里。默认是inline。
“__masterpage”
是否要显示master
page。true | false
“__designer”
该参数主要是应用在BIRT
Designer环境下,如会读取cache的报表参数等等,一般不用。true |
false
“__overwrite”
该参数同web.xml定义的参数,不过web.xml里是全局设置,在URL上通过参数可以定义本次操作的设置。
“__imageID”
内部参数,用于image的引用,一般不用。
“__maxrows”
设置Dataset查询的最大记录数,要注意这个设置是全局的,会影响后面所有的请求。主要用于BIRT
Designer下,提高报表设计效率。同web.xml中的BIRT_VIEWER_MAX_ROWS设置。
“__maxlevels”
设置查询获取Cube的最大级数。同上面的__maxrows,也主要用于BIRT
Designer设计环境。
同web.xml中的BIRT_VIEWER_MAX_CUBE_LEVELS设置。
“__cubememsize”
同web.xml中的BIRT_VIEWER_CUBE_MEMORY_SIZE参数设置。
“__instanceid”
如果查看BIRT输出的HTML代码,你就可以看到一些HTML
Element会有一个iid的属性(如table),这个就是instanceid。这个是Engine动态生成的,不可提前预知。所以你需要从
HTML代码中得到这个值。该参数主要是为了获取reportlet(报表片断,如只输出报表中的一个Table或是一个Chart)。需要配合
__isreportlet参数。
“__isreportlet”
指定当前输出是不是一个reportlet。true | false
特别说明:为了输出一个reportlet,BIRT现在提供两种方式。
1.
为要输出的对象(表格或是Chart)定义一个bookmark,然后可以用下面的URL输出reportlet.
http://localhost:8080/birt/frameset?__report=test.rptdesign&__bookmark=bk&__isreportlet=true
2.
采用instanceid,但这个值事先是无法预知的,需要预览一次后从HTML代码中得到。然后用下面的URL输出reportlet.
http://localhost:8080/birt/output?__report=test.rptdesign&__instanceid=iid&__isreportlet=true
还有就是要注意,reportlet只支持document文档。如果是预览design文档去输出reportlet,就必须要使用frameset/output(自动生成document文档)。
“__clean”
BIRT里临时生成的一些文件都是和session相关的,比如临时document文件,还有image文件。这些文件也可以通过session进行管理,这个参数就是指定是否需要在session
timeout的时候清除这些临时文件。默认值是true。
true |
false
“__dpi”
可以设置输出Chart的dpi数值。
“__fittopage”
暂时这个参数只对PDF和postscript格式报表有效,指定是否调整至适合页面。
“__pagebreakonly”
暂时这个参数只对PDF和postscript格式报表有效,指定是否只采用BIRT报表内定的分页设置。这个参数一般需要和__fittopage联合使用。
“__agentstyle”
同web.xml中的HTML_ENABLE_AGENTSTYLE_ENGINE参数设置。
==========================
后台Server端打印相关参数
==========================
“__action”
定义执行的指令名称。当前只支持print指令,用于后台服务器打印。
“__printer”
后台打印机名称。
“__printer_copies”
对应打印机的打印份数参数。
“__printer_collate”
对应打印机的双面打印参数。
“__printer_duplex”
对应打印机的duplex参数。
“__printer_mode”
对应打印机的模式参数。是单色还是彩色。
“__printer_pagesize”
对应打印机的纸型参数。比如A4。
===============================================================================
==========================
JSP Tag相关参数
===================================
“__id”
viewer的ID号,这个参数一般不常用,主要用于JSP
Tag中,如在一个页面插入两个BIRT
Viewer,而且预览同一个报表文件,这时候因为在一个session下面,所以需要用不同的ID去生成单独的document文件。不至于都生成同一
个document文件上,从而引发冲突。
“__pattern”
在JSP Tag中用于指定要提交的Servlet
Pattern名字,如frameset/output/run/preview等。主要用于采用parameter模式生成parameter
dialog对话框时。
“__target”
可以指定提交到的窗口名称。如_blank,_self等。
“__nocache”
指定是否会用到cache的报表参数值,这些cache的值一般保存在rptconfig文件里。在设计报表并预览的时候,可以保存输入的报表参数值。这个在runtime的时候不常用。
===============================================================================
==========================
报表参数相关
===================================
“__isnull”
指定当前的报表参数为null值,后面是报表的参数名。
“__islocale”
指定当前的报表参数值是和Locale/Format相关的,必须用特定的Locale/Format转化参数值(从String转化为Object)。格式为__islocale=paramName。
“__isdisplay__”
指定报表参数的displayText值,格式为__isdisplay__paramName=displayText。可以在报表中引用displayText值,如params[“p1”].displayText。
在URL上传displayText时如下(报表参数名为p1):
&__isdisplay__p1=hello
“__islocale__”
指定该报表参数值是Locale/Format相关的,同时给定了参数值。格式为__islocale__paramName=paramValue。
===============================================================================
==========================
Export Data参数
===================================
“__exportEncoding”
该参数应用于导出数据为CSV中,可以指定导出的文件编码,如GBK或是GB2312等。
“__sep”
该参数应用于导出数据为CSV中,可以指定数据分隔符,如逗号,冒号等。
“__exportdatatype”
该参数应用于导出数据为CSV中,可以指定是否输出数据类型。true
|
false
“ResultSetName”
要导出数据的记录集名字。
“SelectedColumnNumber”
要导出的栏位数。
“SelectedColumn”
要导出的数据栏位名称。
具体可以查看BirtSimpleExportDataDialog.js文件。
===============================================================================
5.
其它参数设置
在BIRT Viewer里还有一个比较特殊的参数应用,就是用户可以自定义自已的servlet,然后传递对象到Application
Context中,在报表中就可以从全局的Application
Context去获取到这个对象。
这里相关的有两个内定的参数,AppContextKey和AppContextValue。下面是一个简单的示例。
public
void service( HttpServletRequest request,
HttpServletResponse response )
throws ServletException,
IOException, BirtException
{
String
myKeyName = "mykey"
List values = new ArrayList()
values.add(
"hello" )
values.add( new Date() )
request.setAttribute(
"AppContextKey", myKeyName )
request.setAttribute( "AppContextValue",
values )
RequestDispatcher rd = request.getRequestDispatcher( "/frameset"
)
rd.include( request, response )
}