PivotTable コンポーネント — sgcHTML | eSeGeCe

PivotTable

TsgcHTMLComponent_PivotTable — Delphi、C++ Builder、.NET で、行と列をグループ化し、行・列・総合計を伴うメジャーを集計する Bootstrap ピボットテーブルをレンダリングします。

TsgcHTMLComponent_PivotTable

グループ化フィールドとメジャーを宣言し、生の行データを渡します(またはデータセットをバインドし)、それから HTML プロパティを読み取ります。

コンポーネントクラス

TsgcHTMLComponent_PivotTable

レンダリング内容

Bootstrap 5 集計テーブル + 合計

ファミリー

データ & テーブル

言語

Delphi, C++ Builder, .NET

フィールドを宣言し、行を追加し、レンダリングする

グループ化する RowFields / ColumnFields を追加し、集計する値ごとに Measures エントリを追加し、元の列を DataFields に列挙し、AddRow で行をプッシュしてから、HTML を読み取ります。

uses
  sgcHTML_Component_PivotTable;

var
  oPivot: TsgcHTMLComponent_PivotTable;
  oMeasure: TsgcHTMLPivotMeasure;
begin
  oPivot := TsgcHTMLComponent_PivotTable.Create(nil);
  try
    oPivot.Caption := 'Revenue by Region and Quarter';

    oPivot.RowFields.Add.FieldName := 'Region';
    oPivot.ColumnFields.Add.FieldName := 'Quarter';

    oMeasure := oPivot.Measures.Add;
    oMeasure.SourceField := 'Amount';
    oMeasure.Caption := 'Revenue';
    oMeasure.Aggregation := paSum;
    oMeasure.Format := '#,##0.00';

    oPivot.DataFields.Add('Region');
    oPivot.DataFields.Add('Quarter');
    oPivot.DataFields.Add('Amount');

    oPivot.AddRow(['EMEA', 'Q1', '12000']);
    oPivot.AddRow(['EMEA', 'Q2', '15500']);
    oPivot.AddRow(['APAC', 'Q1', '9800']);

    WebModule.Response := oPivot.HTML;   // aggregated table + row/column/grand totals
  finally
    oPivot.Free;
  end;
end;

// Or bind it straight to a dataset (reads only RowFields/ColumnFields/Measures fields):
oPivot.LoadFromDataSet(qrySales);
// includes: sgcHTML_Component_PivotTable.hpp

TsgcHTMLComponent_PivotTable *oPivot = new TsgcHTMLComponent_PivotTable(NULL);
try
{
  oPivot->Caption = "Revenue by Region and Quarter";

  oPivot->RowFields->Add()->FieldName = "Region";
  oPivot->ColumnFields->Add()->FieldName = "Quarter";

  TsgcHTMLPivotMeasure *oMeasure = oPivot->Measures->Add();
  oMeasure->SourceField = "Amount";
  oMeasure->Caption = "Revenue";
  oMeasure->Aggregation = paSum;
  oMeasure->Format = "#,##0.00";

  oPivot->DataFields->Add("Region");
  oPivot->DataFields->Add("Quarter");
  oPivot->DataFields->Add("Amount");

  oPivot->AddRow(OPENARRAY(UnicodeString, ("EMEA", "Q1", "12000")));
  oPivot->AddRow(OPENARRAY(UnicodeString, ("APAC", "Q1", "9800")));

  String html = oPivot->HTML;   // aggregated table + row/column/grand totals
}
__finally
{
  delete oPivot;
}
using esegece.sgcWebSockets;

var pivot = new TsgcHTMLComponent_PivotTable();
pivot.Caption = "Revenue by Region and Quarter";

pivot.RowFields.Add().FieldName = "Region";
pivot.ColumnFields.Add().FieldName = "Quarter";

var measure = pivot.Measures.Add();
measure.SourceField = "Amount";
measure.Caption = "Revenue";
measure.Aggregation = TsgcHTMLPivotAggregation.paSum;
measure.Format = "#,##0.00";

pivot.DataFields.Add("Region");
pivot.DataFields.Add("Quarter");
pivot.DataFields.Add("Amount");

pivot.AddRow(new[] { "EMEA", "Q1", "12000" });
pivot.AddRow(new[] { "APAC", "Q1", "9800" });

string html = pivot.HTML;   // aggregated table + row/column/grand totals

主なプロパティとメソッド

最もよく使うメンバーです。

RowFields / ColumnFields

各エントリは FieldNameCaption を持ちます。RowFields は左側で行をグループ化し、ColumnFields は上部で列をグループ化します。

Measures

Measures.Add は、SourceFieldCaptionAggregation(SUM/COUNT/AVERAGE/MIN/MAX)、任意の Format 書式を持つ TsgcHTMLPivotMeasure を返します。

DataFields / AddRow

DataFields は元の列を位置順に列挙します。AddRow(aValues) は、その順序に対応する行を 1 行追加します。

Dataset binding

LoadFromDataSet(aDataSet) は、TDataSet から RowFieldsColumnFieldsMeasures で参照されているフィールドのみを直接読み取ります。

Totals

ShowRowTotalsShowColumnTotalsShowGrandTotal は、それぞれ集計行/列の表示を切り替えます。TotalText がそのラベルになります。

Table styling

StripedBorderedHoverCompact が Bootstrap テーブルのスタイルを設定します。EmptyCellText は空のバケットを埋め、HTML は完成したテーブルを返します。

さらに詳しく

オンラインヘルプこのコンポーネントの完全な API リファレンスと使用ガイドです。
すべての sgcHTML コンポーネント80 以上のコンポーネントの全機能マトリックスを閲覧できます。
無料体験版のダウンロード30 日間の体験版には 60.HTML デモプロジェクトが付属します。
価格完全なソースコード付きの Single、Team、Site ライセンス。

始める準備はできましたか?

無料体験版をダウンロードして、Delphi、C++ Builder、.NET でピボットテーブルによるデータ集計を始めましょう。