バージョン

外部集計計算の実行

トピックの概要

目的

このトピックでは、UserGrid™ コントロールで外部集計計算を実行する際によく行われるタスクについて、コード例を交えながら説明します。

必要な背景

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

トピック 目的

このトピックでは CellDataRequested イベントで必要に応じてデータの読み込みを行うことををご紹介します。

このトピックの構成

このトピックには次のセクションがあります。

外部集計計算概要

外部集計計算タスクチャート

以下の表は、WinGrid コントロールの設定項目を示しています。詳細については、概要表の下をご覧ください。

外部計算タスク 詳細 プロパティ / Enum / メソッド

外部集計計算を有効にする

対象バンドの集計コレクションに対し、集計タイプは External に設定されます。

SummaryType - enum

外部集計計算を実行する

ExternalSummaryValueRequested イベントが公開する SetExternalSummaryValue メソッド を使用して、集計値を直接または外部から設定します。

SetExternalSummaryValue - メソッド

集計計算機で外部集計計算を実行します

UseExternalSummaryCalculator プロパティを True に設定します。

UseExternalSummaryCalculator - プロパティ

外部集計計算を有効にする

概要

外部集計計算を有効にするには、特定のバンドの集計コレクションで、集計タイプを External に設定する必要があります。外部集計計算機能を使用すると、UltraGrid コントロールの集計計算ロジックが行コレクションの走査を繰り返して集計値を計算するのをバイパスし、すべてのデータを読み込む必要がなくなります。これにより、UltraGrid コントロールに集計を追加し、必要に応じてデータを読み込むことができます。

プロパティ設定

以下の表では、必要な構成をプロパティ設定にマップしています。

以下を行うために…​ この Enum の使用: それを次に設定…​

外部集計計算を有効にします

External

コード例

以下のサンプル コードは、集計コレクションの追加メソッドを用いて集計タイプを External に設定します。

Visual Basic の場合:

Dim band As UltraGridBand = Me.ultraGrid1.DisplayLayout.Bands(0)
' 外部タイプの集計を追加します。
Dim summary As SummarySettings = band.Summaries.Add(SummaryType.External, band.Columns("ID"))

C# の場合:

UltraGridBand band = this.ultraGrid1.DisplayLayout.Bands[0];
// 外部タイプの集計を追加します。
SummarySettings summary = band.Summaries.Add( SummaryType.External, band.Columns["ID"] );

外部集計計算の実装 - 概念的概要

概要

集計タイプを External に設定すると、 ExternalSummaryValueRequested イベントが発生します。このイベントが公開する SetExternalSummaryValue メソッドを使用して、集計値を直接または外部から設定します。呼び出します。

プロパティ設定

以下の表では、必要な構成をプロパティ設定にマップしています。

以下を行うために…​ このプロパティの使用: それを次に設定…​

外部集計値を割り当てます

希望の値

外部集計計算の実装 - コード例

説明

次のコード例では、UltraGrid コントロールが以下の設定の結果として外部集計値を表示しています。

プロパティ

90

プレビュー

以下は、外部集計値のプレビュー表示で、サンプル コード例を実装した結果です。

Performing External Summary Calculations  1 1.png

コード

以下のサンプル コードでは、Summary を外部で設定、または ExternalSummaryCalculated イベント内部で直接設定しています。

Visual Basic の場合:

Private Sub ultraGrid1_ExternalSummaryValueRequested(sender As Object, e As ExternalSummaryValueEventArgs)
e.SummaryValue.SetExternalSummaryValue("90")
End Sub

C# の場合:

private void ultraGrid1_ExternalSummaryValueRequested(object sender, ExternalSummaryValueEventArgs e)
{
         e.SummaryValue.SetExternalSummaryValue("90");
}

集計計算機での外部集計計算の実装 - 概念的概要

概要

集計計算機の集計 (Average、Count、Maximum、Minimum および Sum) も外部で計算できます。これを実現するには、 UseExternalSummaryCalculator プロパティを True に設定します。このプロパティは、UltraGrid.Override および特定の Band.Override で設定することができます。このプロパティが True に設定された場合、UltraGrid は集計計算を停止して ExternalSummaryValueRequested イベントを発生させ、集計に配置する値を要求します。

プロパティ設定

以下の表では、必要な構成をプロパティ設定にマップしています。

以下を行うために…​ このプロパティの使用: それを次に設定…​

集計計算機での外部集計計算を有効にします

DefaultableBoolean.True

集計タイプ Count に外部集計値を割り当てます

希望の値

集計タイプ Maximum に外部集計値を割り当てます

希望の値

集計計算機での外部集計計算の実装 - コード例

説明

このコード例では、以下の設定を適用して UltraGrid コントロールで集計計算機上に外部集計値を表示しています。

プロパティ

SetExternalSummaryValue

5

SetExternalSummaryValue

100

プレビュー

次のスクリーンショットでは、Example テキスト ブロックの設定によって、UltraGrid が子バンドの集計計算機に外部集計値を表示している状態を示しています。

Performing External Summary Calculations  1 2.png

コード

以下のサンプル コードでは、Summary Calculator を External に設定しています。 UseExternalSummaryCalculator プロパティが True に設定されます。UltraGrid は、子バンドに対する Summary Calculator で外部集計値を表示します。集計値は ExternalSummaryValueRequested イベント内で設定されます。

Visual Basic の場合:

' 集計計算機でグリッド全体に対する集計を外部から計算します。
' this.ultraGrid1.DisplayLayout.Override.UseExternalSummaryCalculator = DefaultableBoolean.True;
' Allows Summary Calculator to calculate summaries externally for a specific band(Bands[1]).
' UltraGrid summary calcuation is stopped and                                    'ultraGrid1_ExternalSummaryValueRequested event is  fired.
Me.ultraGrid1.DisplayLayout.Bands(1).Override.UseExternalSummaryCalculator = Infragistics.Win.DefaultableBoolean.True
Private Sub ultraGrid1_ExternalSummaryValueRequested(sender As Object, e As ExternalSummaryValueEventArgs)
      Select Case e.SummaryValue.SummarySettings.SummaryType.ToString()
            Case "Count"
                  e.SummaryValue.SetExternalSummaryValue(5)
                  Exit Select
            Case "Maximum"
                  e.SummaryValue.SetExternalSummaryValue(100)
                  Exit Select
      End Select
End Sub

C# の場合:

// 集計計算機でグリッド // 全体に対する集計を外部から計算します。
// this.ultraGrid1.DisplayLayout.Override.UseExternalSummaryCalculator =
// DefaultableBoolean.True;
// Allows Summary Calculator to calculate summaries externally for a specific
// band(Bands[1]).
// UltraGrid summary calcuation is stopped and
// ultraGrid1_ExternalSummaryValueRequested event is fired.
this.ultraGrid1.DisplayLayout.Bands[1].Override.UseExternalSummaryCalculator =
Infragistics.Win.DefaultableBoolean.True;
private void ultraGrid1_ExternalSummaryValueRequested(object sender, ExternalSummaryValueEventArgs e)
{
        switch (e.SummaryValue.SummarySettings.SummaryType.ToString())
        {
            case "Count":
            e.SummaryValue.SetExternalSummaryValue(5);
            break;
            case "Maximum":
            e.SummaryValue.SetExternalSummaryValue(100);
            break;
        }
}

トピック

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

トピック 目的

このトピックでは、列の集計を最下部以外の位置に表示します。

このトピックでは、集計値を固定してスクロールしないようにします。