5.20241.9

OLAP:フィールドのカスタマイズ

フィールドは、PivotEngineが生データを集計するために使用する情報を含みます。フィールドはPivotFieldクラスによって表され、データを取得する場所やデータを集計および表示する方法をカスタマイズするためのプロパティを持ちます。

PivotFieldクラスの主なプロパティは次のとおりです。

  • binding:このフィールドで生データオブジェクトのどのプロパティが表されるかを決定します。
  • header:このフィールドのサマリー結果を表示するために使用されるタイトルを決定します。
  • format:このフィールドのサマリー結果を書式設定する方法またはそのデータを分割するために使用する方法を決定します。
  • aggregate:生データを出力サマリーに集計する方法を決定します。使用できる値には、sum、count、average、max、minなどがあります。

書式

PivotField.formatプロパティは、未加工の値を書式設定して表示する方法を決定したり(測定値フィールド)、値をグループに分割します(次元フィールド)。

この例は、次元フィールドの書式設定プロパティの変更がデータのグループ化にどのように影響するかを示します。フィールドの書式設定が四半期を示す場合、データは四半期ごとにグループ化されます。月を示す場合、データは月ごとにグループ化されます。

// 「期間」フィールドをカスタマイズします
let fld = ng.fields.getField('期間');
fld.format = 'yyyy';

ShowAs

PivotField.showAsプロパティを使用して、フィールド値を表示する前にフィールド値に対して実行する共通の計算を指定できます。

このプロパティのオプションはShowAs列挙によって定義され、値と直前の行/列の値の差、行/列/総計に対するパーセント、累計などがあります。

// 「期間」フィールドをカスタマイズします
let fld = ng.fields.getField('期間');
fld.showAs = wjOlap.ShowAs.PctCol;

ShowAs列挙は、APIのこちらで説明されています [wijmo.olap.ShowAs列挙へのリンク]

ソート

PivotEngineは、データサマリーの生成時に次元(行および列)フィールドを自動的にソートします。デフォルトでは、測定値(値)フィールドはソートしません。

ソートの詳細については、フィールドのソートトピックを参照してください。

HTMLコンテンツ

PivotFieldのisContentHtmlプロパティを使用して、プレーンテキストの代わりにHTMLを含むフィールドをレンダリングします。

ng.fields.getField('担当者').isContentHtml = true;
ng.fields.getField('分類').isContentHtml = true;


// 1つのデータオブジェクト
...
    {
        date: new Date(2019, 0, 1),
        buyer: '<span class="initial">N</span>成宮 真紀',
        type: '<span class="initial">V</span>ビデオ',
        amount: 74
    },
...

BuyerフィールドとTypeフィールドは文字列ですが、HTMLタグを含むので、PivotGridでHTMLとしてレンダリングされます。

計算フィールド

未加工の値ではなく、計算値を集計することもできます。

それには、生データ項目に計算値を追加したり、生項目に対して値を計算する関数をgetValueプロパティに設定したカスタムフィールドを追加します。

この例では、2番目の方法を説明します。PivotEngineに2つの計算フィールドを追加します。

  1. Range:「sales」プロパティの値に基づいて値「High」、「Low」、「Medium」のいずれかの値を含む計算次元フィールドです。
  2. Conversion:売上とダウンロードの比率を含む計算測定値フィールドです。