【问题标题】:SpagoBI multi value parameterSpagoBI 多值参数
【发布时间】: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


【解决方案1】:

您好,我设法解决了这个问题。这是我的代码:

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

如您所见,“?”在我的参数之前是必需的。也许它会帮助某人。非常感谢您的 cmets。

【讨论】:

    【解决方案2】:

    如果您使用 SpagoBI 服务器High charts (JFreeChart Engine) / JSChat Engine,您可以在查询中使用 ($P{param_url}), 或使用 Java script / groovy Script 构建动态查询

    所以您的查询也可能是:

    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}')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多