このトピックでは、 xamPivotGrid™ および xamPivotDataSelector™ コントロールで KPI の視覚化をカスタマイズする方法を説明します。
このトピックをより理解するために、以下のトピックを参照することをお勧めします。
このトピックは、以下のセクションで構成されます。
各 KPI は、メタデータ ツリーからピボット グリッドのメジャー領域にドラッグ アンド ドロップする、またはプログラムでメジャー コレクションに追加すると、 xamPivotGrid で視覚化できます。
KPI タイプに依存しますが適用できる場合は、KPI を値またはグラフィック表現 (アイコン) として視覚化できます。
デフォルトで、事前定義されたグラフィック表現 (形状のセット) が利用できます。この設定は KpiCellTemplate オブジェクトの Graphic プロパティで制御されています。
Graphic
プロパティを ThreeStateImages に設定し、使用する画像ソースを提供すると、各 KPI の値 (-1、0 および 1) を表す画像を任意の画像にカスタマイズすることができます (詳細は、 KPI 視覚エフェクトの構成の概要表を参照してください)。代わりに、カスタム テンプレートで、 KpiCellTemplate インスタンスの Template プロパティをオーバーライドする方法もあります。
以下の表は、ピボット グリッド ( xamPivotGrid と xamPivotDataSelector コントロール) の KPI 視覚エフェクトの構成可能な要素を簡単に説明し、それらを構成するプロパティにマップします。緑で強調表示された部分のタスクは、このヘルプの別の手順でさらに詳しく説明しています。
プログラムで xamPivotGrid にKPI の値を表示、またはグラフィック表現を表示するには、 ICube.Measures コレクションから KpiMeasure メンバーにアクセスし、 DataSourceBase.Measures コレクションに追加します。表示するすべての KPI に、これを実行する必要があります。
以下の手順は、XMLA をデータ ソース (Adventure Works DW 2008 データベース) として使用し、 ステータス に基づいた KPI のグラフィック表現を xamPivotGrid のセルに追加する方法について説明します。
以下のスクリーンショットは最終結果のプレビューです。
この手順を実行するには、以下が必要です。
ページがある WPF アプリケーション
ページに追加されたデータ ソース (Adventure Works DW 2008 データベース) として XMLA を使用する xamPivotGrid と xamPivotDataSelector のインスタンス
以下の手順では、プログラムでピボット グリッドに KPI を表示する方法を説明します。
ICube.Kpis
* コレクションから KPI 項目を取得します。*
C# の場合:
IKpi kpi = dataSource.Cube.Kpis["Product Gross Profit Margin"];
Visual Basic の場合:
Dim kpi As IKpi = dataSource.Cube.Kpis("Product Gross Profit Margin")
手順 1 で作成した IKpi オブジェクト から、任意のメタデータ タイプを選択します。
この手順では、Status
メンバーを選択します。
C# の場合:
KpiMeasure kpiStatusMeasure = (KpiMeasure)dataSource.Cube.Measures[kpi.KpiStatus];
Visual Basic の場合:
Dim kpiStatusMeasure As KpiMeasure = DirectCast(dataSource.Cube.Measures(kpi.KpiStatus), KpiMeasure)
xamPivotGrid データ ソース の Measures
コレクション に KpiMeasure
を 追加し 、Measures 領域が表示できるようにします。
C# の場合:
IMeasureViewModel mvm = dataSource.CreateMeasureViewModel(kpiStatusMeasure);
dataSource.Measures.Add(mvm);
Visual Basic の場合:
Dim mvm As IMeasureViewModel = dataSource.CreateMeasureViewModel(kpiStatusMeasure)
dataSource.Measures.Add(mvm)
解析サービス (グラフィック タイプ) から導出された KPI のグラフィック表現は、各 KpiMeasure が DataSourceBase クラスの Measures コレクションに追加されると、デフォルトのタイプに対応する事前定義されたテンプレートを使用して視覚化されます。
この手順では、 ステータスに基づく KPI (キー パフォーマンス インジケーター) は、 _xamPivotGrid コントロールのセルに、矢のような形状で表示されるように構成されます (GraphicType 列挙型には KPI メンバーの項目を直観的に表現する事前定義された形状のセットがあります)。
以下のスクリーンショットは最終結果のプレビューです。
この手順を実行するには、以下が必要です。
ページがある WPF アプリケーション
ページに追加されたデータ ソース (Adventure Works DW 2008 データベース) として XMLA を使用する xamPivotGrid のインスタンス。
以下はプロセスの概要です。
データ ソースの構成
使用される KPI メンバーの選択
KPI メンバーのメタデータ タイプの指定
デフォルトのグラフィックスの変更
セル テンプレートの適用
以下の手順では、矢印のような形状を使用して、 xamPivotGrid のセルにステータスに基づいた KPI を表示する方法を説明します。
xamPivotGrid のデータ ソースを構成します。この手順では、以下の設定を使用します。
XAML の場合:
<igOlap:XmlaDataSource
ServerUri="http://sampledata.infragistics.com/olap/msmdpump.dll"
Database="Adventure Works DW 2008"
Cube="Adventure Works"
Columns="[Product].[Category]"
Rows="[Date].[Fiscal]"
Measures="[Measures].[Internet Revenue Status]"/>
使用する KPI を指定するには、 新しい KpiCellTemplate インスタンスの MemberName プロパティを任意の値に設定します。この手順では、MemberName
プロパティを「 Internet Revenue 」に設定します。 * *
XAML の場合:
----<ig:KpiCellTemplate MemberName="Internet Revenue"/>
----
KpiCellTemplate
インスタンスの Indicator
プロパティ を、任意のメタデータ タイプ
に 設定します 。
この手順では、Indicator
プロパティを「 Status 」に設定します。
XAML の場合:
<ig:KpiCellTemplate MemberName="Internet Revenue" Indicator="Status"/>
GraphicType
列挙型の値に対応する事前定義された形状のセットから、使用する形状を選択し、任意の形状を KpiCellTemplate
オブジェクト の Graphic 値として設定します 。
この手順では、Graphic
プロパティを StandardArrow に設定します。
XAML の場合:
<ig:KpiCellTemplate MemberName="Internet Revenue" Indicator="Status" Graphic="StandardArrow"/>
事前定義された形状のリストは、API マニュアルを参照してください。
KpiCellTemplate オブジェクト を xamPivotGrid の KpiCellTemplates
コレクションに *追加します 。*
XAML の場合:
<ig:XamPivotGrid.KpiCellTemplates>
<ig:KpiCellTemplate MemberName="Internet Revenue" Indicator="Status" Graphic="StandardArrow"/>
</ig:XamPivotGrid.KpiCellTemplates>
カスタム 視覚エフェクトを提供するには、KPI の各状態を表すカスタム画像のセットが必要です。KpiCellTemplate オブジェクトの Graphic プロパティを 「 ThreeStateImages 」 に設定し、各状態に対応する画像を各プロパティの値として提供します。テンプレートを xamPivotGrid のセルに適用するには、KpiCellTemplate オブジェクトを xamPivotGrid の KpiCellTemplates
コレクションに追加する必要があります。
以下のスクリーンショットは最終結果のプレビューです。
この手順を実行するには、以下が必要です。
ページがある WPF アプリケーション
ページに追加されたデータ ソース (Adventure Works DW 2008 データベース) として XMLA を使用する xamPivotGrid のインスタンス。
以下のステップでは、プロパティを使用してカスタム KPI メンバー項目の視覚エフェクトを構成する方法を紹介します。
データ ソースを構成します。
xamPivotGrid コントロールのデータ ソースを構成します。この手順では、以下の設定を使用します。
XAML の場合:
<igOlap:XmlaDataSource
ServerUri="http://sampledata.infragistics.com/olap/msmdpump.dll"
Database="Adventure Works DW 2008"
Cube="Adventure Works"
Columns="[Product].[Category]"
Rows="[Date].[Fiscal]"
Measures="[Measures].[Product Gross Profit Margin Status]"/>
カスタム画像の使用を構成します。
異なった KPI 値を資格化するために、3 つの画像が明示的に提供されることを示します。これを実行するには、KPICellTemplate
オブジェクトの Graphic *プロパティ を「* ThreeStateImages 」に 設定します 。
XAML の場合:
<ig:XamPivotGrid.KpiCellTemplates>
<ig:KpiCellTemplate MemberName="Product Gross Profit Margin"
Indicator="Status"
Graphic="ThreeStateImages"/>
</ig:XamPivotGrid.KpiCellTemplates>
画像を指定します。
以下のスニペットを使用して、KPIメンバー項目の3つの可能な値 (0、-1 および 1) のインジケーターとして 表示される3つの画像のソースを提供します 。
XAML の場合:
<ig:XamPivotGrid.KpiCellTemplates>
<ig:KpiCellTemplate MemberName="Product Gross Profit Margin"
Indicator="Status"
Graphic="ThreeStateImages"
NegativeImageSource="..\..\StatusFlagRed256.png"
ZeroImageSource="..\..\StatusFlagYellow256.png"
PositiveImageSource="..\..\StatusFlagGreen256.png"/>
</ig:XamPivotGrid.KpiCellTemplates>
インスタンスの Template
プロパティをオーバーライドすることにより、KPI のグラフィック表現のカスタム テンプレートを適用することができます。次に、 KpiCellTemplate
オブジェクトが xamPivotGrid の KpiCellTemplates
コレクションに追加されます。このようなオーバーライドは、 Graphic タイプで設定された 「ThreeStateImages 」 や提供された画像のソースをに優先します (「 プロパティを使用したカスタム視覚エフェクトの構成」で説明したアプローチ)。
テンプレートの DataContext
は、各セルの値によって異なります。これにより、任意の値を表示/ 取得する ために直接バインディングすることが可能になり、IValueConverter
を使用して、値を要求される 3 つの状態のカスタム表現に変換することができます。