5.20201.680
wijmo.olap Class PivotEngine Wijmo API クラス

PivotEngine クラス

通常のデータテーブルをOLAPピボットテーブルに対話的に変換するためのユーザーインタフェース を提供します。

itemsSource コレクション内のデータをフィールドのリストに従って表形式にし、 集計されたデータを含むpivotView コレクションを作成します。

ピボットテーブルは、データを1つ以上のディメンションにグループ化します。これらのディメンションは、 グリッド内の行と列によって表され、データはグリッドセルに格納されます。

階層

  • PivotEngine

コンストラクタ

constructor

  • PivotEngine クラスの新しいインスタンスを初期化します。

    引数

    • オプション options: any

      フィールドの初期化データを含むJavaScriptオブジェクト。

    戻り値 PivotEngine

プロパティ

allowFieldEditing

allowFieldEditing: boolean

このPivotEngine が所有するPivotField オブジェクトのプロパティをユーザーが編集できるかどうかを決定する値を取得または設定します。

このプロパティをfalseに設定すると、 PivotGridPivotPanel などのコントロールによって表示されるコンテキストメニューには、 フィールドの設定を変更するオプションが含まれません。

このプロパティのデフォルト値は true です。

async

async: boolean

ビューの更新を非同期に行うかどうかを決定する値を取得または設定します。

このプロパティはデフォルトではtrueに設定されます。これにより、大規模なデータセットの集約が 非同期に実行され、UIスレッドの停止が防がれます。

このプロパティのデフォルト値は trueです。

autoGenerateFields

autoGenerateFields: boolean

エンジンがitemsSource に基づいてフィールドを自動的に生成するかどうかを 決定する値を取得または設定します。

このプロパティをtrueに設定すると、エンジンはitemsSource 内アイテムの 各プロパティに対してフィールドを生成します。 自動生成フィールドのPivotField.binding プロパティはプロパティ名に設定され、 PivotField.header プロパティはバインディングの最初の文字を大文字にし、 各大文字の前にスペースを追加した文字列に設定されます。

たとえば、 'customerName'プロパティは、エンジンにPivotField.binding が 'customerName'に設定され、PivotField.header が 'Customer Name'に設定されたフィールドを作成させます。

文字列を使用してビューリストの1つにフィールドを追加するときは、PivotField.binding ではなく PivotField.header を指定する必要があります(バインディングとは異なり、フィールドヘッダーは一意でなければなりません)。

このプロパティのデフォルト値は trueです。

collectionView

collectionView: ICollectionView

生データを含むICollectionView を取得します。

columnFields

columnFields: PivotFieldCollection

出力テーブル内の列として表示されるフィールドを定義するPivotField オブジェクトのリストを取得します。

defaultFilterType

defaultFilterType: FilterType

デフォルトのフィルタタイプを(値または条件に基づいて)取得または設定します。

このプロパティのデフォルト値はnullです。 これにより、エンジンはクライアント側で FilterType.Both またはサーバー側で FilterType.Condition を使用します。

exclusiveValueSearch

exclusiveValueSearch: boolean

フィルターにwijmo.grid.filter.ValueFilter.filterText プロパティによって選択された値のみを含めるかどうかを決定する値を取得または設定します。

このプロパティはデフォルトでtrueに設定されています。この動作はExcelと同じです。 この動作を無効にするには、このプロパティをfalseに設定します。 その場合、リストに表示される項目のみが検索され、 フィルタに含まれる項目が検索されません。

fields

データソースによって公開されるPivotField オブジェクトのリストを取得します。

このリストは、itemsSource プロパティを設定するたびに自動的に作成されます。

ピボットビューは、このリストからビューを定義するリスト (valueFieldsrowFieldscolumnFieldsfilterFields)にフィールドをコピーすることで定義されます。

たとえば、次のコードは、データソースをPivotEngine に割り当てた後、 rowFieldscolumnFieldsvalueFields の各リストにフィールドを 追加することでビューを定義します。

// ピボットエンジンを作成します
var pe = new wijmo.olap.PivotEngine();

// データソースを設定します(フィールドリストを設定します)
pe.itemsSource = this.getRawData();

// Olapビューの構築中は更新を禁止します
pe.beginUpdate();

// 国を行に表示します
pe.rowFields.push('Country');

// カテゴリと製品を列に表示します
pe.columnFields.push('Category');
pe.columnFields.push('Product');

// 売上高の合計をセルに表示します
pe.valueFields.push('Sales');

// ビューの定義を完了します
pe.endUpdate();

filterFields

filterFields: PivotFieldCollection

フィルタとして使用されるフィールドを定義するPivotField オブジェクトのリストを取得します。

このリストのフィールドは出力テーブルには表示されませんが、入力データのフィルタとして使用されます。

isServer

isServer: boolean

エンジンがサーバーのitemsSource にバインドされているか、またはローカルデータを使用しているかを決定する値を取得します。

isUpdating

isUpdating: boolean

エンジンが現在更新されているかどうかを示す値を取得します。

isViewDefined

isViewDefined: boolean

ピボットビューが現在定義されているかどうかを判定する値を取得します。

ピボットビューが定義されているのは、valueFieldsrowFields 、またはcolumnFields リストのいずれかが空でない場合です。

itemsSource

itemsSource: any

分析される生データ、SSASキューブサービスを記述するオブジェクト、またはComponentOne DataEngineサービス用のURLを含む文字列を含む配列またはICollectionView を取得または設定します。

1番目のオプション(配列またはICollectionView の使用)は最も単純ですが、 処理できる生データの量が制限となります。 データセットに約50,000件以上がある場合、配列に生データを ロードするには多くの時間がかかります。

このオプションを使用するには、itemsSource プロパティを、 分析する生データを含む任意のJavaScript配列に設定します。 次に例を示します。

var ng = new wijmo.olap.PivotEngine({
    itemsSource = getDataArray(1000);
});

2番目のオプション(OLAP SSASキューブへの直接接続)は、 PivotEngine がSSASサーバーによって提供されるOLAPキューブに直接接続できるようにします。 このオプションは、上記のサイズ制限を削除し、数百万または数十億のレコードを持つデータセットを分析できます。

このオプションを使用するには、itemsSourceプロパティを、コンポーネントがサービスにアクセスする方法を指定するオブジェクトに設定します。 次に例を示します。

var ng = new wijmo.olap.PivotEngine({
    itemsSource: {
        url: 'http://ssrs.componentone.com/OLAP/msmdpump.dll',
        cube: 'Adventure Works',
        catalog: 'AdventureWorksDW2012Multidimensional'
    }
});

catalog プロパティはオプションですが、 urlcubeは必須です。

上記の例は、匿名アクセスを許可するSSASサーバーで機能します。基本認証を必要とするサーバーの場合は、{@ link itemsSource}オブジェクトの一部として適切なuserおよびpasswordメンバーも含める必要があります。

OLAP SSASキューブに直接接続する場合、ユーザーが値でフィールドをフィルタリングできません。 ただ、条件でフィルタリングすることができます。

3番目のオプションであるComponentOne のデータエンジンサービスを使用すると、 クライアントに 生データをダウンロードすることなく、サーバーで大きなデータセットを 分析できます。高性能のFlexPivotサービスを使用することも、 MicrosoftのSQL Server Analysis Services OLAPキューブと やり取りすることもできます。

ComponentOneデータエンジンサービスを使用するには、 itemsSource プロパティをデータサービスのURLを含んだ文字列に設定します。 次に例を示します。

var ng = new wijmo.olap.PivotEngine({
    itemsSource: 'http://demos.componentone.com/ASPNET/c1webapi/4.5.20193.222/api/dataengine/cube'
});

PivotEngine はビューの定義をサーバーに送信します。サーバーでサマリーが計算され、 クライアントに戻されます。

ComponentOne DataEngineデータソースに接続する場合、ユーザーが値でフィールドをフィルタリングできません。 ただ、条件でフィルタリングすることができます。

ComponentOne DataEngineサービスの詳細については、 オンラインマニュアル を参照してください。

Our OlapServerIntro の製品サンプルは、単一のPivotEngine で動作するすべてのオプションを示しています。

pivotView

pivotView: ICollectionView

出力ピボットビューを含むICollectionView を取得します。

rowFields

出力テーブル内の行として表示されるフィールドを定義するPivotField オブジェクトのリストを取得します。

serverMaxDetail

serverMaxDetail: number

getDetail メソッドがサーバーから取得するレコードの最大数を取得または設定します。

このプロパティのデフォルト値は 1,000です。 これにより、多くのシナリオで合理的な詳細を提供します。 より詳細なレコードを取得できるようにするには、このプロパティの値を増やします。

serverPollInterval

serverPollInterval: number

結果を取得中に進行状況のためにサーバーをポーリングする前に エンジンが待機する時間(ミリ秒単位)を取得または設定します。

このプロパティのデフォルト値は 500 ミリ秒です。 これにより、エンジンは0.5秒ごとに状況を更新するためにサーバーをポーリングします。

serverTimeout

serverTimeout: number

エンジンが結果をサーバーから返すまで待機する 最大時間(ミリ秒単位で)を取得または設定します。

このプロパティのデフォルト値は60,000ミリ秒、または1分です。 サーバー側の操作にその値より長い時間がかかると予想される場合は、 このプロパティーをより高い値に設定します。

showColumnTotals

showColumnTotals: ShowTotals

出力pivotView に、小計または総計を含む 列を含めるかどうかを決定する値を取得または設定します。

このプロパティのデフォルト値はShowTotals.GrandTotalsです。

showRowTotals

showRowTotals: ShowTotals

出力pivotView に、小計または総計を含む 行を含めるかどうかを決定する値を取得または設定します。

このプロパティのデフォルト値はShowTotals.GrandTotalsです。

showZeros

showZeros: boolean

Olap出力テーブルで0を使用して欠損値を示すかどうかを決定する値を取得または設定します。

このプロパティのデフォルト値はfalse です。

sortOnServer

sortOnServer: boolean

サーバーから受信したサマリーデータがすでにソートされているかどうかを示す値を取得または設定します。

このプロパティをtrueに設定すると、 PivotEngine はサーバーから受信したデータをソートしません。 このプロパティは、通常、標準の PivotEngine. で使用できないカスタムロジックによって適切にソートされた集計データを返す カスタムサーバーと組み合わせて使用する必要があります。 このプロパティのデフォルト値は false です。

sortableGroups

sortableGroups: boolean

値フィールド(メジャー)をソートするときにエンジンが、グループをソートするか、 または各グループ内でのみグループの順序とデータを保持する必要があるかどうかを 決定する値を取得または設定します。

このプロパティのデフォルト値はtrueです。

totalsBeforeData

totalsBeforeData: boolean

通常のデータ行およびデータ列の前または後に行および列の合計を表示するかどうかを 決定する値を取得または設定します。

この値がtrueに設定されている場合、データ行の上部に合計行が、 通常のデータ列の左側に合計列が表示されます。 このプロパティのデフォルト値は falseです。

valueFields

出力テーブルに集約されるフィールドを定義するPivotField オブジェクトのリストを取得します。

viewDefinition

viewDefinition: string

現在のピボットビュー定義をJSON文字列として取得または設定します。

このプロパティは通常、現在のビューをアプリケーション設定として維持するために使用されます。

たとえば、次のコードは、ローカルストレージを使用してビュー定義を 保存およびロードする2つの関数を実装します。

// ビューを保存/ロードします
function saveView() {
  localStorage.viewDefinition = pivotEngine.viewDefinition;
}
function loadView() {
  pivotEngine.viewDefinition = localStorage.viewDefinition;
}

メソッド

beginUpdate

  • beginUpdate(): void
  • 次にendUpdate が呼び出されるまで、リフレッシュ処理を一時停止します。

    戻り値 void

cancelPendingUpdates

  • cancelPendingUpdates(): void
  • 保留中の非同期のビュー更新をキャンセルします。

    戻り値 void

deferUpdate

  • deferUpdate(fn: Function): void
  • beginUpdate/endUpdate ブロック内で関数を実行します。

    この関数の実行が完了するまでコントロールは更新されません。 このメソッドは、関数が例外を生成した場合でも endUpdate が呼び出されるようにします。

    引数

    • fn: Function

      実行する関数。

    戻り値 void

editField

  • ユーザーがフィールドの設定を編集することができる設定ダイアログを表示します。

    引数

    戻り値 void

endUpdate

  • endUpdate(): void
  • beginUpdate の呼び出しによって一時停止されたリフレッシュ処理を再開します。

    戻り値 void

getDetail

  • getDetail(item: any, binding: string): any[]
  • pivotView リスト内のプロパティに基づいて集約されるレコードを含む配列を取得します。

    エンジンがPivotEngineサーバーに接続されている場合、返される値は、 非同期に作成されるObservableArray です。

    引数

    • item: any

      pivotView リスト内のデータ項目。

    • binding: string

      集約されるプロパティの名前。

    戻り値 any[]

getDetailView

  • pivotView リスト内のプロパティに基づいて集約されるレコードを含む{@link collections.ICollectionView} を取得します。

    引数

    • item: any

      pivotView リスト内のデータ項目。

    • binding: string

      集約されるプロパティの名前。

    戻り値 ICollectionView

getKeys

  • getKeys(item: any, binding: string): any
  • pivotView リスト内のプロパティに関する情報を含むオブジェクトを取得します。

    返されるオブジェクトには、'rowKey'と'colKey'の2つのプロパティがあります。それぞれに 'fields'と'values'の2つの配列が含まれます。同時に、この情報は PivotEngine によって集約される値を一意に識別します。

    たとえば、2つの行フィールド'Product'および'Country'のと1つの列フィールド'Active'を 持つピボットビューに対してgetKeys を呼び出すと、 次のようなオブジェクトが返されます。

    {
        rowKey: {
            fields: [ 'Product', 'Country'],
            values: [ 'Aoba', 'Japan' ]
        },
        colKey: {
            fields: [ 'Active' ],
            values: [ true ]
        }
    }

    このオブジェクトは、1つの集約値の取得に使用されるデータのサブセットを識別します。 この場合、この値は、Active状態がtrueに設定されている、日本で販売された製品 'Aoba'のすべてのデータ項目を表します。

    引数

    • item: any

      pivotView リスト内のデータ項目。

    • binding: string

      集約されるプロパティの名前。

    戻り値 any

invalidate

  • invalidate(): void
  • ビューを無効にして非同期リフレッシュを行います。

    戻り値 void

onError

onItemsSourceChanged

onUpdatedView

  • updatedView イベントを発生させます。

    引数

    戻り値 void

onUpdatingView

onViewDefinitionChanged

  • onViewDefinitionChanged(e?: EventArgs): void

refresh

  • refresh(force?: boolean): void
  • データを集約し、出力pivotView を更新します。

    引数

    • オプション force: boolean

      更新中であってもリフレッシュを行います(beginUpdate を参照)。

    戻り値 void

removeField

  • 現在のビューからフィールドを削除します。

    引数

    戻り値 void

イベント

error

サーバーからデータを取得するときにエラーがあると発生します。

itemsSourceChanged

itemsSourceChanged: Event<PivotEngine, EventArgs>

itemsSource プロパティの値が変化した後に発生します。

updatedView

updatedView: Event<PivotEngine, EventArgs>

エンジンがpivotView リストの更新を終了した後に発生します。

updatingView

エンジンがpivotView リストの更新を開始したときに発生します。

viewDefinitionChanged

viewDefinitionChanged: Event<PivotEngine, EventArgs>

ビューの定義が変更された後に発生します。