Estoy tratando de crear un parámetro de valor múltiple en SpagoBI.

Aquí está mi consulta de conjunto de datos cuya última línea parece estar causando un problema.

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_

Creé antes de abrir un script en mi conjunto de datos que se ve así:

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

Mi parámetro está configurado como cadena, cuadro de lista dinámica de tipo de visualización.

Cuando ejecuto el informe, aparece ese 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:

¿Podría alguien ayudarme por favor?

1
LucasPG 26 jul. 2016 a las 14:02

2 respuestas

La mejor respuesta

Hola logré solucionar el problema. Aquí está mi código:

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

Como puede ver el "?" es necesario antes de mi parámetro. Quizás ayude a alguien. Muchas gracias por sus comentarios.

2
LucasPG 2 ago. 2016 a las 17:48

Si está utilizando servidor SpagoBI y gráficos altos (motor JFreeChart) / motor JSChat, puede usar ($ P {param_url}) en la consulta, o crear una consulta dinámica usando Java script / groovy Script

Por lo que su consulta también podría ser:

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}')
0
Anand Pol 17 jul. 2019 a las 13:00