1

ここでSSRSパラメータを使用する方法を教えてもらえますか? SSAS をデータソースとして使用しています。レポートには、パラメーター値に基づいて結果をフィルター処理する以外はすべて問題なく表示されます。

SELECT NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS, NON EMPTY { (STRTOMEMBER(@Region,CONSTRAINED) * [Query].[State].[State].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Model] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

パラメータはレポートの @Region です。

4

1 に答える 1

4

最も簡単な方法は、DataSet をセットアップするときに、QueryDesigner を使用して SSAS から必要なものを取得することです。ディメンション フィルタを指定すると、右端の [パラメータ] という見出しの下にチェックボックスが表示されます。これをチェックすると、SSRS パラメータが自動的に生成されます。

これにより、次のような値を期待するパラメーターが作成されます。これは、実際にはディメンション フィルターです。

\[DimensionName\].\[AttributeName\].&\[Value\]

ただし、MDX を介して手動で行う必要がある場合は、MDX 式を見て、(私の非常に限られた MDX の経験では、まだ学習中です) ではなく、ROWS でパラメーター (フィルター) を指定しようとしているように見えます。 FROM 句に適用します。

私はそれがもっとこのようなものになると思いますか?:

SELECT 
NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS
,NON EMPTY { ([DimensionName].[AttributeName].ALLMEMBERS * [Query].[State].[State].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
(SELECT (STRTOSET(@Region,CONSTRAINED) ON COLUMNS FROM [Model])
WHERE ( IIF( STRTOSET(@Region, CONSTRAINED).Count = 1, STRTOSET(@Region, CONSTRAINED), [DimensionName].[AttributeName].currentmember ) ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

DimensionNameAttributeNameをキューブ定義の実際の値に置き換えます。@Regionこれは、パラメーターが上記で指定したものと同じ形式であることを前提としています。そうでない場合は、レポート パラメーターを DataSet に割り当てるときに、DataSet プロパティの残りの構文を代用できます。

これが機能しない場合はお詫びします。現時点では、MDX に関する限られた知識で作業していますが、部分的な回答は、まったくないよりはましであると考えました。

于 2012-04-25T16:38:00.290 に答える