我試圖在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:
任何人都可以幫我嗎?
你在哪裏運行報告?在spagobi服務器或工作室?要麼..?? –
在工作室。我解決了這個問題。我必須通過「?」作爲我的列表框字符串數組的第一個元素,然後是其餘的元素。我從來沒有見過這樣的例子。現在我遇到了將報告部署到服務器的問題。 **參數「CITYPARAM」的類型預計爲「Object []」,而不是「java.lang.String」。**我想問題是我在studio中的參數設置爲列表框。我不知道如何用文本框做到這一點,因爲beforeOpen腳本中的典型替換不起作用。 「?」在我的querry是必要的。我很高興你在這裏marc_s – LucasPG
是的你是對的。這是因爲參數類型。 將參數類型更改爲String。在beforeOpen腳本中,嘗試 'this.queryText = this.queryText +「和CUSTOMER.CITY in(」+ params [「cp」]。toString()。replace(「;」,「,」)+「)」'this爲我工作。 –