eGetParameterDefinitionTask
public IGetParameterDefinitionTask createGetParameterDefinitionTask(
IReportRunnable runnable, InputOptions options )
{
IGetParameterDefinitionTask task = null;
try
{
HttpServletRequest request =
(HttpServletRequest) options.getOption( InputOptions.OPT_REQUEST );
task = engine.createGetParameterDefinitionTask( runnable );
task.setLocale(ParameterAccessor.getLocale(request));
// set app context
Map context = BirtUtility.getAppContext( request,
ReportEngineService.class.getClassLoader( ) );
task.setAppContext( context );
}
catch ( Exception e )
{
}
return task;
}
基于Eclipse的Birt国际化的分析与改进(6)
时间:2011-07-03 IBM 苏春波
类 ParameterAccessor 感兴趣的朋友可以研究一下,他是传递入口参数的。如 __action、__nocache、__report 等,参数说明如下。
表 1. 参数描述
参数名 |
参数说明 |
参数值 |
默认值 |
__format |
指定报表输出格式 |
html 或 pdf |
html |
__isnull |
指明一个参数是 null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT 会将它们当作 null 处理。 - 对于字符串,BIRT 会将它作为空字符串。因此,为了说明某个字符串是 null,通常写为:__isnull= 参数。 |
报表输入参数名 |
None. Required. |
__locale |
本地化选项 |
en-us 或 ch-zh |
虚拟机默认 |
__report |
指定 *.rptdesign 文件路径 |
|
None. Required. |
__svg |
指定是否使用 SVG 矢量图来显示图表。
SVG 矢量图形是一种 XML 格式的文本文件,在 IE 下需要安装 Adodb SVG Viewer 插件才能浏览。
|
true 或 false |
安装插件后浏览时
frameset 下默认 true,run 下默认 false;不安装插件时默认为 false |
管理 console 国际化的资源文件
通过上面讲解,我们知道 ViewerResourceHandle 继承自 ResourceHandle 类,而 ResourceHandle 类是负责组织资源文件的,代码默认是将资源文件放到类路径下的,也就是该类的包路径下。通过以上分析可知,如果我们想改变资源文件的路径只能有这么两种方法。方法一,重写一个 ResourceHandleNew 类 , 然后让 ViewerResourceHandle 继承自 ResourceHandleNew; 方法二,修改 public ResourceHandle( ULocale locale ) 方法,或添加一个新的方法 public ResourceHandleExtent( ULocale locale ),在 ResourceHandleExtent 方法中实现资源文件路径可以通过外部变量来配置。其实两种方法各有千秋,不过核心就是都要修改 ResourceHandle 方法来达到管理资源文件的目的。下面我们来重写 ResourceHandle 方法。
清单 6. 修改后的 ResourceHandle
public ResourceHandle( ULocale locale )
{
if ( locale == null )
locale = ULocale.getDefault( );
// get resource path
String birtResourceFolder = ParameterAccessor.processRealPat
|