在BIRT中,使用JavaScript,我想读取从网页传递的参数,并根据它是特定值,显示修改后的查询。
以下代码是否正确?我在哪里放这个? (哪个事件)
importPackage( Packages.javax.servlet.http );
importPackage( org.eclipse.birt.report.engine.api.script );
httpServletReq = reportContext.getHttpServletRequest( );
param=httpServletReq.getQueryString( );
if( param.indexof( "All") != -1) {
queryText = "select CLASSIC.PRODUCTLINES.PRODUCTLINE,
CLASSICMODELS.PRODCTLINES.TEXTDESCRIPTION from CLASSIC.PRODUCTLINES";
}
答案 0 :(得分:3)
正确的位置是您的数据集beforeOpen
事件。
而不是queryText
使用this.queryText
。在数据集上下文中,this
引用该数据集对象及其属性。
使用httpServletRequest
设置参数对我来说似乎很奇怪。为什么不使用原生BIRT报告参数?
if (params["All"].value != null) {
this.queryText = "select ...";
}