简体   繁体   English

SpagoBI多值参数

[英]SpagoBI multi value parameter

I'm trying to create a multi-value parameter in SpagoBI. 我正在尝试在SpagoBI中创建一个多值参数。

Here is my data set query whose last line appears to be causing an issue. 这是我的数据集查询,其最后一行似乎引起了问题。

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_

I created before open script in my dataset which looks like this: 我在数据集中的打开脚本之前创建了如下代码:

this.queryText = this.queryText.replace(_CITY_, " CUSTOMER.CITY in ( "+params["cp"].value+" ) "); 

My parameter is set as string, display type dynamic list box. 我的参数设置为字符串,显示类型为动态列表框。

When I run the report I'm getting that error. 当我运行报告时,出现了该错误。

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:

Could anyone please help me? 谁能帮我吗?

Hello I managed to solve the problem. 您好,我设法解决了这个问题。 Here is my code: 这是我的代码:

var substring = "" ;
var strParamValsSelected=reportContext.getParameterValue("citytext");
substring += "?," + strParamValsSelected ;
this.queryText = this.queryText.replace("'xxx'",substring);

As You can see the "?" 如您所见,“?” is necessary before my parameter. 在我的参数之前是必需的。 Maybe It will help somebody. 也许它将帮助某人。 Thank You so much for Your comments. 非常感谢您的评论。

If you are using SpagoBI server and High charts (JFreeChart Engine) / JSChat Engine you can just use ($P{param_url}) in query, or build dynamic query using Java script / groovy Script 如果您使用SpagoBI服务器高级图表 (JFreeChart Engine)/ JSChat Engine,则可以在查询中使用($ P {param_url}),或使用Java脚本/ groovy脚本构建动态查询

so your query could also be: 因此您的查询也可能是:

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}')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM