2016-09-07 9 views
1

私はこのためにstackoverflowのすべてを探していましたが、わかりません。 SSASキューブを使用したデータセットがあり、2つのパラメータがあります。カテゴリとサブカテゴリがあります。MDX SSRSパラメータカテゴリですべてのサブカテゴリが選択されます

これらのパラメータを設定するためのデータセットは既に作成されており、両方を選択すると正常に動作します。

レポートの実行方法は、テーブル内のサブレポートのコレクションであり、サブカテゴリでグループ化され、サブカテゴリでグループ化されています。したがって、カテゴリパラメータを選択すると、すべてのサブレポートの各サブカテゴリが一覧表示されます。

私がしようとしているのは、そのカテゴリ内のすべてのサブカテゴリの合計を取得することです。私は、デフォルト値を使用してみましたが、それ以外の作業はしませんでした。私はテーブル内のグループを合計してみましたが、うまくいきません。だから、グループG1およびサブグループSG1とSG2)、およびサブ用
は---それは、この

G1

- 総(SG1 + SG2 + SG3)
ようになり、SR1、SR2を報告SR1
--- SR2

-SG1
--- SR1
---


SR2 -S G2
--- SR1
--- SR2

Iサブグループカテゴリに渡されたパラメータとしてサブレポートにカテゴリパラメータを設定することにより、部品を報告し、サブカテゴリーをオフに引っ張ることができましたパラメータをサブグループの値として使用します。しかし、私はその羊の合計が必要です。

マイカテゴリーのMDXは

SELECT { } ON COLUMNS, { ([Service].[Category].[Category].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Sales-Cube] CELL PROPERTIES VALUE 

サブカテゴリのMDXは、デザイナーを使用して作成されたされ、私はパラメータを使用していたデータセットのためのMDX

SELECT { } ON COLUMNS, { ([Service].[Category].[Category].ALLMEMBERS * [Service].[SubCategory].[Subcategory].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Sales-Cube] CELL PROPERTIES VALUE 

であり、次のようにそれがあります

SELECT NON EMPTY { [Measures].[Sales Count] } ON COLUMNS, 
NON EMPTY { ([Date].[Fiscal Year].[Fiscal Year].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM (SELECT (Filter([Service].[SubCategory].[SubCategory].ALLMEMBERS, Instr([Service].[SubCategory].currentmember.Properties('Member_Caption'), @ParamSubCategory) > 0 )) ON COLUMNS 
FROM (SELECT (Filter([Service].[Category].[Category].ALLMEMBERS, Instr([Service].[Category].currentmember.Properties('Member_Caption'), @ParamCategory) > 0 )) ON COLUMNS 
FROM [Sales-Cube])) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

したがって、カテゴリから選択されたものに基づいて、サブカテゴリがフィルタリングされますカテゴリ内の人だけにyを渡してカスケードします。 すべてのリソースやヘルプは素晴らしいでしょう。

+0

カテゴリパラメータを最初に設定し、その値を使用してサブカテゴリパラメータを設定する必要があります。サブカテゴリパラメータの設定に使用するMDXスクリプトのサンプルを追加します。 –

+0

はい私は2つのデータセットを持っています.1つはカテゴリパラメータリストで、次に2番目のデータセットには関連カテゴリのサブカテゴリがあり、カテゴリパラメータを使用してカスケードされます。これは正常に動作し、そのカテゴリの全体を取得することはできません。また、サブカテゴリが使用されていない場合、データセットのサブカテゴリパラメータをカテゴリ内のすべてのサブカテゴリにデフォルト設定することはできません。 – Dungkin

+1

パラメータを使用しているMDXスクリプトが表示されていないと、カテゴリの合計が得られない理由を特定することは困難です。また、User Subcategoryパラメータがnullのときにすべてのカテゴリを表示する場合は、内部/非表示として別のパラメータを作成して、サブカテゴリがnullの場合はそのサブカテゴリをすべてのサブカテゴリに設定します。 –

答えて

2

私がコメントしたところでは、MDXのキューブをスライスするメンバーの名前を使用することはできませんので、代わりにunique nameを使用する必要があります。ユーザーがParamCategoryパラメータにCategory XCategory Yを選択した場合は、[Service].[Category].&[Category X][Service].[Category].&[Category Y]に設定する必要があります。これは私がやることです。

ラベル(Name)と一意の名前をカテゴリに返すMDXスクリプトを使用します。パラメータプロパティ/あなたがValue fieldためLabel fieldCategory UniqueNameためCategory Labelフィールドを使用する必要が利用可能な値で

WITH MEMBER [Measures].[Category Label] AS 
    [Service].[Category].CurrentMember.Name 
MEMBER [Measures].[Category UniqueName] AS 
    [Service].[Category].CurrentMember.UniqueName 
SELECT 
{ [Measures].[Category Label], [Measures].[Category UniqueName] } ON COLUMNS, 
{} ON ROWS 
FROM [Sales-Cube] 

同じapprachには、ParamSubcategoryが入力されます。

WITH MEMBER [Measures].[SubCategory Label] AS 
    [Service].[SubCategory].CurrentMember.Name 
MEMBER [Measures].[SubCategory UniqueName] AS 
    [Service].[SubCategory].CurrentMember.UniqueName 
SELECT 
{ [Measures].[SubCategory Label], [Measures].[SubCategory UniqueName] } ON COLUMNS, 
{ [Service].[SubCategory].[SubCategory] } ON ROWS 
FROM [Sales-Cube] 
WHERE (StrToSet (@ParamCategory)) 

注私は関連のサブカテゴリでParamSubcategoryを移入するParamCategoryを使用しています。

今すぐあなたのMDXスクリプトでこれらのパラメータを使用することができます。

SELECT NON EMPTY { [Measures].[Sales Count] } ON COLUMNS, 
NON EMPTY 
{ 
    ([Date].[Fiscal Year].[Fiscal Year].AllMembers) 
} Dimension Properties MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS 
FROM (
    SELECT (STRTOSET(@ParamSubcategory)) ON COLUMNS 
    FROM (
    SELECT (STRTOSET (@ParamCategory)) ON COLUMNS 
    FROM [Sales-Cube] 
) 
) CELL Properties Value, 
BACK_COLOR, 
FORE_COLOR, 
FORMATTED_VALUE, 
FORMAT_STRING, 
FONT_NAME, 
FONT_SIZE, 
FONT_FLAGS 

注意をFilterInStr機能を使用すると、一意の名前のメンバーを渡しているので、requeridされていません。

これはテストされていませんが、うまくいくはずです。

これが役立つかどうか教えてください。

+1

(上がりました)良い答えalejandro – whytheq

関連する問題