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

sgcPivotGrid, la cuadrícula de tabla dinámica para Delphi, C++ Builder & .NET

Convierte filas en bruto en respuestas. Suelta campos en filas, columnas y valores, agrupa las fechas por año, trimestre o mes, y deja que tus usuarios construyan su propio diseño con una lista de campos de arrastrar y soltar. Un almacén de columnas tipado recalcula un millón de filas en una fracción de segundo, y un doble clic muestra las filas de origen de cualquier celda.

VCL, FireMonkey, WinForms, WPF, Avalonia1,000,000 de filas: presupuesto de recálculo de 100 ms en Win64Edición .NET Community gratuitaIncluido en sgcUI Enterprise
Demo SalesPivot: la lista de campos con las áreas Filtros, Columnas, Filas y Valores junto a la tabla dinámica que construye

Todo lo que necesita una tabla dinámica

Trece funciones en cinco grupos. Las funciones marcadas como registradas no están en la edición .NET Community gratuita.

Velocidad y datos

Carga una vez, recalcula una vez, con o sin ventana.

Demo MillionRows tras pivotar 1,000,000 de filas, con la etiqueta de tiempo que imprime

Velocidad y datos

Pivota un millón de filas en una fracción de segundo

Los historiales de pedidos y los registros de sensores superan enseguida una hoja de cálculo. sgcPivotGrid guarda cada columna en un almacén de columnas tipado, agrega las celdas en una sola pasada sobre las filas de origen y dibuja solo la parte visible del resultado. El presupuesto de QA para recalcular 1,000,000 de filas es de 100 ms en Win64, y la demo MillionRows carga y pivota un millón de filas e imprime su propio tiempo.

  • TsgcPivotEngine es el motor, publicado como Pivot en la cuadrícula y utilizable por sí solo
  • BeginLoad, DefineColumn, AppendRow y EndLoad cargan las filas con un único recálculo al final
  • BeginUpdate y EndUpdate agrupan los cambios de diseño en una sola pasada
  • Las columnas de texto se codifican con diccionario, y los totales salen de los valores de origen, nunca de promedios de promedios
Leer el tema de la ayuda
Demo DataSetPivot: una tabla de pedidos sobre una tabla dinámica que sigue las ediciones

Velocidad y datos

Aliméntala desde un TDataSet, una cuadrícula o tu propio código

Apunta la tabla dinámica a los datos que ya tienes. Una fuente de conjunto de datos copia cualquier TDataSet en el motor y, con las actualizaciones en vivo activadas, lo recarga tras cada grabación, de modo que la tabla dinámica sigue las ediciones que tus usuarios hacen en un formulario. Una fuente de tabla lee cualquier IsgcUITable, como un sgcGrid, y recarga solo cuando la tabla cambia. El código que ya tiene las filas en memoria simplemente las añade. La tabla dinámica nunca escribe de vuelta en tus datos.

  • TsgcPivotSource_DataSet con DataSet, Active, Columns y LiveUpdates
  • Funciona cualquier descendiente de TDataSet, porque la fuente lo lee a través de un TDataLink
  • TsgcPivotSource_Table lee un sgcGrid o cualquier otra IsgcUITable y recarga cuando cambia TableVersion
  • En .NET el mismo motor lee un DataTable
Leer el tema de la ayuda

Análisis

Las preguntas que hace un director de ventas, respondidas con propiedades.

Tabla dinámica con 2025 expandido a trimestres y meses y 2024 contraído

Análisis

Fechas agrupadas como piensa la gente

Nadie lee un informe de ventas día a día. Añade el mismo campo de fecha a las columnas varias veces con una agrupación distinta y sgcPivotGrid construye a partir de él los niveles Año, Trimestre y Mes, cada uno con su propio subtotal. Los usuarios abren y cierran los niveles con los botones más y menos, y tu código puede expandir un nivel entero de golpe. Expandir o contraer genera una nueva instantánea sin volver a agregar los datos. Las agrupaciones por Semana y Día están ahí para los informes operativos que las necesitan.

  • TsgcPivotDateGrouping: pvdYear, pvdQuarter, pvdMonth, pvdWeek y pvdDay
  • AddField('Date', pvaColumn, pvdQuarter) añade un nivel por llamada
  • ExpandAll, CollapseAll y ExpandLevel para cada eje
  • Subtotales y totales generales con su propia posición y título
Leer el tema de la ayuda
Tres medidas en paralelo: suma del importe, clientes distintos y margen medio

Análisis

Ocho agregaciones, incluido el recuento distinto

Los ingresos son una suma y el número de pedidos es un recuento, pero cuántos clientes distintos compraron en marzo es un recuento distinto, y esa es la cifra que piden los equipos de finanzas. Cada campo de datos elige su propia agregación, así que un mismo diseño puede mostrar juntas la suma de ventas, el número de clientes distintos y el margen medio. En la lista de campos, el botón de un chip de Valores cambia la agregación con un clic. Los totales se calculan siempre a partir de los valores de origen.

  • TsgcPivotAggregation: pvfSum, pvfCount, pvfAverage, pvfMin y pvfMax
  • pvfCountDistinct, pvfStdDev y pvfVar para estadística
  • AddDataField('Sales', pvfSum) añade una medida, y varias medidas se colocan bajo cada miembro de columna
  • Las ocho están en la edición Community gratuita
Leer el tema de la ayuda
Los 5 productos con más ventas más una fila Otros, con la lista de verificación de miembros abierta

Análisis Solo registrada

Filtra lo que importa, quédate con el Top N

Los diseños grandes solo son útiles cuando los usuarios pueden acotarlos. Los filtros de miembro, de etiqueta y de valor reducen el resultado, con 13 operadores, de igual a entre y contiene. Top N conserva los miembros con los totales más altos dentro de cada padre y puede plegar el resto en una única fila Otros, de modo que los totales siguen cuadrando. Un desglose sobre Otros devuelve las filas de origen de todos los miembros que contiene.

  • TsgcPivotFilterOperator: pvcEqual, pvcGreater, pvcBetween, pvcContains, pvcBeginsWith y más
  • FilterValues y FilterExclude para listas de verificación de miembros, también desde la lista de campos
  • TopN, TopNOthers y OthersCaption para la vista Top N
  • SortBy pvsValue con pvoDescending lista primero los mayores

Los filtros de miembro, de etiqueta y de valor y la ordenación están en la edición Community. Top N con Otros es de la edición registrada.

Leer el tema de la ayuda
Demo AdvancedPivot con un campo de margen calculado y porcentaje del total de la columna

Análisis Solo registrada

Campos calculados y porcentaje del total

Los márgenes, el beneficio y las proporciones son las cifras que discuten los directivos, y rara vez existen como columnas en la base de datos. Un campo calculado calcula un valor para cada fila de origen a partir de una expresión, con IF, ROUND, MIN, MAX, ISNULL y funciones de fecha, y después se agrega como cualquier otra columna. Mostrar valores como convierte una medida en porcentaje de la fila, de la columna o del total general, un total acumulado, una diferencia respecto a un elemento base o una clasificación.

  • CalculatedFields.Add devuelve un TsgcPivotCalculatedField con Name y Expression
  • Evaluación a nivel de fila: la suma de un beneficio calculado es la suma de los beneficios
  • ShowAs: pvwPercentOfRow, pvwPercentOfColumn, pvwPercentOfGrandTotal, pvwRunningTotal, pvwDifferenceFrom, pvwRank
  • ShowAsBaseItem elige el miembro respecto al cual se mide una diferencia

No está en la edición Community: estos miembros se compilan bajo SGC_PIVOTGRID_ADVANCED.

Leer el tema de la ayuda

Interacción

Deja que tus usuarios encuentren la respuesta por sí mismos.

Interacción

Los usuarios crean su propio informe arrastrando y soltando

Una pregunta nueva no debería requerir una versión nueva. Coloca una lista de campos junto a la cuadrícula, activa una propiedad y los usuarios arrastran columnas de origen a Filtros, Columnas, Filas y Valores. Una columna de texto soltada en Valores cuenta, una numérica suma, y el botón del chip cambia la agregación. Cada chip abre una lista de verificación de miembros con un cuadro de búsqueda, y el modo diferido mantiene los cambios pendientes hasta que el usuario los aplica, lo que ayuda con datos muy grandes. La misma lista de campos funciona en FireMonkey.

  • TsgcVCLPivotFieldList y TsgcFMXPivotFieldList, enlazadas mediante PivotGrid
  • Cuatro áreas: pvaFilter, pvaColumn, pvaRow y pvaData
  • DeferUpdate y ApplyChanges recalculan una sola vez, cuando el usuario termina
  • Listas de campos para WinForms, WPF y Avalonia en .NET
  • De derecha a izquierda para árabe y hebreo: el área de cabeceras de fila, el orden de las columnas, los chevrones y la lista de campos están reflejados, y la exportación XLSX escribe una hoja de derecha a izquierda
Leer el tema de la ayuda
Tabla dinámica de país por mes con una escala de color verde sobre los valores de ventas

Interacción

Las escalas de color muestran los puntos calientes al instante

Una cuadrícula de números esconde la historia hasta que alguien la colorea. Las reglas de formato tiñen las celdas de datos según sus valores: una escala de color sombrea cada celda entre dos colores según su lugar entre el menor y el mayor valor de la medida, y las reglas de valor colorean o ponen en negrita las celdas que cumplen una condición. Las mismas reglas se aplican en pantalla y en las imágenes PNG y SVG, porque ambas las dibuja el mismo renderizador. No hace falta código de dibujo propio.

  • TsgcPivotFormatRule en la colección FormatRules, editable en el Inspector de objetos
  • pvrColorScale con MinColor y MaxColor
  • Reglas pvrValue con un operador, BackColor, ForeColor y Bold
  • Measure elige el campo de datos, y Theme cambia entre claro y oscuro
Leer el tema de la ayuda
Demo DataSetPivot con los pedidos que hay detrás de una celda de la tabla dinámica listados junto a la cuadrícula

Interacción

Desglosa hasta las filas que hay detrás de cualquier cifra

Cuando un total parece erróneo, la primera pregunta es qué pedidos lo componen. Un doble clic en una celda, o Intro en el teclado, desglosa, y el motor devuelve las filas de origen que se agregaron en ese valor, como números de fila o como una tabla con todas las columnas del almacén, incluidas las que no están en el diseño. La demo DataSetPivot lista los pedidos que hay detrás de una celda en un panel lateral.

  • OnDrillDown de la cuadrícula, y DrillDownCell para activarlo desde código
  • DrillDown devuelve las filas de origen como una IsgcUITable
  • GetSourceRows da los números de fila y SourceValue lee un valor
  • Un desglose sobre la fila Otros de Top N devuelve las filas de todos los miembros que contiene
Leer el tema de la ayuda

Interacción

Pide un diseño en lenguaje natural

Los usuarios escriben una pregunta como los 3 países con más ventas por trimestre, en la barra de consultas de IA o desde tu código, y TsgcPivotGridAI pide el diseño a un proveedor de IA. Funciona cualquier LLM: TsgcUIAIEventProvider entrega cada solicitud a tu propio código, y TsgcUIAIChatProvider usa el componente TsgcAIChat de sgcWebSockets. Solo salen de la aplicación la pregunta y el catálogo de campos: nombres, títulos, tipos y hasta 5 valores de muestra por campo, nunca las filas. La respuesta se comprueba con los campos reales antes de aplicarla en un único recálculo, y Deshacer restaura el diseño anterior.

  • TsgcPivotGridAI con Provider y PivotGrid, en VCL, FireMonkey, WinForms, WPF y Avalonia
  • Ask espera la respuesta, AskAsync se ejecuta en un hilo de trabajo y Cancel lo detiene
  • OnBeforeAsk puede editar o cancelar la petición, OnLayout puede rechazar la respuesta
  • MaxSampleValues limita las muestras; los campos desconocidos se descartan y la respuesta se limita a 64 KB
  • TsgcPivotGridAIQuery del puente sgcPivotGridWS sigue funcionando con Chat, y un Provider asignado prevalece sobre Chat

Todas las ediciones y todas las plataformas, Community incluida; Deshacer de un diseño de IA no está en la edición Community. El proveedor de sgcWebSockets requiere una edición Registrada con un sgcWebSockets registrado: sgcUICoreWS en Delphi y C++ Builder, el paquete esegece.sgcUICore.sgcWebSockets en .NET.

Leer el tema de la ayuda

Salida

Un archivo, un navegador, un gráfico o una tarea de servidor.

Demo GridToPivotToChart: filas de la cuadrícula, la tabla dinámica y un gráfico de sgcCharts en tres paneles

Salida

Exporta lo que ves, o conviértelo en gráfico

Una tabla dinámica suele ser el principio de un informe, no el final. Cada exportación escribe la vista tal como la organizó el usuario, con sus niveles expandidos y sus filtros: CSV para hojas de cálculo, JSON para otros sistemas, HTML para un navegador o un correo, PNG y SVG para documentos. El resultado es también una tabla que sgcCharts lee directamente, así que la demo GridToPivotToChart pasa de las filas de una cuadrícula a una tabla dinámica y a un gráfico sin copiar ningún dato. Los flujos funcionan igual que los archivos.

  • SaveToCSV, SaveToJSON y SaveToHTML a un archivo o a un flujo
  • SaveToPNG y SaveToSVG con un tamaño opcional
  • TsgcPivotGridRenderer dibuja sin ventana, en un servidor o en Linux64
  • ResultTable expone el resultado visible como una IsgcUITable para sgcCharts
Leer el tema de la ayuda
Lista de diseños con las vistas guardadas Ventas por región y Margen por producto

Salida Solo registrada

Guarda un diseño y restáuralo con una llamada

Los usuarios avanzados crean las mismas vistas una y otra vez: ventas por región el lunes, margen por producto a fin de mes. La persistencia del diseño escribe el diseño completo como JSON, con sus campos, áreas, agrupaciones, agregaciones, ordenación, filtros y totales, y lo carga de nuevo con un único recálculo. Guárdalo en un archivo, en un campo de base de datos o en un perfil de usuario, ofrece una lista de vistas con nombre o copia el diseño de una cuadrícula a otra.

  • SaveLayoutToFile y LoadLayoutFromFile en las cuadrículas y en el motor
  • SaveLayoutToString y LoadLayoutFromString para una base de datos o un almacén de ajustes
  • Las versiones de cuadrícula también conservan los anchos de columna que cambió el usuario
  • Copia un diseño entre cuadrículas con LoadLayoutFromString(SaveLayoutToString)

No está en la edición Community.

Leer el tema de la ayuda

Accesibilidad

UI Automation para lectores de pantalla, teclado y alto contraste, sin configuración.

Accesibilidad

Una tabla dinámica expuesta con sus encabezados

sgcPivotGrid expone su contenido a Microsoft UI Automation como una tabla con encabezados de fila y de columna que se expanden y se contraen, celdas de datos y totales. La lista de campos se expone como una lista de campos por área, de modo que un usuario de lector de pantalla también puede construir la tabla dinámica.

  • Las flechas, Inicio, Fin, Re Pág y Av Pág mueven la celda con el foco, e Izquierda y Derecha (o las teclas más y menos) contraen y expanden los encabezados
  • En la lista de campos, Arriba y Abajo mueven el foco entre campos, Ctrl+1 a Ctrl+4 llevan el campo a filas, columnas, valores o filtros, Ctrl+Arriba y Ctrl+Abajo lo reordenan, Espacio lo activa o desactiva y Supr lo quita
  • Las teclas de la lista de campos sustituyen el arrastre de campos con el ratón
  • Un anillo de foco visible y, con un tema de alto contraste de Windows, la tabla dinámica se pinta con los colores del sistema

La accesibilidad está activada por defecto en todas las ediciones, también en la edición Community gratuita, en VCL en todas las versiones de Delphi y C++Builder desde Delphi 7 hasta Delphi 13, en FireMonkey en Windows, y en WinForms, WPF y Avalonia. En Delphi y C++Builder, AccessibleName y AccessibleDescription establecen el nombre y la descripción expuestos a UI Automation, y en .NET lo hacen el nombre accesible y el texto de ayuda estándar de cada framework. Consulta los informes de conformidad de accesibilidad (en inglés).

Leer el tema de la ayuda

Mira sgcPivotGrid en acción

sgcPivotGrid dentro de las demos de la suite sgcUI: aplicaciones completas que funcionan sin conexión con datos simulados integrados.

Medido frente a presupuestos

El grupo de rendimiento de QA ejecuta estos escenarios en compilaciones de release, como la mediana de cinco ejecuciones con datos fijos. Las cifras son presupuestos que cada escenario debe cumplir, publicados en la ayuda.

MediciónResultadoCondiciones
Recalcular 1,000,000 de filas (2 campos de fila, 1 campo de columna, 1 Sum)100 msPresupuesto de QA, compilación release Win64
Recalcular 1,000,000 de filas (2 campos de fila, 1 campo de columna, 1 Sum)160 msPresupuesto de QA, compilación release Win32
AppendRow de 1,000,000 de filas (3 de texto, 1 float y 1 valor de fecha)900 msPresupuesto de QA, compilación release Win64
AppendRow de 1,000,000 de filas (3 de texto, 1 float y 1 valor de fecha)1,400 msPresupuesto de QA, compilación release Win32

Fuente: el tema de la ayuda que documenta estas cifras.

Quién construye con sgcPivotGrid

Desarrolladores de ERP y de aplicaciones de gestión

Análisis de ventas y finanzas dentro de un ERP

Da al personal de contabilidad y ventas una tabla dinámica sobre la tabla de pedidos sin exportar a una hoja de cálculo. Una fuente de conjunto de datos enlaza la tabla dinámica con el mismo TDataSet que usan tus formularios y sigue cada edición grabada. Las fechas se agrupan por año, trimestre y mes, una escala de color marca las regiones débiles y un doble clic lista las facturas que hay detrás de un total sospechoso, de modo que las preguntas se responden dentro de tu aplicación.

  • Fuente de conjunto de datos con actualizaciones en vivo
  • Agrupación de fechas
  • Escalas de color
  • Desglose
Ejecuta la demo DataSetPivot

Analistas y controllers

Análisis de autoservicio para usuarios avanzados

Los usuarios avanzados quieren explorar, no presentar solicitudes de cambio. La lista de campos les permite arrastrar campos entre filas, columnas, filtros y valores, las listas de verificación de miembros acotan los datos y los diseños guardados les devuelven sus vistas favoritas. Con el puente de IA también pueden escribir una pregunta y obtener el diseño construido, con Deshacer a un clic cuando la respuesta no es lo que querían decir.

  • Lista de campos
  • Top N con Otros
  • Persistencia del diseño
  • Diseños con IA
Ejecuta la demo AdvancedPivot

Servicios de back office e informes

Informes programados en un servidor

Los resúmenes nocturnos no necesitan pantalla. El motor y el renderizador sin ventana se ejecutan en un servicio o en una aplicación de consola, en Windows o en Linux64 desde Delphi 10.2. Carga las filas del día, aplica un diseño guardado y escribe la tabla dinámica como PNG, SVG, HTML o CSV, lista para adjuntar a un correo o publicar en una página de intranet.

  • TsgcPivotEngine sin ventana
  • TsgcPivotGridRenderer
  • Exportación HTML y CSV
  • Linux64
Ejecuta la demo HeadlessReport

Una tabla dinámica en pocas líneas

La misma API en Delphi, C++ Builder y C#: carga 100,000 filas una vez y después dispón las regiones por trimestre con la región mayor primero.

Un formulario VCL con una cuadrícula dinámica y una lista de campos: 100,000 filas cargadas con un único recálculo, regiones por trimestre, la región mayor primero.

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.

Leer el tema de la ayuda →

La misma tabla dinámica en C++ Builder, con las cabeceras que generan los paquetes.

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

Leer el tema de la ayuda →

La versión en C# para WinForms. Usa solo funciones de la edición 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

Leer el tema de la ayuda →

Los ejemplos de Delphi y C++ Builder muestran los valores como porcentaje del total general (ShowAs), una función de la edición registrada. El ejemplo de C# usa solo funciones de la edición Community gratuita.

Ejecuta las demos de sgcPivotGrid

Los ejecutables de demostración compilados están en sgcUI_bin.zip, sin nada que instalar. El código fuente de cada demo se incluye con el paquete, para Delphi, C++ Builder y .NET.

SalesPivot

SalesPivot

100,000 filas de ventas con agrupación de fechas, una escala de color, la lista de campos y exportación. SalesPivotFMX es su gemela en FireMonkey.

DataSetPivot

DataSetPivot

Un TClientDataSet de pedidos: edita una fila y la tabla dinámica la sigue; haz doble clic en una celda para listar sus pedidos.

MillionRows

MillionRows

Carga y pivota 1,000,000 de filas generadas e imprime el tiempo que tardó.

AdvancedPivot

Solo registrada AdvancedPivot

Campos calculados, mostrar valores como, Top N con Otros, y guardado y carga de diseños.

GridToPivotToChart

GridToPivotToChart

Las filas de un sgcGrid alimentan la tabla dinámica, y el resultado de la tabla dinámica alimenta un gráfico de sgcCharts, sin copiar datos.

HeadlessReport

Construye una tabla dinámica sin ventana y la renderiza en un archivo PNG.

Solo registrada AskYourPivot

Escribe una pregunta en la barra de consultas de IA y obtén un diseño, mediante TsgcPivotGridAI con un proveedor simulado o el TsgcAIChat de sgcWebSockets, con Deshacer.

Demos compiladas

Ejecutables listos para usar de cada producto sgcUI, sin nada que instalar.

Descargar sgcUI_bin.zip →

Dónde se incluye sgcPivotGrid

sgcPivotGrid forma parte de sgcUI Enterprise, y también se vende por separado. sgcPivotGrid se incluye además en el paquete All-Access.

Paquete individual de sgcPivotGrid

€249 / desarrollador, código fuente completo, 1 año de actualizaciones.

Comprar sgcPivotGrid → Ver precios →

sgcUI Enterprise

Los 14 productos sgcUI, desde €699.

Ver Enterprise →

.NET

La edición .NET tiene el mismo precio. Hay una edición Community gratuita en NuGet como esegece.sgcPivotGrid.Community.

Ver precios →

La edición Community gratuita es esegece.sgcPivotGrid.Community en NuGet. La tabla muestra lo que incluye.

FunciónCommunity (gratuita)Registrada
Cuadrícula dinámica y lista de campos (VCL, FireMonkey, WinForms, WPF, Avalonia)✓✓
Ocho agregaciones, incluidas CountDistinct, StdDev y Var✓✓
Agrupación de fechas, subtotales y totales generales✓✓
Filtros, ordenación y desglose✓✓
Formato condicional y escalas de color✓✓
Exportación a CSV, JSON y HTML, PNG y SVG sin ventana✓✓
Diseños dinámicos con IA con cualquier LLM y la barra de consultas de IA✓✓
Campos calculados−✓
Mostrar valores como−✓
Top N con Otros−✓
Persistencia del diseño−✓
Deshacer de los diseños de IA, el puente sgcPivotGridWS y el proveedor de IA de sgcWebSockets−✓

Frameworks y plataformas compatibles

Componentes de sgcPivotGrid

ComponenteQué hace
TsgcVCLPivotGrid, TsgcFMXPivotGridEl control de tabla dinámica para VCL y FireMonkey (FMX desde XE6).
TsgcVCLPivotFieldList, TsgcFMXPivotFieldListLa lista de campos de arrastrar y soltar que permite a los usuarios cambiar el diseño.
TsgcPivotEngineEl motor de cálculo, accesible como Grid.Pivot y utilizable sin ventana.
TsgcPivotSource_DataSet, TsgcPivotSource_TablePivota un TDataSet, o cualquier tabla que implemente la interfaz de tabla de sgcUI.
TsgcPivotGridRendererSalida PNG y SVG sin ventana para servidores e informes.
TsgcPivotFormatRuleReglas de formato condicional como las escalas de color.
TsgcPivotGridAIPreguntas en lenguaje natural convertidas en diseños dinámicos por cualquier proveedor de IA, en todas las ediciones y en todas las plataformas.
TsgcVCLAIQueryBar, TsgcFMXAIQueryBarLa barra de consultas de IA de sgcUICore: escribe una pregunta, lee lo que se aplicó, Cancelar y Deshacer.
TsgcUIAIEventProvider, TsgcUIAIChatProvider (sgcUICoreWS)Proveedores de IA: cualquier LLM mediante un evento, o el TsgcAIChat de sgcWebSockets (solo edición registrada).
TsgcPivotGridAIQuery (sgcPivotGridWS)TsgcPivotGridAI con la propiedad Chat para un TsgcAIChat de sgcWebSockets. Solo edición registrada.
DestinoComponentePlataformas
Delphi 7 a 13, VCLTsgcVCLPivotGridWin32 y Win64
Delphi XE6 a 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS y Android
C++ Builder 2007 a 13Cuadrículas dinámicas VCL y FMXCabeceras .hpp generadas y bibliotecas estáticas
Delphi 10.2 a 13, independiente del frameworkMotor, fuentes, exportación, JSON de diseño, renderizador sin ventanaLinux64, por ejemplo para generar informes dinámicos en un servidor
.NET Framework 4.7.2, .NET 8, 9 y 10TsgcWinFormsPivotGrid, TsgcWpfPivotGrid, TsgcAvaloniaPivotGridWinForms, WPF, Avalonia, PNG y SVG sin ventana

Preguntas frecuentes

El motor está pensado para datos grandes: un almacén de columnas tipado, una pasada por recálculo y dibujo virtual. Los presupuestos de QA en Win64 son 100 ms para recalcular 1,000,000 de filas y 900 ms para añadirlas. También cuenta el tamaño del diseño: un diseño por encima de MaxCells, 5,000,000 de celdas por defecto, lanza un error, así que agrupa las fechas o usa Top N.

Sí. TsgcPivotSource_DataSet copia cualquier TDataSet en el motor y, mientras LiveUpdates es True, lo recarga tras cada grabación. Para un lote de ediciones, desactívalo y llama a Load al final. La demo DataSetPivot muestra un TClientDataSet con actualizaciones en vivo y desglose.

No. sgcPivotGrid es un motor en memoria dentro de tu aplicación. Lee filas de un conjunto de datos, de una tabla o de tu propio código, las agrega por sí mismo y no necesita servidor de base de datos ni diseño de cubo.

Cuatro funciones avanzadas: campos calculados, mostrar valores como, Top N con Otros y persistencia del diseño, además del puente sgcPivotGridWS, el proveedor de IA de sgcWebSockets y Deshacer de un diseño de IA. Los diseños dinámicos con IA con tu propio proveedor, todas las agregaciones, la agrupación de fechas, los filtros, la ordenación, el desglose, las reglas de formato, la exportación, las listas de campos y la salida PNG y SVG sin ventana están en Community.

Solo la pregunta y el catálogo de campos: nombres de campo, títulos, tipos y hasta 5 valores de muestra por campo, nunca las filas. La respuesta se valida con los campos reales, los campos y valores desconocidos se descartan y no cambia nada cuando no queda ningún diseño utilizable. Funciona en todas las ediciones con cualquier proveedor que conectes a TsgcUIAIEventProvider; el TsgcUIAIChatProvider ya preparado requiere una edición Registrada y un sgcWebSockets registrado.

Sí. Las cuadrículas y el motor exponen el resultado visible como una IsgcUITable mediante ResultTable. Asigna la propiedad Table de una fuente de datos de tabla de sgcCharts a la cuadrícula dinámica y el gráfico dibuja lo que el usuario ha organizado. La demo GridToPivotToChart encadena sgcGrid, sgcPivotGrid y sgcCharts.

Sí. TsgcPivotGridRenderer dibuja un resultado a PNG o SVG sin ventana, y el motor exporta CSV, JSON y HTML. En Linux64 las unidades independientes del framework se compilan desde Delphi 10.2: el motor, las fuentes, la exportación, el JSON de diseño y el renderizador.

Ayuda de sgcPivotGrid

3,000+Desarrolladores
20+Años
761+Componentes
30+Integraciones de API
5Plataformas
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

Prueba sgcPivotGrid hoy

La prueba de sgcUI incluye sgcPivotGrid y todos los demás productos sgcUI.