一.web.xml
1
5
6 BIRT_VIEWER_LOCALE
7 en-US
8
9
10
11
12
17
18 BIRT_VIEWER_TIMEZONE
19
20
21
22
28
29 BIRT_VIEWER_WORKING_FOLDER
30
31
32
33
37
38 BIRT_VIEWER_DOCUMENT_FOLDER
39
40
41
42
43
44
49
50 WORKING_FOLDER_ACCESS_ONLY
51 true
52
53
54
55
56
60
61 BIRT_VIEWER_IMAGE_DIR
62
63
64
65
66
67
71
72 BIRT_VIEWER_LOG_DIR
73
74
75
76
77
78
82
83 BIRT_VIEWER_LOG_LEVEL
84 WARNING
85
86
87
88
89
95
96 BIRT_VIEWER_SCRIPTLIB_DIR
97
98
99
100
104
105 BIRT_RESOURCE_PATH
106
107
108
109
110
111
117
118 BIRT_VIEWER_MAX_ROWS
119
120
121
122
123
124
130
131 BIRT_VIEWER_MAX_CUBE_ROWLEVELS
132
133
134
135 BIRT_VIEWER_MAX_CUBE_COLUMNLEVELS
136
137
138
139
140
141
146
147 BIRT_VIEWER_CUBE_MEMORY_SIZE
148
149
150
151
152
153
157
158 BIRT_VIEWER_CONFIG_FILE
159 WEB-INF/viewer.properties
160
161
162
163
164
170
171 BIRT_VIEWER_PRINT_SERVERSIDE
172 ON
173
174
175
176
177
181
182 HTML_ENABLE_AGENTSTYLE_ENGINE
183 true
184
185
186
187
188
191
192 BIRT_FILENAME_GENERATOR_CLASS
193 org.eclipse.birt.report.utility.filename.DefaultFilenameGenerator
194
2> Servlet模式说明
1
2
3 ViewerServlet
4 org.eclipse.birt.report.servlet.ViewerServlet
5
6
7
8
9 EngineServlet
10 org.eclipse.birt.report.servlet.BirtEngineServlet
11
12
13
14
15
26
27
28 ViewerServlet
29 /frameset
30
31
32
33
34
45
46 ViewerServlet
47 /run
48
49
50
51
66
67 EngineServlet
68 /preview
69
70
71
72
73
80
81
82 EngineServlet
83 /download
84
85
86
87
88
95
96
97 EngineServlet
98 /parameter
99
100
101
102
103
112
113
114 EngineServlet
115 /document
116
117
118
119
120
127
128
129 EngineServlet
130 /output
131
132
133
134
139
140 EngineServlet
141 /extract
142
二、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里的设置。
三、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名字。这个主要用于定位到一个TOC上。
如为true,就会根据__bookmark参数值去获取一个真正的书签名,从而实现正常的跳转。
“__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代码中得到。
就必须要使用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 );
}