Reporting services SpagoBI OLAP报告传递可选参数

Reporting services SpagoBI OLAP报告传递可选参数,reporting-services,parameters,mdx,olap,spagobi,Reporting Services,Parameters,Mdx,Olap,Spagobi,你好。今天是我与可选参数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 f

你好。今天是我与可选参数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”不存在

但是我不想用profile属性填充它。我已经为参数创建了值列表和分析驱动程序,用于将可能的值传递给列表框字符串参数-
${param}

是否有可能使用可选参数生成OLAP报告?这里有BI大师吗? 如果能得到任何帮助,我将不胜感激

更新:我做过类似的事情,我认为这种语法是正确的,(我正在检查SpagoBI示例)

但现在我对两种可能性(set/unset)参数都有相同的错误

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


有什么想法吗?谢谢:)

这个问题是你以前文章的直接副本:

${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];
与
成员[度量][x]为“我不是空的”
挑选
{
IIF
(

(IsEmpty([Measures].[x])//您做了哪些测试?您能将参数传递到任何mdx脚本中吗?我建议设置一个非常简单的脚本(就像我在上一篇文章中包含的!),以尝试确定您的客户机是否看到${param}的值?当我从列表框中为参数选择值时,它可能会执行良好,当我手动将参数值放入MDX时,它也会执行。但当参数为空时,我的OLAP不知道什么是
${param}
在MDX查询中。我可以将参数传递给我的MDX。如果我检查该参数是必需的,OLAP可以正常工作,但我需要可选参数。如果未选中,报表应该包含所有数据。我的MDX查询编辑器告诉我意外字符“$”,我不知道SpagoBI有什么问题syntax@LucasPG我添加了另一种可能性-可能是零长度的string正在通过,如果${param}length等于0,我如何检查我的IFF条件?@LucasPG您可以将此添加到脚本的开头,使用成员[Measures].[x]作为LEN(${param})
,或者它仍然说
意外字符“$”
。我可以添加此项,但我的measurer不是我的参数
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];
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];