Многозначный параметр SpagoBI

Я пытаюсь создать многозначный параметр в 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_

Я создал перед открытым сценарием в моем наборе данных, который выглядит следующим образом:

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:

Может ли кто-нибудь помочь мне?

2 ответа

Решение

Здравствуйте, мне удалось решить проблему. Вот мой код:

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

Как видите "?" надо перед моим параметром. Может быть, это кому-нибудь поможет. Большое спасибо за ваши комментарии.

Если вы используете сервер SpagoBI и High charts (JFreeChart Engine), вы можете просто использовать ($P{param_url}).

поэтому ваш запрос также может быть:

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})
Другие вопросы по тегам