【发布时间】:2016-07-26 11:02:17
【问题描述】:
我正在尝试在 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”。我猜问题是我在工作室中的参数设置为列表框。我不知道如何使用文本框执行此操作,因为 beforeOpen 脚本中的典型替换不起作用。这 ”?”在我的查询中是必要的。我很高兴你在这里 marc_s
-
是的,你是对的。这是因为参数类型。将参数类型更改为字符串。在 beforeOpen 脚本中,尝试
this.queryText = this.queryText+" and CUSTOMER.CITY in (" + params["cp"].toString().replace(";", ",") + ")"这对我有用。 -
@su_bhagya 是对的
标签: java parameters birt spagobi