0

我面临级联参数的默认值的已知问题。由于我的参数是在 MDX 中编码的,因此我找不到任何具体的解决方法。

我没有尝试更改参数查询,而是想检查是否有可能为级联或任何参数硬编码 SELECT ALL。

这是我的参数数据集:

WITH 
    MEMBER [Measures].[ParameterValue] AS [Organisation].[Cost Centre Code and Description].CURRENTMEMBER.UNIQUENAME 
SELECT  
    [Measures].[ParameterValue]
ON COLUMNS , 
[Organisation].[Cost Centre Code and Description].[Cost Centre Code and Description].ALLMEMBERS ON ROWS 
FROM 
(SELECT STRTOSET(@CC_Caption, CONSTRAINED) ON COLUMNS FROM 
[CUBE] )

有人知道如何对SELECT ALLSSRS 参数进行硬编码吗?

感谢您的任何观点:)

4

2 回答 2

1

它可以在自定义代码中完成。虽然不简单。我在使用 SharePoint 列表作为源时使用过。这里应该适用。我将使用示例“客户端”参数。

  1. 创建一个参数@ClientHelper。将其设置为隐藏的、多值的、来自数据集查询的可用值以及来​​自数据集查询的默认值。
  2. 创建一个参数@Client。将其设置为可见的,而不是多值,以及“指定值”的可用值。将标签列留空并输入“=Split(Code.RemoveDups(JOIN(Parameters!ClientHelper.Value, “|”)), “|”)”作为值表达式。您可以将默认值设置为您想要的任何值。
  3. 请注意,@ClientHelper 在参数列表中必须位于 @Client 之前。

您需要的自定义鳕鱼如下。如果您不需要删除重复,您也许可以更改它以满足您的需要。

公共共享函数 RemoveDups(ByVal items As String) As String
将 noDups 调暗为新 System.Collections.ArrayList()

将 SpStr 调暗为 String()
SpStr =拆分(项目,“|”)

For i As Integer=0 To Ubound(Spstr)
如果不是 noDups.Contains(SpStr(i).Replace("&","&").Trim()) 那么
noDups.Add(SpStr(i).Replace("&","&").Trim())
万一
下一个

Dim uniqueItems As String() = New String(noDups.Count-1){}
noDups.CopyTo(uniqueItems)
uniqueItems.Sort(uniqueItems)

暗淡 strRetValue AS String = String.Join("|", uniqueItems)
strRetValue = "全部|" + strRetValue
返回 strRetValue
结束功能

现在,您仍然需要在执行级联的数据集查询中放置过滤器和逻辑......但这为您提供了“ALL”选项。

于 2013-02-11T22:09:05.770 回答
0

您能否不转到参数的默认值并使用“从查询中获取值”,然后提供具有所有值的查询?

于 2012-12-06T21:16:22.453 回答