PivotTable
TsgcHTMLComponent_PivotTable — Delphi、C++ Builder、.NET で、行と列をグループ化し、行・列・総合計を伴うメジャーを集計する Bootstrap ピボットテーブルをレンダリングします。
TsgcHTMLComponent_PivotTable — Delphi、C++ Builder、.NET で、行と列をグループ化し、行・列・総合計を伴うメジャーを集計する Bootstrap ピボットテーブルをレンダリングします。
グループ化フィールドとメジャーを宣言し、生の行データを渡します(またはデータセットをバインドし)、それから 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
最もよく使うメンバーです。
各エントリは FieldName と Caption を持ちます。RowFields は左側で行をグループ化し、ColumnFields は上部で列をグループ化します。
Measures.Add は、SourceField、Caption、Aggregation(SUM/COUNT/AVERAGE/MIN/MAX)、任意の Format 書式を持つ TsgcHTMLPivotMeasure を返します。
DataFields は元の列を位置順に列挙します。AddRow(aValues) は、その順序に対応する行を 1 行追加します。
LoadFromDataSet(aDataSet) は、TDataSet から RowFields、ColumnFields、Measures で参照されているフィールドのみを直接読み取ります。
ShowRowTotals、ShowColumnTotals、ShowGrandTotal は、それぞれ集計行/列の表示を切り替えます。TotalText がそのラベルになります。
Striped、Bordered、Hover、Compact が Bootstrap テーブルのスタイルを設定します。EmptyCellText は空のバケットを埋め、HTML は完成したテーブルを返します。