使用MDX传递SSRS Mulple值参数

时间:2015-11-11 06:04:23

标签: reporting-services mdx ssrs-2012

我正在运行以下命令以获取多值报告

StrToSet
("[Dim Branch].[HierarchyB-T-C].[Trading Code].&[" + 
Replace(
Join(
Parameters!TradingName.Value,"],"
) +"]",",",",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["),",")

但获取'加入'的语法不正确'。 我不知道我做错了什么。有人可以纠正我吗? 如果我简单地使用 StrToSet(@TradingName,Constrained)它适用于单值。 你的帮助会很明显

2 个答案:

答案 0 :(得分:0)

你需要花括号来形成一套吗?我在下面的开头添加了一个...有点不确定字符串的结尾在哪里 - 它是否像.&["那样结束了?!

StrToSet(
   "{[Dim Branch].[HierarchyB-T-C].[Trading Code].&[" 
   + 
   Replace(
      Join(Parameters!TradingName.Value,"],") + "]"
    , ","
    , ",[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
   )
   ,","
 )

如果Parameters!TradingName.Value等于此格式MEC,RSA的字符串,则可能不需要join

StrToSet(
  "{" 
  +
  Replace(
    "[Dim Branch].[HierarchyB-T-C].[Trading Code].&[" 
    + 
    Parameters!TradingName.Value
   , ","
   ,"],[Dim Branch].[HierarchyB-T-C].[Trading Code].&["
  )
  +
  "]}"
 ,constrained)

答案 1 :(得分:0)

要从参数传递多个值,我只需按照步骤操作即可 1添加参数并命名 enter image description here

  1. 在数据集属性(共享数据集属性)下,“参数”选项卡以这种方式编写表达式 =斯普利特(参数!TradingName.Value, “”) enter image description here
  2. enter image description here

    1. 在共享数据集中,使用 WHERE(StrToSet(@TradingName))
    2. 编写MDX

      SELECT 
         	 {[Total]} ON COLUMNS 
       ,
       	{
      	[Dim Account].[Account Type].&[Income] 
      	}
      	*
          STRTOMEMBER("[Dim Fiscal Year].[HierarchyFiscal].[E Month].&[" + @FiscalYear +"]&[" + FORMAT(Now(),"MMMM") +"].PREVMEMBER")  
      	*
      	 ORDER
      	 (
      	 {
      	 [Dim Branch].[Branch Name].[Branch Name]
      	 },[Total], BDESC
      	 )
        ON ROWS
      from [CubeProfitLoss]
      WHERE (StrToSet(@TradingName))

      1. 当您想要预览多个值时,请确保您正在使用,同样要分开交易名称 enter image description here