Delphi, C++ Builder & .NET Onderdeel van sgcUI

sgcPivotGrid, het draaitabelgrid voor Delphi, C++ Builder & .NET

Maak van ruwe rijen antwoorden. Zet velden in rijen, kolommen en waarden, groepeer datums per jaar, kwartaal of maand en laat je gebruikers hun eigen indeling bouwen met een veldenlijst met slepen en neerzetten. Een getypeerde kolomopslag herberekent een miljoen rijen in een fractie van een seconde en een dubbelklik toont de bronrijen achter elke cel.

VCL, FireMonkey, WinForms, WPF, Avalonia1.000.000 rijen: herberekeningsbudget van 100 ms op Win64Gratis .NET Community-editieInbegrepen in sgcUI Enterprise
SalesPivot-demo: de veldenlijst met de gebieden Filters, Kolommen, Rijen en Waarden naast de pivot die hij bouwt

Alles wat een draaitabel nodig heeft

Dertien functies in vijf groepen. Functies met het label Geregistreerd zitten niet in de gratis .NET Community-editie.

Snelheid en gegevens

Eén keer laden, één keer herberekenen, met of zonder venster.

MillionRows-demo na het pivoteren van 1.000.000 rijen, met het tijdlabel dat hij toont

Snelheid en gegevens

Pivoteer een miljoen rijen in een fractie van een seconde

Bestelhistorieën en sensorlogs groeien snel uit een spreadsheet. sgcPivotGrid bewaart elke kolom in een getypeerde kolomopslag, aggregeert de cellen in één doorgang over de bronrijen en tekent alleen het zichtbare deel van het resultaat. Het QA-budget voor het herberekenen van 1.000.000 rijen is 100 ms op Win64 en de MillionRows-demo laadt en pivoteert een miljoen rijen en toont zijn eigen timing.

  • TsgcPivotEngine is de engine, op het grid gepubliceerd als Pivot en ook los te gebruiken
  • BeginLoad, DefineColumn, AppendRow en EndLoad laden de rijen met één herberekening aan het einde
  • BeginUpdate en EndUpdate bundelen indelingswijzigingen in één doorgang
  • Tekstkolommen zijn woordenboekgecodeerd en totalen komen uit de bronwaarden, nooit uit gemiddelden van gemiddelden
Het helponderwerp lezen
DataSetPivot-demo: een bestellingentabel boven een pivot die de wijzigingen volgt

Snelheid en gegevens

Voed hem vanuit een TDataSet, een grid of je eigen code

Wijs de pivot naar de gegevens die je al hebt. Een datasetbron kopieert elke TDataSet naar de engine en laadt hem, met live updates aan, na elke post opnieuw, zodat de pivot de wijzigingen volgt die je gebruikers in een formulier maken. Een tabelbron leest elke IsgcUITable, zoals een sgcGrid, en laadt alleen opnieuw wanneer de tabel verandert. Code die de rijen al in het geheugen heeft, voegt ze gewoon toe. De pivot schrijft nooit terug naar je gegevens.

  • TsgcPivotSource_DataSet met DataSet, Active, Columns en LiveUpdates
  • Elke TDataSet-afstammeling werkt, omdat de bron hem via een TDataLink leest
  • TsgcPivotSource_Table leest een sgcGrid of elke andere IsgcUITable en laadt opnieuw wanneer TableVersion verandert
  • In .NET leest dezelfde engine een DataTable
Het helponderwerp lezen

Analyse

De vragen die een verkoopmanager stelt, beantwoord met eigenschappen.

Pivot met 2025 uitgevouwen tot kwartalen en maanden en 2024 samengevouwen

Analyse

Datums gegroepeerd zoals mensen denken

Niemand leest een verkooprapport dag voor dag. Voeg hetzelfde datumveld meerdere keren met een andere groepering aan de kolommen toe en sgcPivotGrid bouwt er de niveaus Jaar, Kwartaal en Maand uit, elk met een eigen subtotaal. Gebruikers openen en sluiten de niveaus met de plus- en minknoppen en je code kan een heel niveau tegelijk uitvouwen. Uitvouwen of samenvouwen bouwt een nieuwe momentopname zonder de gegevens opnieuw te aggregeren. Week- en daggroeperingen zijn er voor operationele rapporten die ze nodig hebben.

  • TsgcPivotDateGrouping: pvdYear, pvdQuarter, pvdMonth, pvdWeek en pvdDay
  • AddField('Date', pvaColumn, pvdQuarter) voegt per aanroep één niveau toe
  • ExpandAll, CollapseAll en ExpandLevel voor elke as
  • Subtotalen en eindtotalen met een eigen positie en bijschrift
Het helponderwerp lezen
Drie meetwaarden naast elkaar: som van het bedrag, unieke klanten en gemiddelde marge

Analyse

Acht aggregaties, inclusief aantal unieke waarden

Omzet is een som en een aantal bestellingen is een telling, maar hoeveel verschillende klanten er in maart hebben gekocht is een telling van unieke waarden, en dat is het cijfer waar financiële teams om vragen. Elk gegevensveld kiest zijn eigen aggregatie, zodat één indeling de som van de omzet, het aantal unieke klanten en de gemiddelde marge naast elkaar kan tonen. In de veldenlijst schakelt de knop van een Waarden-chip de aggregatie met één klik om. Totalen worden altijd uit de bronwaarden berekend.

  • TsgcPivotAggregation: pvfSum, pvfCount, pvfAverage, pvfMin en pvfMax
  • pvfCountDistinct, pvfStdDev en pvfVar voor statistiek
  • AddDataField('Sales', pvfSum) voegt een meetwaarde toe en meerdere meetwaarden staan onder elk kolomlid
  • Alle acht zitten in de gratis Community-editie
Het helponderwerp lezen
Top 5 producten op omzet plus een rij Overig, met de ledenchecklist open

Analyse Alleen geregistreerd

Filter op wat ertoe doet, houd de top N vast

Grote indelingen zijn alleen nuttig als gebruikers ze kunnen verkleinen. Leden-, label- en waardefilters knippen het resultaat terug, met 13 operatoren van gelijk aan tot tussen en bevat. Top N houdt binnen elke ouder de leden met de grootste totalen vast en kan de rest samenvouwen in één rij Overig, zodat de totalen nog steeds kloppen. Een doorboring op Overig geeft de bronrijen van elk lid dat erin zit.

  • TsgcPivotFilterOperator: pvcEqual, pvcGreater, pvcBetween, pvcContains, pvcBeginsWith en meer
  • FilterValues en FilterExclude voor ledenchecklists, ook vanuit de veldenlijst
  • TopN, TopNOthers en OthersCaption voor de Top N-weergave
  • SortBy pvsValue met pvoDescending toont de grootste eerst

Leden-, label- en waardefilters en sorteren zitten in de Community-editie. Top N met Overig is geregistreerd.

Het helponderwerp lezen
AdvancedPivot-demo met een berekend margeveld en percentage van het kolomtotaal

Analyse Alleen geregistreerd

Berekende velden en percentage van het totaal

Marges, winst en aandelen zijn de cijfers waar managers over praten en ze bestaan zelden als kolommen in de database. Een berekend veld rekent voor elke bronrij een waarde uit een expressie uit, met IF, ROUND, MIN, MAX, ISNULL en datumfuncties, en wordt daarna geaggregeerd als elke andere kolom. Waarden weergeven als maakt van een meetwaarde een percentage van rij-, kolom- of eindtotaal, een lopend totaal, een verschil met een basisitem of een rang.

  • CalculatedFields.Add geeft een TsgcPivotCalculatedField terug met Name en Expression
  • Evaluatie op rijniveau: de som van een berekende winst is de som van de winsten
  • ShowAs: pvwPercentOfRow, pvwPercentOfColumn, pvwPercentOfGrandTotal, pvwRunningTotal, pvwDifferenceFrom, pvwRank
  • ShowAsBaseItem kiest het lid waarvan een verschil wordt gemeten

Niet in de Community-editie: deze leden worden gecompileerd onder SGC_PIVOTGRID_ADVANCED.

Het helponderwerp lezen

Interactie

Laat je gebruikers het antwoord zelf vinden.

Interactie

Gebruikers bouwen hun eigen rapport met slepen en neerzetten

Een nieuwe vraag zou geen nieuwe release moeten vergen. Zet een veldenlijst naast het grid, stel één eigenschap in en gebruikers slepen bronkolommen naar Filters, Kolommen, Rijen en Waarden. Een tekstkolom die op Waarden wordt neergezet, telt, een numerieke somt en de chipknop schakelt de aggregatie om. Elke chip opent een ledenchecklist met een zoekvak en de uitgestelde modus houdt de wijzigingen in behandeling totdat de gebruiker ze toepast, wat helpt bij zeer grote gegevens. Dezelfde veldenlijst werkt in FireMonkey.

  • TsgcVCLPivotFieldList en TsgcFMXPivotFieldList, gekoppeld via PivotGrid
  • Vier gebieden: pvaFilter, pvaColumn, pvaRow en pvaData
  • DeferUpdate en ApplyChanges herberekenen één keer, wanneer de gebruiker klaar is
  • WinForms-, WPF- en Avalonia-veldenlijsten in .NET
  • Rechts naar links voor Arabisch en Hebreeuws: het rijkoptekstgebied, de kolomvolgorde, de chevrons en de veldenlijst zijn gespiegeld, en de XLSX-export schrijft een blad van rechts naar links
Het helponderwerp lezen
Pivot van land per maand met een groene kleurschaal op de omzetwaarden

Interactie

Kleurschalen tonen hotspots direct

Een raster van cijfers verbergt het verhaal totdat iemand het inkleurt. Opmaakregels kleuren de gegevenscellen op hun waarden: een kleurschaal arceert elke cel tussen twee kleuren op basis van zijn plaats tussen de kleinste en de grootste waarde van de meetwaarde, en waarderegels kleuren of vetten de cellen die aan een voorwaarde voldoen. Dezelfde regels gelden op het scherm en in de PNG- en SVG-afbeeldingen, omdat beide door dezelfde renderer worden getekend. Er is geen eigen tekencode nodig.

  • TsgcPivotFormatRule in de FormatRules-collectie, te bewerken in de Object Inspector
  • pvrColorScale met MinColor en MaxColor
  • pvrValue-regels met een operator, BackColor, ForeColor en Bold
  • Measure kiest het gegevensveld en Theme schakelt tussen licht en donker
Het helponderwerp lezen
DataSetPivot-demo met de bestellingen achter één pivotcel naast het grid weergegeven

Interactie

Boor door naar de rijen achter elk getal

Wanneer een totaal er verkeerd uitziet, is de eerste vraag welke bestellingen het vormen. Een dubbelklik op een cel, of Enter op het toetsenbord, boort door en de engine geeft de bronrijen terug die in die waarde zijn geaggregeerd, als rijnummers of als een tabel met elke kolom van de opslag, ook de kolommen die niet in de indeling zitten. De DataSetPivot-demo toont de bestellingen achter een cel in een zijpaneel.

  • OnDrillDown van het grid, en DrillDownCell om het vanuit code te activeren
  • DrillDown geeft de bronrijen terug als een IsgcUITable
  • GetSourceRows geeft de rijnummers en SourceValue leest een waarde
  • Een doorboring op de rij Overig van Top N geeft de rijen van elk lid dat erin zit
Het helponderwerp lezen

Interactie

Vraag in gewone taal om een indeling

Gebruikers typen een vraag als top 3 landen op omzet per kwartaal, in de AI-querybalk of vanuit je code, en TsgcPivotGridAI vraagt een AI-provider om de indeling. Elke LLM werkt: TsgcUIAIEventProvider geeft elk verzoek door aan je eigen code en TsgcUIAIChatProvider gebruikt de component TsgcAIChat van sgcWebSockets. Alleen de vraag en de veldencatalogus verlaten de toepassing: namen, bijschriften, typen en maximaal 5 voorbeeldwaarden per veld, nooit de rijen. Het antwoord wordt gecontroleerd tegen de echte velden voordat het in één herberekening wordt toegepast en Undo herstelt de vorige indeling.

  • TsgcPivotGridAI met Provider en PivotGrid, op VCL, FireMonkey, WinForms, WPF en Avalonia
  • Ask wacht op het antwoord, AskAsync draait op een workerthread en Cancel stopt het
  • OnBeforeAsk kan het verzoek wijzigen of annuleren, OnLayout kan het antwoord weigeren
  • MaxSampleValues begrenst de voorbeelden; onbekende velden worden verwijderd en het antwoord is beperkt tot 64 KB
  • TsgcPivotGridAIQuery van de sgcPivotGridWS-bridge werkt nog steeds met Chat, en een toegewezen Provider gaat voor op Chat

Elke editie en elk platform, Community inbegrepen; Undo van een AI-indeling zit niet in de Community-editie. De sgcWebSockets-provider vereist een Geregistreerde editie met een geregistreerde sgcWebSockets: sgcUICoreWS in Delphi en C++ Builder, het pakket esegece.sgcUICore.sgcWebSockets in .NET.

Het helponderwerp lezen

Uitvoer

Een bestand, een browser, een grafiek of een serverjob.

GridToPivotToChart-demo: gridrijen, de pivot en een sgcCharts-grafiek in drie panelen

Uitvoer

Exporteer wat je ziet, of zet het in een grafiek

Een pivot is vaak het begin van een rapport, niet het einde. Elke export schrijft de weergave zoals de gebruiker hem heeft ingericht, met zijn uitgevouwen niveaus en filters: CSV voor spreadsheets, JSON voor andere systemen, HTML voor een browser of een e-mail, PNG en SVG voor documenten. Het resultaat is ook een tabel die sgcCharts rechtstreeks leest, zodat de GridToPivotToChart-demo van gridrijen naar een pivot naar een grafiek gaat zonder gegevens te kopiëren. Streams werken net zo goed als bestanden.

  • SaveToCSV, SaveToJSON en SaveToHTML naar een bestand of een stream
  • SaveToPNG en SaveToSVG met een optionele grootte
  • TsgcPivotGridRenderer tekent zonder venster, op een server of op Linux64
  • ResultTable toont het zichtbare resultaat als een IsgcUITable voor sgcCharts
Het helponderwerp lezen
Indelingenlijst met de opgeslagen weergaven Omzet per regio en Marge per product

Uitvoer Alleen geregistreerd

Bewaar een indeling, herstel hem met één aanroep

Power users bouwen steeds dezelfde weergaven opnieuw: omzet per regio op maandag, marge per product aan het einde van de maand. Het bewaren van indelingen schrijft de hele indeling als JSON, met velden, gebieden, groeperingen, aggregaties, sortering, filters en totalen, en laadt hem met één herberekening terug. Bewaar hem in een bestand, een databaseveld of een gebruikersprofiel, bied een lijst met benoemde weergaven aan, of kopieer de indeling van het ene grid naar het andere.

  • SaveLayoutToFile en LoadLayoutFromFile op de grids en de engine
  • SaveLayoutToString en LoadLayoutFromString voor een database of een instellingenopslag
  • De gridversies bewaren ook de kolombreedtes die de gebruiker heeft gewijzigd
  • Kopieer een indeling tussen grids met LoadLayoutFromString(SaveLayoutToString)

Niet in de Community-editie.

Het helponderwerp lezen

Toegankelijkheid

UI Automation voor schermlezers, het toetsenbord en hoog contrast, zonder configuratie.

Toegankelijkheid

Een draaitabel die met zijn koppen wordt aangeboden

sgcPivotGrid biedt zijn inhoud aan Microsoft UI Automation aan als een tabel met rij- en kolomkoppen die in- en uitklappen, gegevenscellen en totalen. De veldenlijst wordt aangeboden als één lijst met velden per gebied, zodat ook een gebruiker van een schermlezer de draaitabel kan opbouwen.

  • Pijltoetsen, Home, End, Page Up en Page Down verplaatsen de cel met focus, en Links en Rechts (of de plus- en mintoetsen) klappen koppen in en uit
  • In de veldenlijst verplaatsen Omhoog en Omlaag de veldfocus, Ctrl+1 tot en met Ctrl+4 verplaatsen het veld naar rijen, kolommen, waarden of filters, Ctrl+Omhoog en Ctrl+Omlaag wijzigen de volgorde, Spatie schakelt het veld om en Del verwijdert het
  • De toetsen van de veldenlijst vervangen het slepen van velden met de muis
  • Een zichtbare focusring, en onder een Windows-thema met hoog contrast tekent het draaitabelgrid met de systeemkleuren

Toegankelijkheid staat standaard aan in elke editie, ook in de gratis Community-editie, op VCL in elke Delphi- en C++Builder-versie van Delphi 7 tot en met Delphi 13, op FireMonkey op Windows, en op WinForms, WPF en Avalonia. In Delphi en C++Builder stellen AccessibleName en AccessibleDescription de naam en de beschrijving in die aan UI Automation worden aangeboden, en in .NET doen de standaard toegankelijke naam en helptekst van elk framework hetzelfde. Zie de toegankelijkheidsrapporten.

Het helponderwerp lezen

Zie sgcPivotGrid in actie

sgcPivotGrid in de sgcUI suite-demo's: complete applicaties die offline draaien met ingebouwde gesimuleerde gegevens.

Gemeten tegen budgetten

De QA-prestatiegroep draait deze scenario's op releasebuilds, als de mediaan van vijf runs op vaste gegevens. De cijfers zijn budgetten waarbinnen elk scenario moet blijven, gepubliceerd in de help.

MetingResultaatOmstandigheden
1.000.000 rijen herberekenen (2 rijvelden, 1 kolomveld, 1 som)100 msWin64-releasebuild, QA-budget
1.000.000 rijen herberekenen (2 rijvelden, 1 kolomveld, 1 som)160 msWin32-releasebuild, QA-budget
AppendRow van 1.000.000 rijen (3 tekst-, 1 float- en 1 datumwaarde)900 msWin64-releasebuild, QA-budget
AppendRow van 1.000.000 rijen (3 tekst-, 1 float- en 1 datumwaarde)1.400 msWin32-releasebuild, QA-budget

Bron: het helponderwerp dat deze cijfers documenteert.

Wie bouwt er met sgcPivotGrid

ERP- en bedrijfsapplicatieontwikkelaars

Verkoop- en financiële analyse binnen een ERP

Geef boekhouding en verkoop een pivot over de bestellingentabel zonder te exporteren naar een spreadsheet. Een datasetbron koppelt de pivot aan dezelfde TDataSet die je formulieren gebruiken en volgt elke geposte wijziging. Datums groeperen per jaar, kwartaal en maand, een kleurschaal markeert de zwakke regio's en een dubbelklik toont de facturen achter een verdacht totaal, zodat vragen binnen je eigen toepassing worden beantwoord.

  • Datasetbron met live updates
  • Datumgroepering
  • Kleurschalen
  • Doorboren
Start de DataSetPivot-demo

Analisten en controllers

Selfserviceanalyse voor power users

Power users willen verkennen, geen wijzigingsverzoeken indienen. Met de veldenlijst slepen ze velden tussen rijen, kolommen, filters en waarden, ledenchecklists verkleinen de gegevens en opgeslagen indelingen brengen hun favoriete weergaven terug. Met de AI-bridge kunnen ze ook een vraag typen en laten ze de indeling voor zich bouwen, met Undo één klik weg wanneer het antwoord niet is wat ze bedoelden.

  • Veldenlijst
  • Top N met Overig
  • Indeling bewaren
  • AI-indelingen
Start de AdvancedPivot-demo

Backoffice- en rapportageservices

Geplande rapporten op een server

Nachtelijke samenvattingen hebben geen scherm nodig. De engine en de headless renderer draaien in een service of een consoletoepassing, op Windows of op Linux64 vanaf Delphi 10.2. Laad de rijen van de dag, pas een opgeslagen indeling toe en schrijf de pivot als PNG, SVG, HTML of CSV, klaar om aan een e-mail toe te voegen of op een intranetpagina te publiceren.

  • TsgcPivotEngine zonder venster
  • TsgcPivotGridRenderer
  • HTML- en CSV-export
  • Linux64
Start de HeadlessReport-demo

Een draaitabel in een paar regels

Dezelfde API in Delphi, C++ Builder en C#: laad één keer 100.000 rijen en leg daarna regio's per kwartaal uit met de grootste regio eerst.

Een VCL-formulier met een pivotgrid en een veldenlijst: 100.000 rijen geladen met één herberekening, regio's per kwartaal, grootste regio eerst.

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.

Het helponderwerp lezen →

Dezelfde pivot in C++ Builder, met de headers die de pakketten genereren.

#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");
}

Het helponderwerp lezen →

De C#-versie voor WinForms. Ze gebruikt alleen functies van de gratis Community-editie.

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

Het helponderwerp lezen →

De Delphi- en C++ Builder-voorbeelden tonen waarden als percentage van het eindtotaal (ShowAs), een functie van de geregistreerde editie. Het C#-voorbeeld gebruikt alleen functies van de gratis Community-editie.

Probeer de sgcPivotGrid-demo's uit

Gecompileerde demo-uitvoerbestanden staan in sgcUI_bin.zip, niets te installeren. De broncode van elke demo wordt met het pakket meegeleverd, voor Delphi, C++ Builder en .NET.

SalesPivot

SalesPivot

100.000 verkooprijen met datumgroepering, een kleurschaal, de veldenlijst en export. SalesPivotFMX is de FireMonkey-tegenhanger.

DataSetPivot

DataSetPivot

Een TClientDataSet met bestellingen: wijzig een rij en de pivot volgt; dubbelklik op een cel om de bestellingen ervan te tonen.

MillionRows

MillionRows

Laadt en pivoteert 1.000.000 gegenereerde rijen en toont de tijd die het kostte.

AdvancedPivot

Alleen geregistreerd AdvancedPivot

Berekende velden, waarden weergeven als, Top N met Overig, en het opslaan en laden van indelingen.

GridToPivotToChart

GridToPivotToChart

Rijen in een sgcGrid voeden de pivot en het pivotresultaat voedt een sgcCharts-grafiek, zonder gegevens te kopiëren.

HeadlessReport

Bouwt een pivot zonder venster en rendert hem naar een PNG-bestand.

Alleen geregistreerd AskYourPivot

Typ een vraag in de AI-querybalk en krijg een indeling, via TsgcPivotGridAI met een vooraf ingestelde provider of de TsgcAIChat van sgcWebSockets, met Undo.

Gecompileerde demo's

Direct uitvoerbare programma's van elk sgcUI-product, zonder installatie.

sgcUI_bin.zip downloaden →

Waar sgcPivotGrid in zit

sgcPivotGrid maakt deel uit van sgcUI Enterprise en wordt ook los verkocht. sgcPivotGrid is ook opgenomen in de All-Access-bundel.

sgcPivotGrid los pakket

€249 / ontwikkelaar, volledige broncode, 1 jaar updates.

sgcPivotGrid kopen → Prijzen bekijken →

sgcUI Enterprise

Alle 14 sgcUI-producten, vanaf €699.

Enterprise bekijken →

.NET

De .NET-editie heeft dezelfde prijs. Een gratis Community-editie staat op NuGet als esegece.sgcPivotGrid.Community.

Prijzen bekijken →

De gratis Community-editie is esegece.sgcPivotGrid.Community op NuGet. De tabel toont wat erin zit.

FunctieCommunity (gratis)Geregistreerd
Pivotgrid en veldenlijst (VCL, FireMonkey, WinForms, WPF, Avalonia)✓✓
Acht aggregaties, inclusief CountDistinct, StdDev en Var✓✓
Datumgroepering, subtotalen en eindtotalen✓✓
Filters, sorteren en doorboren✓✓
Voorwaardelijke opmaak en kleurschalen✓✓
Export naar CSV, JSON en HTML, headless PNG en SVG✓✓
AI-pivotindelingen met een willekeurige LLM en de AI-querybalk✓✓
Berekende velden−✓
Waarden weergeven als−✓
Top N met Overig−✓
Indeling bewaren−✓
Undo van AI-indelingen, de sgcPivotGridWS-bridge en de AI-provider van sgcWebSockets−✓

Ondersteunde frameworks en platformen

Componenten in sgcPivotGrid

ComponentWat het doet
TsgcVCLPivotGrid, TsgcFMXPivotGridHet draaitabelbesturingselement voor VCL en FireMonkey (FMX vanaf XE6).
TsgcVCLPivotFieldList, TsgcFMXPivotFieldListDe veldenlijst met slepen en neerzetten waarmee gebruikers de indeling wijzigen.
TsgcPivotEngineDe rekenengine, bereikbaar als Grid.Pivot en te gebruiken zonder venster.
TsgcPivotSource_DataSet, TsgcPivotSource_TablePivoteer een TDataSet, of elke tabel die de sgcUI-tabelinterface implementeert.
TsgcPivotGridRendererHeadless PNG- en SVG-uitvoer voor servers en rapporten.
TsgcPivotFormatRuleRegels voor voorwaardelijke opmaak zoals kleurschalen.
TsgcPivotGridAIVragen in gewone taal omgezet in pivotindelingen door een willekeurige AI-provider, in elke editie en op elk platform.
TsgcVCLAIQueryBar, TsgcFMXAIQueryBarDe AI-querybalk van sgcUICore: typ een vraag, lees wat is toegepast, Annuleren en Ongedaan maken.
TsgcUIAIEventProvider, TsgcUIAIChatProvider (sgcUICoreWS)AI-providers: een willekeurige LLM via één gebeurtenis, of de TsgcAIChat van sgcWebSockets (alleen geregistreerd).
TsgcPivotGridAIQuery (sgcPivotGridWS)TsgcPivotGridAI met de eigenschap Chat voor een TsgcAIChat van sgcWebSockets. Alleen geregistreerd.
DoelComponentPlatformen
Delphi 7 tot 13, VCLTsgcVCLPivotGridWin32 en Win64
Delphi XE6 tot 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS en Android
C++ Builder 2007 tot 13VCL- en FMX-pivotgridsGegenereerde .hpp-headers en statische bibliotheken
Delphi 10.2 tot 13, frameworkneutraalEngine, bronnen, export, indelings-JSON, headless rendererLinux64, bijvoorbeeld om pivotrapporten op een server te bouwen
.NET Framework 4.7.2, .NET 8, 9 en 10TsgcWinFormsPivotGrid, TsgcWpfPivotGrid, TsgcAvaloniaPivotGridWinForms, WPF, Avalonia, headless PNG en SVG

Veelgestelde vragen

De engine is gebouwd voor grote gegevens: een getypeerde kolomopslag, één doorgang per herberekening en virtueel tekenen. De QA-budgetten op Win64 zijn 100 ms om 1.000.000 rijen te herberekenen en 900 ms om ze toe te voegen. Ook de grootte van de indeling telt: een indeling boven MaxCells, standaard 5.000.000 cellen, geeft een fout, dus groepeer de datums of gebruik Top N.

Ja. TsgcPivotSource_DataSet kopieert elke TDataSet naar de engine en laadt hem, zolang LiveUpdates True is, na elke post opnieuw. Zet het voor een batch wijzigingen uit en roep aan het einde Load aan. De DataSetPivot-demo toont een TClientDataSet met live updates en doorboren.

Nee. sgcPivotGrid is een engine in het geheugen binnen je toepassing. Hij leest rijen uit een dataset, een tabel of je eigen code, aggregeert ze zelf en heeft geen databaseserver en geen kubusontwerp nodig.

Vier geavanceerde functies: berekende velden, waarden weergeven als, Top N met Overig en het bewaren van indelingen, plus de sgcPivotGridWS-bridge, de AI-provider van sgcWebSockets en Undo van een AI-indeling. AI-pivotindelingen met je eigen provider, elke aggregatie, datumgroepering, filters, sorteren, doorboren, opmaakregels, export, de veldenlijsten en de headless PNG- en SVG-uitvoer zitten in Community.

Alleen de vraag en de veldencatalogus: veldnamen, bijschriften, typen en maximaal 5 voorbeeldwaarden per veld, nooit de rijen. Het antwoord wordt gevalideerd tegen de echte velden, onbekende velden en waarden worden verwijderd en er verandert niets wanneer er geen bruikbare indeling overblijft. Het werkt in elke editie met elke provider die je in TsgcUIAIEventProvider inpluggt; de kant-en-klare TsgcUIAIChatProvider vereist een Geregistreerde editie en een geregistreerde sgcWebSockets.

Ja. De grids en de engine tonen het zichtbare resultaat als een IsgcUITable via ResultTable. Stel de eigenschap Table van een sgcCharts-tabelgegevensbron in op het pivotgrid en de grafiek plot wat de gebruiker heeft ingericht. De GridToPivotToChart-demo koppelt sgcGrid, sgcPivotGrid en sgcCharts aan elkaar.

Ja. TsgcPivotGridRenderer tekent een resultaat naar PNG of SVG zonder venster en de engine exporteert CSV, JSON en HTML. Op Linux64 compileren de frameworkneutrale units vanaf Delphi 10.2: de engine, de bronnen, de export, de indelings-JSON en de renderer.

sgcPivotGrid help

3,000+Ontwikkelaars
20+Jaar
761+Componenten
30+API-integraties
5Platformen
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Probeer sgcPivotGrid vandaag

De sgcUI-proefversie bevat sgcPivotGrid en elk ander sgcUI-product.