SpagoBI 多值参数
SpagoBI multi value parameter
我正在尝试在 SpagoBI 中创建一个多值参数。
这是我的数据集查询,其最后一行似乎导致了问题。
select C."CUSTOMERNAME", C."CITY", D."YEAR", P."NAME"
from "CUSTOMER" C, "DAY" D, "PRODUCT" P, "TRANSACTIONS" T
where C."CUSTOMERID" = T."CUSTOMERID"
and D."DAYID" = T."DAYID"
and P."PRODUCTID" = T."PRODUCTID"
and _CITY_
我在我的数据集中创建了 before open 脚本,如下所示:
this.queryText = this.queryText.replace(_CITY_, " CUSTOMER.CITY in ( "+params["cp"].value+" ) ");
我的参数设置为字符串,显示类型动态列表框。
当我 运行 报告时,我收到了那个错误。
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "
this.queryText = this.queryText.replace(_CITY_, " CUSTOMER.CITY in ( "+params["cp"].value+" ) ");
":
Fail to execute script in function __bm_beforeOpen(). Source:
有人能帮帮我吗?
您好,我设法解决了这个问题。这是我的代码:
var substring = "" ;
var strParamValsSelected=reportContext.getParameterValue("citytext");
substring += "?," + strParamValsSelected ;
this.queryText = this.queryText.replace("'xxx'",substring);
正如你看到的“?”在我的参数之前是必要的。也许它会帮助某人。非常感谢您的评论。
如果您正在使用 SpagoBI 服务器 和 High 图表(JFreeChart 引擎)/JSChat 引擎,您可以只使用 ($P{param_url}) 在查询中,
或使用 Java 脚本/groovy 脚本
构建动态查询
所以您的查询也可以是:
select C."CUSTOMERNAME", C."CITY", D."YEAR", P."NAME"
from "CUSTOMER" C, "DAY" D, "PRODUCT" P, "TRANSACTIONS" T
where C."CUSTOMERID" = T."CUSTOMERID"
and D."DAYID" = T."DAYID"
and P."PRODUCTID" = T."PRODUCTID"
and CUSTOMER."CITY" in ('$P{param_url}')
我正在尝试在 SpagoBI 中创建一个多值参数。
这是我的数据集查询,其最后一行似乎导致了问题。
select C."CUSTOMERNAME", C."CITY", D."YEAR", P."NAME"
from "CUSTOMER" C, "DAY" D, "PRODUCT" P, "TRANSACTIONS" T
where C."CUSTOMERID" = T."CUSTOMERID"
and D."DAYID" = T."DAYID"
and P."PRODUCTID" = T."PRODUCTID"
and _CITY_
我在我的数据集中创建了 before open 脚本,如下所示:
this.queryText = this.queryText.replace(_CITY_, " CUSTOMER.CITY in ( "+params["cp"].value+" ) ");
我的参数设置为字符串,显示类型动态列表框。
当我 运行 报告时,我收到了那个错误。
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "
this.queryText = this.queryText.replace(_CITY_, " CUSTOMER.CITY in ( "+params["cp"].value+" ) ");
":
Fail to execute script in function __bm_beforeOpen(). Source:
有人能帮帮我吗?
您好,我设法解决了这个问题。这是我的代码:
var substring = "" ;
var strParamValsSelected=reportContext.getParameterValue("citytext");
substring += "?," + strParamValsSelected ;
this.queryText = this.queryText.replace("'xxx'",substring);
正如你看到的“?”在我的参数之前是必要的。也许它会帮助某人。非常感谢您的评论。
如果您正在使用 SpagoBI 服务器 和 High 图表(JFreeChart 引擎)/JSChat 引擎,您可以只使用 ($P{param_url}) 在查询中, 或使用 Java 脚本/groovy 脚本
构建动态查询所以您的查询也可以是:
select C."CUSTOMERNAME", C."CITY", D."YEAR", P."NAME"
from "CUSTOMER" C, "DAY" D, "PRODUCT" P, "TRANSACTIONS" T
where C."CUSTOMERID" = T."CUSTOMERID"
and D."DAYID" = T."DAYID"
and P."PRODUCTID" = T."PRODUCTID"
and CUSTOMER."CITY" in ('$P{param_url}')