Delphi, C++ Builder & .NET Parte di sgcUI

sgcPivotGrid, la griglia di tabelle pivot per Delphi, C++ Builder & .NET

Trasforma le righe grezze in risposte. Trascina i campi in righe, colonne e valori, raggruppa le date per anno, trimestre o mese e lascia che gli utenti costruiscano il proprio layout con un elenco campi a trascinamento. Un archivio di colonne tipizzato ricalcola un milione di righe in una frazione di secondo e un doppio clic mostra le righe di origine dietro qualsiasi cella.

VCL, FireMonkey, WinForms, WPF, Avalonia1.000.000 di righe: budget di ricalcolo di 100 ms su Win64Edizione .NET Community gratuitaIncluso in sgcUI Enterprise
Demo SalesPivot: l'elenco campi con le aree Filtri, Colonne, Righe e Valori accanto al pivot che costruisce

Tutto ciò che serve a una tabella pivot

Tredici funzionalità in cinque gruppi. Le funzionalità contrassegnate come Registered non sono nell'edizione .NET Community gratuita.

Velocità e dati

Carica una volta, ricalcola una volta, con o senza finestra.

Demo MillionRows dopo il pivot di 1.000.000 di righe, con l'etichetta del tempo che stampa

Velocità e dati

Un milione di righe in pivot in una frazione di secondo

Gli storici degli ordini e i log dei sensori superano presto un foglio di calcolo. sgcPivotGrid tiene ogni colonna in un archivio di colonne tipizzato, aggrega le celle in un solo passaggio sulle righe di origine e disegna solo la parte visibile del risultato. Il budget QA per ricalcolare 1.000.000 di righe è di 100 ms su Win64, e la demo MillionRows carica ed esegue il pivot di un milione di righe e stampa il proprio tempo.

  • TsgcPivotEngine è il motore, pubblicato come Pivot sulla griglia e utilizzabile anche da solo
  • BeginLoad, DefineColumn, AppendRow ed EndLoad caricano le righe con un solo ricalcolo alla fine
  • BeginUpdate ed EndUpdate raggruppano le modifiche del layout in un solo passaggio
  • Le colonne di testo sono codificate con dizionario e i totali derivano dai valori di origine, mai da medie di medie
Leggi l'argomento della guida
Demo DataSetPivot: una tabella di ordini sopra un pivot che segue le modifiche

Velocità e dati

Alimentalo da un TDataSet, da una griglia o dal tuo codice

Punta il pivot sui dati che hai già. Una sorgente dataset copia qualsiasi TDataSet nel motore e, con gli aggiornamenti live attivi, lo ricarica dopo ogni post, così il pivot segue le modifiche che i tuoi utenti fanno in un form. Una sorgente tabella legge qualsiasi IsgcUITable, come una sgcGrid, e ricarica solo quando la tabella cambia. Il codice che ha già le righe in memoria le aggiunge semplicemente. Il pivot non scrive mai nei tuoi dati.

  • TsgcPivotSource_DataSet con DataSet, Active, Columns e LiveUpdates
  • Funziona qualsiasi discendente di TDataSet, perché la sorgente lo legge tramite un TDataLink
  • TsgcPivotSource_Table legge una sgcGrid o qualsiasi altra IsgcUITable e ricarica quando TableVersion cambia
  • In .NET lo stesso motore legge un DataTable
Leggi l'argomento della guida

Analisi

Le domande di un responsabile vendite, risolte con le proprietà.

Pivot con il 2025 espanso a trimestri e mesi e il 2024 compresso

Analisi

Date raggruppate come ragiona la gente

Nessuno legge un report di vendite un giorno alla volta. Aggiungi più volte lo stesso campo data alle colonne con un raggruppamento diverso e sgcPivotGrid costruisce da esso i livelli Anno, Trimestre e Mese, ciascuno con il proprio subtotale. Gli utenti aprono e chiudono i livelli con i pulsanti più e meno, e il tuo codice può espandere un intero livello in una volta. Espandere o comprimere crea un nuovo snapshot senza aggregare di nuovo i dati. I raggruppamenti per settimana e per giorno ci sono per i report operativi che li richiedono.

  • TsgcPivotDateGrouping: pvdYear, pvdQuarter, pvdMonth, pvdWeek e pvdDay
  • AddField('Date', pvaColumn, pvdQuarter) aggiunge un livello a ogni chiamata
  • ExpandAll, CollapseAll ed ExpandLevel per ogni asse
  • Subtotali e totali generali con posizione e didascalia proprie
Leggi l'argomento della guida
Tre misure affiancate: somma dell'importo, clienti distinti e margine medio

Analisi

Otto aggregazioni, compreso il conteggio distinto

Il fatturato è una somma e il numero di ordini è un conteggio, ma quanti clienti diversi hanno acquistato a marzo è un conteggio distinto, ed è la cifra che chiedono i team finanziari. Ogni campo dati sceglie la propria aggregazione, quindi un solo layout può mostrare affiancati la somma delle vendite, il numero di clienti distinti e il margine medio. Nell'elenco campi, il pulsante di un chip Valori cambia l'aggregazione con un clic. I totali sono sempre calcolati dai valori di origine.

  • TsgcPivotAggregation: pvfSum, pvfCount, pvfAverage, pvfMin e pvfMax
  • pvfCountDistinct, pvfStdDev e pvfVar per le statistiche
  • AddDataField('Sales', pvfSum) aggiunge una misura, e più misure stanno sotto ogni membro di colonna
  • Tutte e otto sono nell'edizione Community gratuita
Leggi l'argomento della guida
I primi 5 prodotti per vendite più una riga Altri, con l'elenco dei membri aperto

Analisi Solo Registered

Filtra ciò che conta, tieni i primi N

I layout grandi sono utili solo quando gli utenti possono restringerli. I filtri per membro, etichetta e valore riducono il risultato, con 13 operatori da uguale a compreso tra e contiene. Top N mantiene i membri con i totali più grandi all'interno di ogni genitore e può raccogliere il resto in un'unica riga Altri, così i totali continuano a quadrare. Un drill down su Altri restituisce le righe di origine di ogni membro che contiene.

  • TsgcPivotFilterOperator: pvcEqual, pvcGreater, pvcBetween, pvcContains, pvcBeginsWith e altri
  • FilterValues e FilterExclude per gli elenchi di membri, anche dall'elenco campi
  • TopN, TopNOthers e OthersCaption per la vista Top N
  • SortBy pvsValue con pvoDescending elenca prima i più grandi

I filtri per membro, etichetta e valore e l'ordinamento sono nell'edizione Community. Top N con Altri è Registered.

Leggi l'argomento della guida
Demo AdvancedPivot con un campo calcolato di margine e la percentuale sul totale della colonna

Analisi Solo Registered

Campi calcolati e percentuale sul totale

Margini, profitto e quote sono i numeri di cui discutono i responsabili, e raramente esistono come colonne nel database. Un campo calcolato calcola un valore per ogni riga di origine da un'espressione, con IF, ROUND, MIN, MAX, ISNULL e funzioni di data, e poi viene aggregato come qualsiasi altra colonna. Mostra valori come trasforma una misura in percentuale della riga, della colonna o del totale generale, in totale progressivo, in differenza da un elemento base o in classifica.

  • CalculatedFields.Add restituisce un TsgcPivotCalculatedField con Name ed Expression
  • Valutazione a livello di riga: la somma di un profitto calcolato è la somma dei profitti
  • ShowAs: pvwPercentOfRow, pvwPercentOfColumn, pvwPercentOfGrandTotal, pvwRunningTotal, pvwDifferenceFrom, pvwRank
  • ShowAsBaseItem sceglie il membro da cui si misura una differenza

Non nell'edizione Community: questi membri sono compilati sotto SGC_PIVOTGRID_ADVANCED.

Leggi l'argomento della guida

Interazione

Lascia che siano gli utenti a trovare la risposta.

Interazione

Gli utenti costruiscono il proprio report con il trascinamento

Una nuova domanda non dovrebbe richiedere una nuova versione. Metti un elenco campi accanto alla griglia, imposta una proprietà e gli utenti trascinano le colonne di origine in Filtri, Colonne, Righe e Valori. Una colonna di testo rilasciata su Valori conta, una numerica somma, e il pulsante del chip cambia l'aggregazione. Ogni chip apre un elenco di membri con una casella di ricerca, e la modalità differita tiene in sospeso le modifiche finché l'utente non le applica, utile con dati molto grandi. Lo stesso elenco campi funziona in FireMonkey.

  • TsgcVCLPivotFieldList e TsgcFMXPivotFieldList, collegati tramite PivotGrid
  • Quattro aree: pvaFilter, pvaColumn, pvaRow e pvaData
  • DeferUpdate e ApplyChanges ricalcolano una sola volta, quando l'utente ha finito
  • Elenchi campi WinForms, WPF e Avalonia in .NET
  • Da destra a sinistra per arabo ed ebraico: l'area delle intestazioni di riga, l'ordine delle colonne, i chevron e l'elenco dei campi sono speculari, e l'esportazione XLSX scrive un foglio da destra a sinistra
Leggi l'argomento della guida
Pivot paese per mese con una scala di colori verde sui valori delle vendite

Interazione

Le scale di colori mostrano subito i punti caldi

Una griglia di numeri nasconde la storia finché qualcuno non la colora. Le regole di formato tingono le celle dei dati in base ai valori: una scala di colori sfuma ogni cella tra due colori in base alla sua posizione tra il valore più piccolo e il più grande della misura, e le regole sul valore colorano o mettono in grassetto le celle che soddisfano una condizione. Le stesse regole valgono sullo schermo e nelle immagini PNG e SVG, perché entrambe sono disegnate dallo stesso renderer. Non serve alcun codice di disegno personalizzato.

  • TsgcPivotFormatRule nella collezione FormatRules, modificabile nell'Object Inspector
  • pvrColorScale con MinColor e MaxColor
  • Regole pvrValue con un operatore, BackColor, ForeColor e Bold
  • Measure sceglie il campo dati e Theme passa dal chiaro allo scuro
Leggi l'argomento della guida
Demo DataSetPivot con gli ordini dietro una cella del pivot elencati accanto alla griglia

Interazione

Drill down fino alle righe dietro qualsiasi numero

Quando un totale sembra sbagliato, la prima domanda è quali ordini lo compongono. Un doppio clic su una cella, o Invio da tastiera, esegue il drill down, e il motore restituisce le righe di origine aggregate in quel valore, come numeri di riga o come tabella con ogni colonna dell'archivio, comprese quelle che non sono nel layout. La demo DataSetPivot elenca gli ordini dietro una cella in un pannello laterale.

  • OnDrillDown della griglia, e DrillDownCell per attivarlo da codice
  • DrillDown restituisce le righe di origine come IsgcUITable
  • GetSourceRows fornisce i numeri di riga e SourceValue legge un valore
  • Un drill down sulla riga Altri di Top N restituisce le righe di ogni membro che contiene
Leggi l'argomento della guida

Interazione

Chiedi un layout in linguaggio naturale

Gli utenti scrivono una domanda come i 3 paesi con più vendite per trimestre, nella barra di query AI o dal tuo codice, e TsgcPivotGridAI chiede il layout a un provider AI. Funziona qualsiasi LLM: TsgcUIAIEventProvider passa ogni richiesta al tuo codice, e TsgcUIAIChatProvider usa il componente TsgcAIChat di sgcWebSockets. Dall'applicazione escono solo la domanda e il catalogo dei campi: nomi, didascalie, tipi e fino a 5 valori di esempio per campo, mai le righe. La risposta viene verificata sui campi reali prima di essere applicata con un solo ricalcolo, e Annulla ripristina il layout precedente.

  • TsgcPivotGridAI con Provider e PivotGrid, su VCL, FireMonkey, WinForms, WPF e Avalonia
  • Ask attende la risposta, AskAsync gira su un thread di lavoro e Cancel lo ferma
  • OnBeforeAsk può modificare o annullare la richiesta, OnLayout può rifiutare la risposta
  • MaxSampleValues limita gli esempi; i campi sconosciuti vengono scartati e la risposta è limitata a 64 KB
  • TsgcPivotGridAIQuery del ponte sgcPivotGridWS funziona ancora con Chat, e un Provider assegnato ha la precedenza su Chat

Ogni edizione e ogni piattaforma, Community compresa; l'Annulla di un layout AI non è nell'edizione Community. Il provider sgcWebSockets richiede un'edizione Registered con un sgcWebSockets registrato: sgcUICoreWS in Delphi e C++ Builder, il pacchetto esegece.sgcUICore.sgcWebSockets in .NET.

Leggi l'argomento della guida

Output

Un file, un browser, un grafico o un job su server.

Demo GridToPivotToChart: righe della griglia, il pivot e un grafico sgcCharts in tre pannelli

Output

Esporta ciò che vedi, oppure trasformalo in grafico

Un pivot è spesso l'inizio di un report, non la fine. Ogni esportazione scrive la vista come l'ha organizzata l'utente, con i livelli espansi e i filtri: CSV per i fogli di calcolo, JSON per altri sistemi, HTML per un browser o un'e-mail, PNG e SVG per i documenti. Il risultato è anche una tabella che sgcCharts legge direttamente, così la demo GridToPivotToChart passa dalle righe di una griglia a un pivot e a un grafico senza copiare alcun dato. Gli stream funzionano come i file.

  • SaveToCSV, SaveToJSON e SaveToHTML su file o stream
  • SaveToPNG e SaveToSVG con una dimensione opzionale
  • TsgcPivotGridRenderer disegna senza finestra, su un server o su Linux64
  • ResultTable espone il risultato visibile come IsgcUITable per sgcCharts
Leggi l'argomento della guida
Elenco dei layout con le viste salvate Vendite per regione e Margine per prodotto

Output Solo Registered

Salva un layout, ripristinalo con una chiamata

Gli utenti esperti ricostruiscono sempre le stesse viste: le vendite per regione il lunedì, il margine per prodotto a fine mese. La persistenza del layout scrive l'intero layout come JSON, con campi, aree, raggruppamenti, aggregazioni, ordinamento, filtri e totali, e lo ricarica con un solo ricalcolo. Conservalo in un file, in un campo del database o in un profilo utente, offri un elenco di viste con nome oppure copia il layout di una griglia in un'altra.

  • SaveLayoutToFile e LoadLayoutFromFile sulle griglie e sul motore
  • SaveLayoutToString e LoadLayoutFromString per un database o un archivio di impostazioni
  • Le versioni a griglia conservano anche le larghezze di colonna modificate dall'utente
  • Copia un layout tra griglie con LoadLayoutFromString(SaveLayoutToString)

Non nell'edizione Community.

Leggi l'argomento della guida

Accessibilità

UI Automation per screen reader, tastiera e alto contrasto, senza alcuna configurazione.

Accessibilità

Una tabella pivot esposta con le sue intestazioni

sgcPivotGrid espone il suo contenuto a Microsoft UI Automation come una tabella con intestazioni di riga e di colonna che si espandono e si comprimono, celle dati e totali. L'elenco campi è esposto come un elenco di campi per area, quindi anche chi usa uno screen reader può costruire il pivot.

  • Le frecce, Home, End, PagÙp e PagÙgiù spostano la cella con il focus, e Sinistra e Destra (o i tasti più e meno) comprimono ed espandono le intestazioni
  • Nell'elenco campi, Su e Giù spostano il focus tra i campi, da Ctrl+1 a Ctrl+4 spostano il campo in righe, colonne, valori o filtri, Ctrl+Su e Ctrl+Giù lo riordinano, Space lo attiva o disattiva e Del lo rimuove
  • I tasti dell'elenco campi sostituiscono il trascinamento dei campi con il mouse
  • Un anello di focus visibile e, con un tema Windows ad alto contrasto, la tabella pivot si disegna con i colori di sistema

L'accessibilità è attiva per impostazione predefinita in tutte le edizioni, compresa l'edizione Community gratuita, su VCL in ogni versione di Delphi e C++Builder da Delphi 7 a Delphi 13, su FireMonkey su Windows e su WinForms, WPF e Avalonia. In Delphi e C++Builder, AccessibleName e AccessibleDescription impostano il nome e la descrizione esposti a UI Automation, e in .NET il nome accessibile e il testo della guida standard di ciascun framework fanno lo stesso. Vedi i report di conformità sull'accessibilità.

Leggi l'argomento della guida

Guarda sgcPivotGrid all'opera

sgcPivotGrid nelle demo della suite sgcUI: applicazioni complete che funzionano offline con dati simulati integrati.

Misurato rispetto ai budget

Il gruppo di prestazioni del QA esegue questi scenari su build di rilascio, come mediana di cinque esecuzioni su dati fissi. Le cifre sono budget che ogni scenario deve rispettare, pubblicati nella guida.

MisurazioneRisultatoCondizioni
Ricalcolo di 1.000.000 di righe (2 campi riga, 1 campo colonna, 1 Somma)100 msBuild di rilascio Win64, budget QA
Ricalcolo di 1.000.000 di righe (2 campi riga, 1 campo colonna, 1 Somma)160 msBuild di rilascio Win32, budget QA
AppendRow di 1.000.000 di righe (3 testi, 1 float e 1 data)900 msBuild di rilascio Win64, budget QA
AppendRow di 1.000.000 di righe (3 testi, 1 float e 1 data)1.400 msBuild di rilascio Win32, budget QA

Fonte: l'argomento della guida che documenta questi numeri.

Chi sviluppa con sgcPivotGrid

Sviluppatori di ERP e di applicazioni gestionali

Analisi di vendite e finanza dentro un ERP

Dai al personale di contabilità e vendite un pivot sulla tabella degli ordini senza esportare in un foglio di calcolo. Una sorgente dataset collega il pivot allo stesso TDataSet dei tuoi form e segue ogni modifica registrata. Le date si raggruppano per anno, trimestre e mese, una scala di colori segnala le regioni deboli e un doppio clic elenca le fatture dietro un totale sospetto, così le domande trovano risposta dentro la tua applicazione.

  • Sorgente dataset con aggiornamenti live
  • Raggruppamento per data
  • Scale di colori
  • Drill down
Esegui la demo DataSetPivot

Analisti e controller

Analisi self service per gli utenti esperti

Gli utenti esperti vogliono esplorare, non inviare richieste di modifica. L'elenco campi permette di trascinare i campi tra righe, colonne, filtri e valori, gli elenchi di membri restringono i dati e i layout salvati riportano le loro viste preferite. Con il ponte AI possono anche scrivere una domanda e ottenere il layout già costruito, con Annulla a un clic quando la risposta non è quella che intendevano.

  • Elenco campi
  • Top N con Altri
  • Persistenza del layout
  • Layout AI
Esegui la demo AdvancedPivot

Back office e servizi di reportistica

Report pianificati su un server

I riepiloghi notturni non hanno bisogno di uno schermo. Il motore e il renderer headless girano in un servizio o in un'applicazione console, su Windows o su Linux64 da Delphi 10.2. Carica le righe del giorno, applica un layout salvato e scrivi il pivot come PNG, SVG, HTML o CSV, pronto da allegare a un'e-mail o da pubblicare in una pagina intranet.

  • TsgcPivotEngine senza finestra
  • TsgcPivotGridRenderer
  • Esportazione HTML e CSV
  • Linux64
Esegui la demo HeadlessReport

Una tabella pivot in poche righe

La stessa API in Delphi, C++ Builder e C#: carica 100.000 righe una sola volta, poi disponi le regioni per trimestre con la regione più grande per prima.

Un form VCL con una pivot grid e un elenco campi: 100.000 righe caricate con un solo ricalcolo, regioni per trimestre, regione più grande per prima.

unit frmSales;

interface

uses
  Classes, Controls, Forms, SysUtils,
  sgcUICore_Theme, sgcPivotGrid_Types, sgcPivotGrid_Fields, sgcPivotGrid_VCL,
  sgcPivotGrid_FieldList_VCL;

type
  TFormSales = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;

implementation

procedure TFormSales.FormCreate(Sender: TObject);
const
  Regions: array[0..3] of string = ('North', 'South', 'East', 'West');
var
  vGrid: TsgcVCLPivotGrid;
  vList: TsgcVCLPivotFieldList;
  vField: TsgcPivotField;
  i: Integer;
begin
  vGrid := TsgcVCLPivotGrid.Create(Self);
  vGrid.Parent := Self;
  vGrid.Align := alClient;
  vGrid.Theme := utDark;
  vList := TsgcVCLPivotFieldList.Create(Self);
  vList.Parent := Self;
  vList.Align := alRight;
  vList.PivotGrid := vGrid;
  // 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, shown as % of total
  vGrid.Pivot.BeginUpdate;
  try
    vField := vGrid.Pivot.AddField('Region', pvaRow);
    vField.SortBy := pvsValue;
    vField.SortOrder := pvoDescending;
    vGrid.Pivot.AddField('Date', pvaColumn, pvdQuarter).Caption := 'Quarter';
    vField := vGrid.Pivot.AddDataField('Sales', pvfSum);
    vField.ShowAs := pvwPercentOfGrandTotal;
  finally
    vGrid.Pivot.EndUpdate;
  end;
  vGrid.SaveToHTML(ExtractFilePath(ParamStr(0)) + 'sales.html');
end;

end.

Leggi l'argomento della guida →

Lo stesso pivot in C++ Builder, con gli header generati dai pacchetti.

#include <vcl.h>
#pragma hdrstop
#include "sgcUICore_Theme.hpp"
#include "sgcPivotGrid_Types.hpp"
#include "sgcPivotGrid_Fields.hpp"
#include "sgcPivotGrid_VCL.hpp"
#include "sgcPivotGrid_FieldList_VCL.hpp"

void __fastcall BuildSalesPivot(TForm *Form)
{
	TsgcVCLPivotGrid *vGrid = new TsgcVCLPivotGrid(Form);
	vGrid->Parent = Form;
	vGrid->Align = alClient;
	vGrid->Theme = utDark;
	TsgcVCLPivotFieldList *vList = new TsgcVCLPivotFieldList(Form);
	vList->Parent = Form;
	vList->Align = alRight;
	vList->PivotGrid = vGrid;
	// load 100,000 rows, one recalculation at EndLoad
	static const String Regions[4] = {"North", "South", "East", "West"};
	Variant vValues[3];
	vGrid->Pivot->BeginLoad(true);
	try {
		vGrid->Pivot->DefineColumn("Region", pvtText);
		vGrid->Pivot->DefineColumn("Date", pvtDateTime);
		vGrid->Pivot->DefineColumn("Sales", pvtFloat);
		for (int i = 1; i <= 100000; i++) {
			vValues[0] = Regions[i % 4];
			vValues[1] = TDateTime((double)EncodeDate(2025, 1, 1) + i % 365);
			vValues[2] = 10 + (i % 97) * 1.5;
			vGrid->Pivot->AppendRow(vValues, 2);
		}
	}
	__finally {
		vGrid->Pivot->EndLoad();
	}
	// layout: regions by quarter, the largest region first, shown as % of total
	vGrid->Pivot->BeginUpdate();
	try {
		TsgcPivotField *vField = vGrid->Pivot->AddField("Region", pvaRow);
		vField->SortBy = pvsValue;
		vField->SortOrder = pvoDescending;
		vGrid->Pivot->AddField("Date", pvaColumn, pvdQuarter)->Caption = "Quarter";
		vField = vGrid->Pivot->AddDataField("Sales", pvfSum);
		vField->ShowAs = pvwPercentOfGrandTotal;
	}
	__finally {
		vGrid->Pivot->EndUpdate();
	}
	vGrid->SaveToHTML(ExtractFilePath(ParamStr(0)) + "sales.html");
}

Leggi l'argomento della guida →

La versione C# per WinForms. Usa solo funzionalità dell'edizione Community gratuita.

using System;
using System.Windows.Forms;
using esegece.sgcPivotGrid;
using esegece.sgcUICore;

namespace SalesPivot
{
    internal class MainForm : Form
    {
        private static readonly string[] Regions = { "North", "South", "East", "West" };

        public MainForm()
        {
            Text = "Sales pivot";
            var grid = new TsgcWinFormsPivotGrid { Dock = DockStyle.Fill, Theme = TsgcUITheme.utDark };
            var list = new TsgcWinFormsPivotFieldList { Dock = DockStyle.Right, Width = 260, PivotGrid = grid, Theme = TsgcUITheme.utDark };
            Controls.Add(grid);
            Controls.Add(list);

            // load 100,000 rows, one recalculation at EndLoad
            grid.Pivot.BeginLoad();
            try
            {
                grid.Pivot.DefineColumn("Region", TsgcPivotDataType.pvtText);
                grid.Pivot.DefineColumn("Date", TsgcPivotDataType.pvtDateTime);
                grid.Pivot.DefineColumn("Sales", TsgcPivotDataType.pvtFloat);
                for (int i = 1; i <= 100000; i++)
                    grid.Pivot.AppendRow(Regions[i % 4], new DateTime(2025, 1, 1).AddDays(i % 365), 10 + (i % 97) * 1.5);
            }
            finally { grid.Pivot.EndLoad(); }

            // layout: regions by quarter, the largest region first
            grid.Pivot.BeginUpdate();
            try
            {
                var region = grid.Pivot.AddField("Region", TsgcPivotArea.pvaRow);
                region.SortBy = TsgcPivotSortBy.pvsValue;
                region.SortOrder = TsgcPivotSortOrder.pvoDescending;
                grid.Pivot.AddField("Date", TsgcPivotArea.pvaColumn, TsgcPivotDateGrouping.pvdQuarter).Caption = "Quarter";
                grid.Pivot.AddDataField("Sales", TsgcPivotAggregation.pvfSum).DisplayFormat = "#,##0";
            }
            finally { grid.Pivot.EndUpdate(); }
            grid.SaveToHTML("sales.html");
        }

        [STAThread]
        static void Main() { Application.EnableVisualStyles(); Application.Run(new MainForm()); }
    }
}
dotnet add package esegece.sgcPivotGrid.WinForms

Leggi l'argomento della guida →

Gli esempi Delphi e C++ Builder mostrano i valori come percentuale del totale generale (ShowAs), una funzionalità dell'edizione Registered. L'esempio C# usa solo funzionalità dell'edizione Community gratuita.

Esegui le demo di sgcPivotGrid

Gli eseguibili compilati delle demo sono in sgcUI_bin.zip, senza nulla da installare. Il sorgente di ogni demo è incluso nel pacchetto, per Delphi, C++ Builder e .NET.

SalesPivot

SalesPivot

100.000 righe di vendite con raggruppamento per data, una scala di colori, l'elenco campi e l'esportazione. SalesPivotFMX è il gemello FireMonkey.

DataSetPivot

DataSetPivot

Un TClientDataSet di ordini: modifica una riga e il pivot segue; fai doppio clic su una cella per elencarne gli ordini.

MillionRows

MillionRows

Carica ed esegue il pivot di 1.000.000 di righe generate e stampa il tempo impiegato.

AdvancedPivot

Solo Registered AdvancedPivot

Campi calcolati, mostra valori come, Top N con Altri, e salvataggio e caricamento dei layout.

GridToPivotToChart

GridToPivotToChart

Le righe di una sgcGrid alimentano il pivot e il risultato del pivot alimenta un grafico sgcCharts, senza copiare i dati.

HeadlessReport

Costruisce un pivot senza finestra e lo genera in un file PNG.

Solo Registered AskYourPivot

Scrivi una domanda nella barra di query AI e ottieni un layout, tramite TsgcPivotGridAI con un provider predefinito o il TsgcAIChat di sgcWebSockets, con Annulla.

Demo compilate

Eseguibili pronti all'uso di ogni prodotto sgcUI, senza nulla da installare.

Scarica sgcUI_bin.zip →

Dove è incluso sgcPivotGrid

sgcPivotGrid fa parte di sgcUI Enterprise e si vende anche da solo. sgcPivotGrid è incluso anche nel bundle All-Access.

sgcPivotGrid come pacchetto singolo

€249 / sviluppatore, codice sorgente completo, 1 anno di aggiornamenti.

Acquista sgcPivotGrid → Vedi i prezzi →

sgcUI Enterprise

Tutti i 14 prodotti sgcUI, da €699.

Vedi Enterprise →

.NET

L'edizione .NET ha lo stesso prezzo. Un'edizione Community gratuita è su NuGet come esegece.sgcPivotGrid.Community.

Vedi i prezzi →

L'edizione Community gratuita è esegece.sgcPivotGrid.Community su NuGet. La tabella mostra cosa include.

FunzionalitàCommunity (gratuita)Registered
Pivot grid ed elenco campi (VCL, FireMonkey, WinForms, WPF, Avalonia)✓✓
Otto aggregazioni, tra cui CountDistinct, StdDev e Var✓✓
Raggruppamento per data, subtotali e totali generali✓✓
Filtri, ordinamento e drill down✓✓
Formattazione condizionale e scale di colori✓✓
Esportazione in CSV, JSON e HTML, PNG e SVG headless✓✓
Layout pivot AI con qualsiasi LLM e barra di query AI✓✓
Campi calcolati−✓
Mostra valori come−✓
Top N con Altri−✓
Persistenza del layout−✓
Annulla dei layout AI, ponte sgcPivotGridWS e provider AI sgcWebSockets−✓

Framework e piattaforme supportati

Componenti di sgcPivotGrid

ComponenteCosa fa
TsgcVCLPivotGrid, TsgcFMXPivotGridIl controllo tabella pivot per VCL e FireMonkey (FMX da XE6).
TsgcVCLPivotFieldList, TsgcFMXPivotFieldListL'elenco campi a trascinamento che permette agli utenti di cambiare il layout.
TsgcPivotEngineIl motore di calcolo, raggiungibile come Grid.Pivot e utilizzabile senza finestra.
TsgcPivotSource_DataSet, TsgcPivotSource_TableEsegui il pivot di un TDataSet, o di qualsiasi tabella che implementi l'interfaccia di tabella di sgcUI.
TsgcPivotGridRendererOutput PNG e SVG headless per server e report.
TsgcPivotFormatRuleRegole di formattazione condizionale come le scale di colori.
TsgcPivotGridAIDomande in linguaggio naturale trasformate in layout pivot da qualsiasi provider AI, in ogni edizione e su ogni piattaforma.
TsgcVCLAIQueryBar, TsgcFMXAIQueryBarLa barra di query AI di sgcUICore: scrivi una domanda, leggi cosa è stato applicato, Cancel e Undo.
TsgcUIAIEventProvider, TsgcUIAIChatProvider (sgcUICoreWS)Provider AI: qualsiasi LLM tramite un evento, oppure il TsgcAIChat di sgcWebSockets (solo Registered).
TsgcPivotGridAIQuery (sgcPivotGridWS)TsgcPivotGridAI con la proprietà Chat per un TsgcAIChat di sgcWebSockets. Solo Registered.
TargetComponentePiattaforme
Delphi 7 a 13, VCLTsgcVCLPivotGridWin32 e Win64
Delphi XE6 a 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS e Android
C++ Builder 2007 a 13Pivot grid VCL e FMXHeader .hpp generati e librerie statiche
Delphi 10.2 a 13, indipendente dal frameworkMotore, sorgenti, esportazione, JSON del layout, renderer headlessLinux64, per esempio per costruire report pivot su un server
.NET Framework 4.7.2, .NET 8, 9 e 10TsgcWinFormsPivotGrid, TsgcWpfPivotGrid, TsgcAvaloniaPivotGridWinForms, WPF, Avalonia, PNG e SVG headless

Domande frequenti

Il motore è pensato per grandi quantità di dati: un archivio di colonne tipizzato, un solo passaggio per ricalcolo e disegno virtuale. I budget QA su Win64 sono 100 ms per ricalcolare 1.000.000 di righe e 900 ms per aggiungerle. Conta anche la dimensione del layout: un layout oltre MaxCells, 5.000.000 di celle per impostazione predefinita, genera un errore, quindi raggruppa le date o usa Top N.

Sì. TsgcPivotSource_DataSet copia qualsiasi TDataSet nel motore e, finché LiveUpdates è True, lo ricarica dopo ogni post. Per un gruppo di modifiche disattivalo e chiama Load alla fine. La demo DataSetPivot mostra un TClientDataSet con aggiornamenti live e drill down.

No. sgcPivotGrid è un motore in memoria dentro la tua applicazione. Legge le righe da un dataset, da una tabella o dal tuo codice, le aggrega da solo e non richiede alcun server di database né la progettazione di un cubo.

Quattro funzionalità avanzate: campi calcolati, mostra valori come, Top N con Altri e persistenza del layout, più il ponte sgcPivotGridWS, il provider AI sgcWebSockets e l'Annulla di un layout AI. I layout pivot AI con il tuo provider, ogni aggregazione, il raggruppamento per data, i filtri, l'ordinamento, il drill down, le regole di formato, l'esportazione, gli elenchi campi e l'output PNG e SVG headless sono in Community.

Solo la domanda e il catalogo dei campi: nomi dei campi, didascalie, tipi e fino a 5 valori di esempio per campo, mai le righe. La risposta viene validata sui campi reali, i campi e i valori sconosciuti vengono scartati e non cambia nulla quando non resta alcun layout utilizzabile. Funziona in ogni edizione con qualsiasi provider collegato a TsgcUIAIEventProvider; il TsgcUIAIChatProvider già pronto richiede l'edizione Registered e un sgcWebSockets registrato.

Sì. Le griglie e il motore espongono il risultato visibile come IsgcUITable tramite ResultTable. Imposta la proprietà Table di una sorgente dati tabella di sgcCharts sulla pivot grid e il grafico traccia ciò che l'utente ha disposto. La demo GridToPivotToChart collega in catena sgcGrid, sgcPivotGrid e sgcCharts.

Sì. TsgcPivotGridRenderer disegna un risultato in PNG o SVG senza finestra, e il motore esporta CSV, JSON e HTML. Su Linux64 le unit indipendenti dal framework si compilano da Delphi 10.2: il motore, le sorgenti, l'esportazione, il JSON del layout e il renderer.

Guida di sgcPivotGrid

3,000+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Prova sgcPivotGrid oggi

Il trial di sgcUI include sgcPivotGrid e tutti gli altri prodotti sgcUI.