
100 万行を、ほんの一瞬でピボット。
- すべての列は型付きの列ストアに保持され、セルは元の行を 1 回走査するだけで集計されます。
BeginLoad,DefineColumn,AppendRowandEndLoadで行を読み込み、再計算は最後に 1 回だけ行われます。- MillionRows デモは、1,000,000 行を読み込んでピボットし、その処理時間を表示します。
フィールドを行、列、値にドロップし、日付を年、四半期、月でグループ化し、ドラッグ&ドロップのフィールドリストでユーザー自身にレイアウトを組み立てさせることができます。Delphi、C++ Builder、.NET 向けのネイティブなピボットテーブルグリッドで、ソースコードが付属します。
集計したい大量の行、自分なりの見方を求めるユーザー、確認して引き渡す数値。sgcPivotGrid は、そのすべてを 1 つのコントロールで、どのフレームワークでもカバーします。
VCL、FireMonkey、.NET 向けのピボットグリッドと、ドラッグ&ドロップのフィールドリスト。
型付きの列ストアと、再計算 1 回につき 1 パスの処理。100 万行を想定した性能基準を設けています。
TDataSet、sgcGrid のテーブル、.NET の DataTable、またはコードから追加した行。
CSV、JSON、HTML、PNG、SVG。サーバーや Linux64 でもウィンドウなしで動作します。
体験版に付属する sgcPivotGrid のデモからキャプチャしました。

BeginLoad, DefineColumn, AppendRow and EndLoad で行を読み込み、再計算は最後に 1 回だけ行われます。
AddField('Date', pvaColumn, pvdQuarter) は、呼び出しごとに 1 つの階層を追加します。pvdYear から pvdDay まで指定できます。ExpandLevel で行えます。
OnDrillDown が発生し、コードからは DrillDownCell で起動できます。DrillDown は、ストアのすべての列を含む元の行を IsgcUITable として返します。
SaveToCSV, SaveToJSON, SaveToHTML, SaveToPNG and SaveToSVG は、ユーザーが並べたとおりのビューを書き出します。TsgcPivotGridRenderer は、サーバーや Linux64 でも、ウィンドウなしで描画します。ResultTable は表示中の結果を sgcCharts に渡すため、グリッドの行からピボット、そしてチャートへと、データをコピーせずに進められます。集計、上位 N 件、計算フィールド、保存したレイアウトを、デモからそのままご紹介します。


TopN は最大のメンバーを残し、残りを「Others」行にまとめるため、合計は一致したままです。
ShowAs で列合計に対する割合として表示します。
100,000 行を再計算 1 回で読み込み、地域を四半期ごとに、最大の地域を先頭にして配置します。Delphi、C++ Builder、C# で同じ API です。
dotnet add package esegece.sgcPivotGrid.WinForms
uses
Forms, Controls, SysUtils,
sgcPivotGrid_Types, sgcPivotGrid_Fields, sgcPivotGrid_VCL;
procedure CreatePivot(aForm: TForm);
const
Regions: array[0..3] of string = ('North', 'South', 'East', 'West');
var
vGrid: TsgcVCLPivotGrid;
vField: TsgcPivotField;
i: Integer;
begin
vGrid := TsgcVCLPivotGrid.Create(aForm);
vGrid.Parent := aForm;
vGrid.Align := alClient;
// load 100,000 rows, one recalculation at EndLoad
vGrid.Pivot.BeginLoad(True);
try
vGrid.Pivot.DefineColumn('Region', pvtText);
vGrid.Pivot.DefineColumn('Date', pvtDateTime);
vGrid.Pivot.DefineColumn('Sales', pvtFloat);
for i := 1 to 100000 do
vGrid.Pivot.AppendRow([Regions[i mod 4], EncodeDate(2025, 1, 1) + i mod 365,
10 + (i mod 97) * 1.5]);
finally
vGrid.Pivot.EndLoad;
end;
// layout: regions by quarter, the largest region first
vGrid.Pivot.BeginUpdate;
try
vField := vGrid.Pivot.AddField('Region', pvaRow);
vField.SortBy := pvsValue;
vField.SortOrder := pvoDescending;
vGrid.Pivot.AddField('Date', pvaColumn, pvdQuarter).Caption := 'Quarter';
vGrid.Pivot.AddDataField('Sales', pvfSum);
finally
vGrid.Pivot.EndUpdate;
end;
end;
sgcPivotGrid は単体でも、sgcUI の Enterprise に含まれる形でも入手できます。テーマとランタイムを共有するすべての製品と一緒にお使いいただけます。いずれもソースコード付きです。
.NET では、esegece.sgcPivotGrid.Community の NuGet パッケージは無償です。sgcPivotGrid は All-Access バンドルにも含まれます。
すべての sgcUI 製品は同じランタイム sgcUICore で描画するため、ピボットは周囲のコントロールとフォント、余白、アクセントカラー、テーマを共有します。

明細行を sgcGrid に表示し、同じテーブルを TsgcPivotSource_Table 経由でピボットできます。

チャートのデータソースが ResultTable を読み取るため、ユーザーが組み立てたばかりのレイアウトがそのままチャートに表示されます。

ピボットとそのチャートを、ダッシュボードのタイルに配置できます。
Standard
Professional で追加
Enterprise で追加
体験版をダウンロードして、SalesPivot、DataSetPivot、MillionRows のデモを実行するか、まず全機能をご覧ください。