SpreadJSは、ワンクリックでピボットテーブルをフィルタリングできるスライサーを提供します。スライサーを使用して複数のピボットテーブルを接続することにより、集計ターゲットをフィルタリングできます。手動フィルターを使用して、ピボットテーブルのデータをフィルター処理できます。ユーザーフレンドリーなインターフェイスを提供し、ピボットテーブルの行フィールドと列フィールドのフィルター状態を効率的に管理できるようにします。
PivotTableItemSlicerクラスは、 ピボットテーブルスライサーを操作するためのさまざまなスライサー関連のメソッドを提供します。
次のサンプルコードは、SlicerCollection.add メソッドを使用してピボットテーブルスライサーを追加する方法を示しています。SlicerTypeは「pivotTable」に設定する必要があります。
JavaScript |
コードのコピー
|
---|---|
$(document).ready(function () { // Spreadを初期化します。 spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 2 }); spread.options.allowDynamicArray = true; spread.suspendPaint(); // シートを取得します。 pivotLayoutSheet = spread.getSheet(0); dataSourceSheet = spread.getSheet(1); // グリッド線を非表示にします。 pivotLayoutSheet.options.gridline = { showVerticalGridline: false, showHorizontalGridline: false }; // シート名を設定します。 pivotLayoutSheet.name("ピボットレイアウト"); dataSourceSheet.name("データソース"); // 行数を設定します。 dataSourceSheet.setRowCount(245); // データソースを設定します。 dataSourceSheet.setArray(0, 0, pivotDB_UseCase); // dataSourceSheetにテーブルを追加します。 dataSourceSheet.tables.add('tableSales', 0, 0, 245, 8); // ピボットテーブルを初期化します。 var pt = initPivotTable(pivotLayoutSheet); pivotLayoutSheet.setColumnCount(200); initSlicer(pivotLayoutSheet, pt); // 両方のシートに列を自動フィットします。 autoFit(pivotLayoutSheet); autoFit(dataSourceSheet); spread.resumePaint(); }); function initPivotTable(sheet) { myPivotTable = sheet.pivotTables.add("pivotTable", "tableSales", 1, 1, GC.Spread.Pivot.PivotTableLayoutType.outline, GC.Spread.Pivot.PivotTableThemes.dark3); myPivotTable.suspendLayout(); myPivotTable.add("都市", "都市", GC.Spread.Pivot.PivotTableFieldType.rowField); myPivotTable.add("カテゴリ", "カテゴリ", GC.Spread.Pivot.PivotTableFieldType.rowField); myPivotTable.add("注文日", "注文日", GC.Spread.Pivot.PivotTableFieldType.columnField); let groupInfo = { originFieldName: "注文日", dateGroups: [ { by: GC.Pivot.DateGroupType.quarters } ] }; myPivotTable.group(groupInfo); myPivotTable.add("総計", "総計", GC.Spread.Pivot.PivotTableFieldType.valueField, GC.Pivot.SubtotalType.sum); formatValueField(myPivotTable); myPivotTable.resumeLayout(); myPivotTable.autoFitColumn(); return myPivotTable; } function initSlicer(sheet, pt) { slicer_City = sheet.slicers.add("slicer_City", pt.name(), "都市", GC.Spread.Sheets.Slicers.SlicerStyles.light4(), GC.Spread.Sheets.Slicers.SlicerType.pivotTable); slicer_City.position(new GC.Spread.Sheets.Point(1020, 10)); slicer_Category = sheet.slicers.add("slicer_Category", pt.name(), "カテゴリ", GC.Spread.Sheets.Slicers.SlicerStyles.light1(), GC.Spread.Sheets.Slicers.SlicerType.pivotTable) slicer_Category.position(new GC.Spread.Sheets.Point(1220, 10)); slicer_Date = sheet.slicers.add("slicer_Date", pt.name(), "注文日", GC.Spread.Sheets.Slicers.SlicerStyles.other2(), GC.Spread.Sheets.Slicers.SlicerType.pivotTable); slicer_Date.position(new GC.Spread.Sheets.Point(1020, 280)); } |
フィルタリングと一緒にピボットテーブルスライサーでアイテムを並べ替えることができます。[スライサー設定]ダイアログボックスでは、次のオプションを使用できます。
例: OrderDateの条件が「<1/1/2013 5:30:00 and >12/30/2014 5:30:00」 の場合、ソート順によって並べ替えられます。
例: OrderDateの条件が「<1/1/2013 5:30:00 and >12/30/2014 5:30:00」の場合で該当日付にデータが含まれていない場合でもリスト表示されます。
デフォルトの並べ替え値は、「データの無いアイテムを非表示にする」と「データの無いアイテムを最後に表示する」です。スライサーアイテムは2つの部分に分割され、各部分は昇順または降順で並べ替えられます。
次のサンプルコードは、さまざまな並べ替えまたはフィルタリング機能を定義しています。
JavaScript |
コードのコピー
|
---|---|
function setMultiSelectFalseForSlicerCity() { // MultiSelectをTrueに設定します。 slicer_City.multiSelect(true); } function setSortStateForSlicerCity() { // 並べ替え状態を降順に設定します。 slicer_City.sortState(GC.Spread.Sheets.SortState.descending); } function showNoDataItem() { myPivotTable.updateSource(); // これをチェックするには、宇治市を削除します(またはデータソースから任意の1つの都市を選択し、このボタンをクリックします。このボタンをクリックすると、PTが最初に更新されます)。 slicer_City.showNoDataItems(false); } function visuallyNoDataItems() { myPivotTable.updateSource(); slicer_Date.visuallyNoDataItems(false); } function showNoDataItemsInLast() { slicer_Date.showNoDataItemsInLast(false); } |
PivotTableItemSlicer.connectPivotTable メソッドを使用して、スライサーとピボットテーブルの間に接続を確立できます。スライサーとピボットテーブルの両方が相互に接続または切断できるため、接続はどちらの側でも制御されます。スライサーがピボットテーブルと切断された場合、そのフィルターアクションはピボットテーブルに影響を与えず、スライサーでも同じことが続きます。
次のサンプルコードは、接続を切断する方法を示しています。
JavaScript |
コードのコピー
|
---|---|
function disconnectSlicerWithPivotTable() { // slicer_Dateはピボットテーブルと切断します。 slicer_Date.disconnectPivotTable(myPivotTable.name()); slicer_Date.captionName("Disconnected"); } |