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 リストをソースとして使用するときに使用しました。ここに当てはまるはずです。サンプルの「Client」パラメーターを使用します。

  1. パラメータ @ClientHelper を作成します。非表示の複数値に設定し、使用可能な値はデータセット クエリから取得し、デフォルト値もデータセット クエリから取得します。
  2. パラメータ @Client を作成します。複数値ではなく可視に設定し、「値を指定」の使用可能な値に設定します。ラベル列を空白のままにして、値式として「=Split(Code.RemoveDups(JOIN(Parameters!ClientHelper.Value, “|”)), “|”)」を入れます。デフォルト値を任意に設定できます。
  3. @ClientHelper は、パラメーターのリストで @Client の前に来る必要があることに注意してください。

必要なカスタムタラは以下のとおりです。重複を削除する必要がない場合は、必要に応じて変更できます。

Public Shared Function RemoveDups(ByVal items As String) As String
Dim noDups As New System.Collections.ArrayList()

Dim SpStr as String()
SpStr = Split(アイテム ,"|")

For i As Integer=0 To Ubound(Spstr)
If Not 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)

Dim strRetValue AS String = String.Join("|", uniqueItems)
strRetValue = "すべて|" + strRetValue
strRetValue を返す
終了機能

ここで、カスケードを行うデータセット クエリにフィルタとロジックを配置する必要がありますが、これにより "ALL" オプションが提供されます。

于 2013-02-11T22:09:05.770 に答える
0

パラメータのデフォルト値に移動して「クエリから値を取得」を使用し、すべての値を持つクエリを提供することはできませんか?

于 2012-12-06T21:16:22.453 に答える