バージョン

計算メジャー

トピックの概要

目的

このトピックは、コード例を使用して xamPivotGrid™ メンバーによる計算方法を説明します。

前提条件

以下の表に、このトピックを理解するための前提条件として求められるトピックをリストします。

トピック 目的

このトピックでは、 xamPivotGrid コントロールをデータにバインドする方法を説明します。

計算メジャー機能の概要

計算メジャー機能の概要

計算メジャー機能は、定義されたメジャーの結果を表す、行または列に追加できるメンバーを作成する方法を提供します。計算されるメンバーで表されるデータは、行または列の他の項目のデータと相互に結合され、計算結果を表示します。

計算メジャーでは、セルに表示される値に使用する独自の計算を作成することもできます。計算メジャーは、Measures コレクションに追加されます。

xamPivotGrid では他のデータ ソースがサポートされますが、計算メジャー機能では XMLA データ ソースのみサポートされます。

Note
注:

メジャー計算で使用されるメンバー階層は、すでに行や列で定義されたメンバーと同じ階層にすることはできません。

計算メジャーの作成 - 概念的概要

概要

この手順では、計算のためのメジャー、また計算メジャーからの結果を表示するメンバーを別の列で作成する必要があります。

Note
注:

計算メジャーは C# または VB で実装できます。現時点では、XAML では実装できません。

計算メジャーは 2 段階で行われます。最初の手順は、計算式でメジャーを作成することです。次の手順は、計算メジャーと式に関連付けられたメンバーを作成することです。

デフォルトでは、計算メジャーはすべて Measures ディメンションにアタッチされます。Measures ディメンションは、 CalculatedMeasureViewModel のコンストラクターの第 4 および第 5 パラメーターを使用して変更できます。

要件

xamPivotGrid にバインドされた XMLA データ ソース。

計算メジャーの作成 - コード例

概要

次の例では、 InternetSalesAmount 列のメジャーを使用してその値を 2 倍にし、 計算式として使用された 2005 ~ 2008 年に対して結果を別の列に表示しています。_ 計算メジャーを表すメンバーの名前は _Doubled Sales Amount となっています。

プレビュー

以下は最終結果のプレビューです。

xamPivotGrid CalculatedMeasures 01.png

要件

XMLA データ ソースにバインドされた xamPivotGrid

概要

以下はプロセスの概念的概要です。

1. 計算メジャーの作成

2. 計算されるメンバーの作成

手順

1.計算されたメジャーを作成します。

Measures 階層内で計算式を定義する計算されるメジャーを作成します。ここに示す例では、メジャー階層内のインターネット売上高が、インターネットの売上高 を 2 倍にする (2 を掛ける) 式の一部になっています。

C# の場合:

ICalculatedItemViewModel calcMeasureViewModel =
    new CalculatedMeasureViewModel(
        "Doubled Amount",
        "Doubled Sales Amount",
        "[Measures].[Internet Sales Amount] * 2");
this.pivotGrid.DataSource.Measures.Add(calcMeasureViewModel);

Visual Basic の場合:

Dim calcMeasureViewModel As ICalculatedItemViewModel = New CalculatedMeasureViewModel("Doubled Amount", "Doubled Sales Amount", "[Measures].[Internet Sales Amount] * 2")
Me.pivotGrid.DataSource.Measures.Add(calcMeasureViewModel)

2.計算メジャーを作成します。

アタッチされる階層を含む計算メンバーを作成します。

C# の場合:

IHierarchy dateCalendar = this.pivotGrid.DataSource.Cube.Dimensions["[Date]"].Hierarchies["Calendar"];
ICalculatedItemViewModel dateCalendarCalcItem = new CalculatedMemberViewModel(
    dateCalendar,
    "2005-2008",
    "Period 2005-2008",
    "[Date].[Calendar].[Calendar Year].[CY 2008] - [Date].[Calendar].[Calendar Year].[CY 2005]",
    false);
this.pivotGrid.DataSource.Rows.Add(dateCalendarCalcItem);

Visual Basic の場合:

Dim dateCalendar As IHierarchy = Me.pivotGrid.DataSource.Cube.Dimensions("[Date]").Hierarchies("Calendar")
Dim dateCalendarCalcItem As ICalculatedItemViewModel = New CalculatedMemberViewModel(dateCalendar, "2005-2008", "Period 2005-2008", "[Date].[Calendar].[Calendar Year].[CY 2008] - [Date].[Calendar].[Calendar Year].[CY 2005]", True)
Me.pivotGrid.DataSource.Rows.Add(dateCalendarCalcItem)
Note
注:

上記の計算メンバー内の階層は、[Date] に対して定義されています。[Calendar].複数行または複数列内で同じ階層を定義できません。以下は、この例で行および列に対して定義された階層です。

XAML の場合:

<igOlap:XmlaDataSource
     x:Key="DataSource"
     ServerUri="http://sampledata.infragistics.com/olap/msmdpump.dll"
     Database="Adventure Works DW Standard Edition"
     Cube="Adventure Works"
     Columns="[Geography].[City]"
     Rows="[Product].[Product Categories]"
     Measures="Internet Sales Amount" />

関連コンテンツ

トピック

以下のトピックでは、このトピックに関連する情報を提供しています。

トピック 目的

このトピックでは、 xamPivotGrid コントロールをデータにバインドする方法を説明します。