親子階層の親属性プロパティの定義

親子階層とは、2 つのテーブル列に基づいたディメンション内の階層です。この 2 つのテーブル列により、ディメンションのメンバ間の階層リレーションシップが定義されます。一方の列はメンバ キー列と呼ばれ、各ディメンション メンバを識別します。もう一方の列は親列と呼ばれ、各ディメンション メンバの親を識別します。親属性の NamingTemplate プロパティは、親子階層の各レベルの名前を指定します。MembersWithData プロパティは、親メンバのデータを表示するかどうかを指定します。

詳細については、「親子階層の定義」と「親子階層での属性の操作」を参照してください。

注意注意

ディメンション ウィザードを使用してディメンションを作成すると、親子リレーションシップを持つテーブルがウィザードによって認識され、親子階層が自動的に定義されます。

このトピックの実習では、名前付けテンプレートを使用して、Employee ディメンションの親子階層の各レベルに名前を付けます。次に、すべての親データが非表示になるように親属性を構成します。これにより、リーフレベルのメンバの売上高のみが表示されるようになります。

Employee ディメンションの表示

Employee ディメンションを表示するには

  1. ソリューション エクスプローラで、[ディメンション] フォルダの Employee.dim をダブルクリックし、Employee ディメンションのディメンション デザイナを開きます。

  2. [ブラウザ] タブをクリックし、[階層] ボックスの一覧で [Employees] が選択されていることを確認します。次に、[All Employees] メンバを展開します。

    この親子階層では、Ken J. Sánchez が最上位の管理者です。

  3. [Ken J. Sánchez] メンバをクリックします。

    このメンバのレベル名は Level 02 です (レベル名は、[現在のレベル:] の後、つまり、[All Employees] メンバのすぐ上に表示されます)。次の実習では、さらにわかりやすい名前を各レベルに定義します。

  4. [Ken J. Sánchez] を展開し、この管理者の監督下にある従業員の名前を表示します。次に、[Brian S. Welcker] をクリックし、このレベルの名前を表示します。

    このメンバのレベル名は Level 03 です

  5. ソリューション エクスプローラで、[キューブ] フォルダ内の Analysis Services Tutorial.cube をダブルクリックして、Analysis Services Tutorial キューブのキューブ デザイナを開きます。

  6. [ブラウザ] タブをクリックします。

  7. メタデータ ペインで、[Measures] を展開し、[Reseller Sales] を展開します。次に、[Reseller Sales-Sales Amount] を右クリックし、[データ領域に追加] をクリックします。

  8. メタデータ ペインで [Employee] を展開し、[Employees] 階層をデータ ペインの [ここに行のフィールドをドロップします] 領域までドラッグします。

    Employee 階層のすべてのメンバがデータ ペインに追加され、折りたたまれたビューとして表示されます。

  9. データ ペインで、Employees 階層の Level 02 列を展開します。続けてその下のレベルも展開し、Level 02 から Level 05 までのメンバを表示します。

    次の図は、データ ペインで、Employee 階層の Level 02 から Level 05 までを展開したところです。

    Employees 階層を示す [データ] ペイン

    Level 04 の各管理者の売上は Level 05 にも表示されます。各管理者は、他の管理者の部下でもあるからです。次の実習では、これらの売上高を非表示にします。

Employee ディメンションの親属性プロパティの変更

Employee ディメンションの親属性のプロパティを変更するには

  1. Employee ディメンションのディメンション デザイナに切り替えます。

  2. [ディメンション構造] タブをクリックし、[属性] ペインで [Employees] 属性階層をクリックします。

    この属性だけ、他とは異なるアイコンが表示されています。このアイコンは、Employees 属性が親子階層の親キーであることを示しています。また、[プロパティ] ウィンドウを見ると、この属性の Usage プロパティが Parent として定義されていることがわかります。このプロパティは、ディメンションを設計した際にディメンション ウィザードによって設定されたものです。親子リレーションシップは、ウィザードによって自動的に検出されています。

  3. [プロパティ] ウィンドウで、NamingTemplate プロパティ セルの参照ボタン ([...]) をクリックします。

    [レベル名前付けテンプレート] ダイアログ ボックスでレベル名前付けテンプレートを定義します。このテンプレートは、キューブを表示するときに表示される親子階層のレベル名を決定します。

  4. 2 番目の行 (* 行) の [名前] 列に「Employee Level *」と入力して、3 番目の行をクリックします。

    [結果] の下を確認すると、各レベルには、"Employee Level" の後ろに連番を追加した名前が付いています。

    次の図は、[レベル名前付けテンプレート] ダイアログ ボックスで定義を変更するようすを示しています。

    [レベル名前付けテンプレート] ダイアログ ボックス

  5. [OK] をクリックします。

  6. Employees 属性の [プロパティ] ウィンドウの MembersWithData プロパティ セルで、[NonLeafDataHidden] を選択して Employees 属性の値を変更します。

    この操作により、親子階層内の非リーフレベル メンバに関連付けられているデータが非表示になります。

属性を変更した Employee ディメンションの表示

Employee ディメンションを表示するには

  1. Business Intelligence Development Studio で、[ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。

  2. チュートリアルが正常に配置されたら、Analysis Services Tutorial キューブのキューブ デザイナに切り替え、[ブラウザ] タブのツール バーで [再接続] をクリックします。

  3. デザイナの左側ペインで、Employee ディメンションの Employees をクリックし、この階層を [ここに行のフィールドをドロップします] 領域までドラッグします。各階層を順に展開して、上から 5 つのレベルを表示します。

    レベル名はよりわかりやすくなり、管理者ごとの売上の値が表示されなくなりました。一方、各レベルの合計値は各従業員の総売上を表します。この売上には、非表示になっている管理者の売上が含まれています。レッスン 10 では、実際に表示されている値のみが Employee Level 05 の合計値に反映されるように、表示部分の合計を表示する方法を学習します。

    次の図は、Employees 階層を変更したようすを示しています。

    変更した Employees 階層

このレッスンの次の作業

属性メンバの自動的なグループ化