Top > OOoBasic > Calc > DataPilotTable

データパイロット Edit

データパイロットテーブルコンテナ Edit

データパイロットはシート単位で設定を行います。getDataPilotTables メソッドを使用してコンテナオブジェクトを取得します。

Sub datapilottable_1
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oDataPilotTables = oSheet.getDataPilotTables()
End Sub

このコンテナオブジェクトは次のインターフェースをサポートしています。

データパイロットディスクリプタ Edit

データパイロットを設定するディスクリプタをコンテナから作成します。

Sub datapilottable_2
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oDataPilotTables = oSheet.getDataPilotTables()
  oDesc = oDataPilotTables.createDataPilotDescriptor()
End Sub
プロパティ説明
ColumnFields.container.XIndexAccess列フィールド
ColumnGrandboolean合計列
DataFields.container.XIndexAccessデータフィールド
DataPilotFields.container.XIndexAccess全てのフィールド
DrillDownOnDoubleClickbooleanドリルダウンを可能にする
FilterDescriptor.sheet.XSheetFilterDescriptorフィルタ設定 (フィルタディスクリプタ参照)
HiddenFields.container.XIndexAccess隠しフィールド
IgnoreEmptyRowsboolean空白行を無視する
Namestringデータパイロット名
PageFields.container.XIndexAccessページフィールド
RepeatIfEmptyboolean
RowFields.container.XIndexAccess行フィールド
RowGrandboolean行の総数
ShowFilterButtonbooleanフィルタの追加
SourceRange.table.CellRangeAddressソースセル範囲
Tagstring追加文字列

フィールド Edit

ページ、行、列、データ、隠しフィールドは同じプロパティ値で設定しますが、フィールドの種類により使用されるプロパティが異なります。

プロパティ説明
AutoShowInfo.sheet.DataPilotFieldAutoShowInfo自動的に表示オプション。下記参照
Function.sheet.GeneralFunction関数 (Function参照)
GroupInfo.sheet.DataPilotFieldGroupInfo
HasAutoShowInfobooleanAutoShowInfo を使用する
HasLayoutInfobooleanHasLayoutInfo を使用する
HasReferencebooleanSelectedPage を使用する
HasSortInfobooleanSortInfo を使用する
IsGroupFieldboolean
Items.container.XIndexAccess各フィールドの項目。下記参照
LayoutInfo.sheet.DataPilotFieldLayoutInfoフィールド表示オプション。下記参照
Namestringフィールド名
Orientation.sheet.DataPilotFieldOrientationフィールドの種類
Reference.sheet.DataPilotFieldReference
SelectedPagestringフィルタするページ指定
ShowEmptyboolean
SortInfo.sheet.DataPilotFieldSortInfo並べ替え基準 (下記参照)
UseSelectedPagebooleanフィルタするページ指定を使用する

DataPilotFieldAutoShowInfo は .sheet.DataPilotFieldAutoShowInfo で指定します。

.sheet.DataPilotFieldAutoShowInfo
フィールド説明
IsEnabledboolean自動表示を有効にする
ShowItemsModelong項目表示モード .sheet.DataPilotFieldShowItemsMode
ItemCountlong表示項目数
DataFieldstring使用するフィールド指定

ShowItemsMode の指定。.sheet.DataPilotFieldShowItemsMode

.sheet.DataPilotFieldShowItemsMode
数値説明
FROM_TOP0上から下
FROM_BOTTOM1下から上

並べ替え指定の SortInfo は .sheet.DataPilotFieldSortInfo で指定します。

.sheet.DataPilotFieldSortInfo
フィールド説明
Fieldstring
IsAscendingboolean
Modelong.sheet.DataPilotFieldSortMode

Mode の指定は .sheet.DataPilotFieldSortMode で行います。

.sheet.DataPilotFieldSortMode
数値説明
NONE0
MANUAL1
NAME2
DATA3

LayoutInfo の指定は .sheet.DataPilotFieldLayoutInfo で行います。

.sheet.DataPilotFieldLayoutInfo
フィールド説明
LayoutModelong.sheet.DataPilotFieldLayoutMode
AddEmptyLinesboolean各項目の後に空白行を追加する

LayoutMode は .sheet.DataPilotFieldLayoutMode で指定します。

.sheet.DataPilotFieldLayoutMode
フィールド説明
TABULAR_LAYOUT表形式のレイアウト
OUTLINE_SUBTOTALS_TOP小計が最上部にあるアウトラインレイアウト
OUTLINE_SUBTOTALS_BOTTOM小計が最下部にあるアウトラインレイアウト

Orientation は .sheet.DataPilotFieldOrientation で指定します。

.sheet.DataPilotFieldOrientation
HIDDEN隠し
COLUMN
ROW
PAGEページ
DATAデータ

フィールドの項目 Edit

getItems メソッドで取得できる各フィールドの項目は項目の表示などを切り替えられます。メソッドの返り値はコンテナオブジェクトで、次のインターフェースをサポートしています。

  • com.sun.star.container.XEnumerationAccess
  • com.sun.star.container.XIndexAccess
  • com.sun.star.container.XNameAccess
プロパティ説明
IsHiddenboolean非表示にする
Namestring項目名
Positionlong項目の位置
ShowDetailboolean詳細を表示する

データパイロットテーブルの追加 Edit

コンテナオブジェクトにディスクリプタを insertNewByName メソッドで挿入して新しいデータパイロットテーブルを作成します。

void
insertNewByName( [in] string aName,
                   [in] .table.CellAddress aOutputAddress,
                   [in] .sheet.XDataPilotDescriptor xDescriptor )
declared in: .sheet.XDataPilotTables

新しいデータパイロットテーブルを挿入します

  • aName: データパイロットテーブル名
  • aOutputAddress: 出力先左上セル指定
  • xDescriptor: データパイロットテーブル指定ディスクリプタ
  1. フィールドを作成、Orientation を設定してフィールドの種類を指定します
  2. ディスクリプタの DataPilotFields に全てのフィールドを追加
  3. insertNewByName メソッドでコンテナに挿入します

データパイロットテーブルの削除 Edit

既存のデータパイロットテーブルはコンテナから removeByName メソッドで削除します。

データパイロットテーブル Edit

既存のデータパイロットテーブルはインデックスや名前、列挙型を使用して取得できます。

Sub datapilottable_10
  oSheet = ThisComponent.getSheets().getByIndex(0)
  
  oDataPilotTables = oSheet.getDataPilotTables()
  oDataPilottable = oDataPilotTables.getByIndex(0)
End Sub

更新 Edit

reflesh メソッドを呼ぶことでテーブルを更新できます。

oDataPilottable.reflesh()

テーブルの範囲 Edit

結果のテーブルの範囲は getOutputRange メソッドで取得できます。返り値は com.sun.star.table.CellRangeAddress です。

aCellRangeAddress = oDataPilottable.getOutputRange()

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes