Многозначный параметр 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})