-->

SpagoBI OLAP报表传递可选参数(SpagoBI OLAP report passing o

2019-09-28 07:08发布

直升机。 今天是我的另一次战斗一天OLAP raport可选参数。 我有一个MDX查询问题。 我写的是这样的:

select
NON EMPTY {{[Measures].[VALUE]}} ON COLUMNS,
NON EMPTY {
IIF(ISEMPTY([CUSTOMER].[${param}]) //CHECKING IF PARAMETER IS EMPTY
,{[CUSTOMER].[COUNTRY].Members},
{[CUSTOMER].[${param}]}
)
}ON ROWS
from [TRANSACTIONS]

${param}是我的可选参数[CUSTOMER].[COUNTRY] 。 我未选中“必需的”我的参数检查按钮,这样OLAP应有的一切[VALUE]执行它不带参数之后。 而且还有一个问题,因为我发起OLAP raport参数后,可能希望被填充了。 它给了我一个错误。

档案属性“PARAM”不存在。

但我不想使用配置文件属性来填充它。 我创建值列表和分析驱动程序我的参数,我用它来传递的可能值到我的列表框中字符串参数- ${param}

是否有可能有一个与可选参数的OLAP报表? 任何BI高手吗? 我会greatfull的任何帮助。

更新 :我已经做了这样的事情,我觉得这个语法是正确的,(我被检查SpagoBI例子)

WITH MEMBER [CUSTOMER].[SELECTED] AS ' Parameter("param") ' ,   SOLVE_ORDER = 2
MEMBER [CUSTOMER].[LEN] AS ' LEN(Parameter("param")) ',    SOLVE_ORDER = 1
select
NON EMPTY {{[Measures].[VALUE]}} ON COLUMNS,
NON EMPTY {
IIF([CUSTOMER].[LEN]=0
,{[CUSTOMER].[COUNTRY].Members},
{[CUSTOMER].[CUSTOMER].[SELECTED]}
)
}ON ROWS
from [TRANSACTIONS]

但现在我有两种可能性(设置/取消)参数相同的错误

javax.servlet.jsp.JspException:org.apache.jasper.JasperException:javax.servlet.ServletException:javax.servlet.jsp.JspException:com.tonbeller.jpivot.olap.model.OlapException:1

有任何想法吗? 谢谢 :)

Answer 1:

这个问题是直接复制你以前的帖子:

https://stackoverflow.com/questions/38970610/olap-report-with-optional-parameter

为$ {} PARAM是一个字符串?

如果它是一个字符串,那么下面应有的功能:

WITH MEMBER [Measures].[x] AS ${param}
SELECT
NON EMPTY {[Measures].[x]} ON COLUMNS
FROM [TRANSACTIONS];

它是否起作用?

如果它不那么起作用的问题是不是真的MDX相关-因为某种原因你的语法或参数被移动到客户端的方式是错误的。


注意

以上是这个超级简单的脚本相当于:

WITH 
  MEMBER [Measures].[x] AS "hello world" 
SELECT 
  NON EMPTY 
    {[Measures].[x]} ON 0
FROM [Adventure Works];

你有AdvWrks立方? 试试这些:

WITH 
  MEMBER [Measures].[x] AS "I'm not empty" 
SELECT 
  {
    IIF
    (
      (IsEmpty([Measures].[x])) //<< this returns False
     ,[Product].[Product Categories].[Category].MEMBERS
     ,{[Measures].[x]}          //<< this is what IIF returns
    )
  } ON 0
FROM [Adventure Works];

它返回此:

现在,我测试了为IsEmpty:

WITH 
  MEMBER [Measures].[x] AS "I'm not empty" 
SELECT 
  {
    IIF
    (
      (NOT //<< added this to check functionality of IsEmpty
        IsEmpty([Measures].[x]))
     ,[Product].[Product Categories].[Category].MEMBERS //<< this is what IIF returns
     ,{[Measures].[x]}
    )
  } ON 0
FROM [Adventure Works];

我们得到如下:

我想在您的情况正在发生的事情是这样的 - 该参数是不是空的,但实际上是一个零长度字符串:

WITH 
  MEMBER [Measures].[x] AS "" 
SELECT 
  {
    IIF
    (
      (
        IsEmpty([Measures].[x]))
     ,[Product].[Product Categories].[Category].MEMBERS
     ,{[Measures].[x]}  //<< the zero length string goes to here
    )
  } ON 0
FROM [Adventure Works];

结果是:



文章来源: SpagoBI OLAP report passing optional parameter