Descripción general de la cuadrícula dinámica de Blazor
Ignite UI for Blazor Las cuadrículas dinámicas se utilizan para resumir y representar datos multidimensionales voluminosos en un formato de tabla cruzada. Los datos se pueden ordenar, agrupar o filtrar fácil y rápidamente. Dichos datos pueden incluir sumas, promedios y otras estadísticas. Los usuarios finales pueden modificar el diseño de la tabla dinámica mediante operaciones de arrastrar y soltar, según sus necesidades.
¿Qué es Blazor Pivot Grid?
El Blazor PivotGrid presenta los datos en una tabla dinámica y ayuda a realizar análisis complejos en el conjunto de datos proporcionado. Este sofisticado control de cuadrícula dinámica se utiliza para organizar, resumir y filtrar grandes volúmenes de datos que luego se muestran en un formato de tabla cruzada. Las características clave de una cuadrícula dinámica de Blazor son las dimensiones de fila, las dimensiones de columna, las agregaciones y los filtros.
IgbPivotGrid
brinda a los usuarios la capacidad de configurar y mostrar sus datos en una estructura de tabla dinámica multidimensional. Las filas y las columnas representan distintos grupos de datos y los valores de las celdas de datos representan agregaciones. Esto permite el análisis de datos complejos basados en un conjunto de datos plano simple. IgbPivotGrid
es una tabla dinámica rica en funciones que proporciona una configuración fácil de las diferentes dimensiones y valores, así como operaciones de datos adicionales en ellos, como filtrado y clasificación.
Blazor Ejemplo de cuadrícula pivotante
A continuación se muestra un ejemplo de cuadrícula dinámica Blazor en combinación con el componente Selector de datos dinámicos Blazor. De esta manera, puede tener opciones de configuración de tiempo de ejecución más flexibles.
¿Te gusta esta muestra? Obtenga acceso a nuestro kit de herramientas de Ignite UI for Blazor completo y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.
Introducción a Blazor Pivot Grid
El Blazor PivotGrid se puede configurar a través de la PivotConfiguration
propiedad.
<IgbPivotGrid PivotConfiguration="PivotConfiguration" Data="PivotData">
</IgbPivotGrid>
razor
Se define por tres dimensiones principales: filas, columnas y valores. Las filas y columnas definen la estructura agrupada que se muestra en las filas y columnas de la cuadrícula. Los valores definen los campos de agregación y la agregación que se utilizará para calcular y mostrar los valores relacionados de los grupos.
También se puede definir un filtro a través de la propiedad de configuración de filtros. Se puede usar para campos que no desea agregar como una dimensión o un valor, pero le gustaría filtrar sus valores de miembros relacionados a través de la interfaz de usuario.
Dimensiones Configuración
Cada configuración de dimensión básica requiere un MemberName
que coincida con un campo de los datos proporcionados.
Se pueden definir varias dimensiones hermanas, lo que crea un grupo anidado más complejo en el área de dimensión de fila o columna relacionada.
Las dimensiones se pueden reordenar o mover de un área a otra mediante sus correspondientes chips mediante arrastrar y soltar.
Una dimensión también puede describir una jerarquía expandible a través de la ChildLevel
propiedad, por ejemplo:
@code {
var pivotConfiguration = new IgbPivotConfiguration();
pivotConfiguration.Rows.Add(new IgbPivotDimension()
{
MemberName = "Product",
Enabled = true,
Name = "pivotDimension1",
ChildLevel = new IgbPivotDimension() { MemberName = "Country", Enabled = true, Name = "pivotDimension2" }
});
}
razor
En este caso, la dimensión representa un expansor en la sección relacionada de la cuadrícula (fila o columna) y permite que los elementos secundarios se expandan o contraigan como parte de la jerarquía. De forma predeterminada, las dimensiones de fila se expanden inicialmente. Este comportamiento se puede controlar con la DefaultExpandState
propiedad de la cuadrícula dinámica.
Dimensiones predefinidas
Como parte de la cuadrícula dinámica, se exponen algunas dimensiones predefinidas adicionales para facilitar la configuración:
IgbPivotDateDimension
Se puede utilizar para campos de fecha. Describe la siguiente jerarquía de forma predeterminada:- Todos los periodos
- Años
- Cuarteles
- Meses
- Fecha completa
Se puede configurar para filas o columnas, por ejemplo:
@code {
IgbPivotDateDimension dateDim = new IgbPivotDateDimension();
dateDim.BaseDimension = new IgbPivotDimension()
{
MemberName = "Date",
Enabled = true
};
_config.Rows.Add(dateDim);
}
razor
También permite una mayor personalización a través del segundo parámetro de opción para habilitar o deshabilitar una parte particular de la jerarquía, por ejemplo:
@code {
IgbPivotDateDimension dateDim = new IgbPivotDateDimension();
dateDim.BaseDimension = new IgbPivotDimension()
{
MemberName = "Date",
Enabled = true
};
dateDim.Options = new IgbPivotDateDimensionOptions()
{
Years = true,
Months = true,
FullDate = true,
Quarters = true
};
_config.Rows.Add(dateDim);
}
razor
Configuración de Valores
Una configuración de valor requiere un miembro que coincida con un campo de los datos proporcionados, o puede definir una función de agregador personalizado para escenarios personalizados más complejos. Fuera de la caja, hay 4 agregaciones predefinidas que se pueden usar según el tipo de datos del campo de datos:
PivotNumericAggregate
: para campos numéricos. Contiene las siguientes funciones de agregación:SUM
,AVG
,MIN
,MAX
,COUNT
.PivotDateAggregate
: para campos de fecha. Contiene las siguientes funciones de agregación:LATEST
,EARLIEST
,COUNT
.PivotTimeAggregate
: para campos de tiempo. Contiene las siguientes funciones de agregación:LATEST
,EARLIEST
,COUNT
.PivotAggregate
: para cualquier otro tipo de datos. Esta es la agregación base. Contiene las siguientes funciones de agregación:COUNT
.
La función de agregación actual se puede cambiar en tiempo de ejecución utilizando el menú desplegable del chip de valor. De forma predeterminada, muestra una lista de agregaciones disponibles según el tipo de datos del campo. También se puede establecer una lista personalizada de agregaciones a través de la propiedad AggregateList
, por ejemplo:
@code {
IgbPivotConfiguration pivotConfiguration1 = new IgbPivotConfiguration();
IgbPivotValue pivotValue = new IgbPivotValue()
{
Member = "Sales",
Name = "pivotValue1",
DisplayName = "Amount of Sales",
Enabled = true,
Aggregate = new IgbPivotAggregator() { Key = "sum", AggregatorName = PivotAggregationType.SUM, Label = "Sum of Sales" }
};
pivotValue.AggregateList.Add(new IgbPivotAggregator() { Key = "sum", AggregatorName = PivotAggregationType.SUM, Label = "Sum of Sales" });
pivotValue.AggregateList.Add(new IgbPivotAggregator() { Key = "min", AggregatorName = PivotAggregationType.MIN, Label = "Minimum of Sales" });
pivotValue.AggregateList.Add(new IgbPivotAggregator() { Key = "max", AggregatorName = PivotAggregationType.MAX, Label = "Maximum of Sales" });
pivotConfiguration1.Values.Add(pivotValue);
razor
El valor de pivote también proporciona una DisplayName
propiedad. Se puede utilizar para mostrar un nombre personalizado para este valor en el encabezado de la columna.
Habilitar propiedad
PivotConfiguration
es la interfaz que describe el estado actual del componente IgbPivotGrid
. Con él el desarrollador puede declarar campos de los datos como filas, columnas, filtros o valores. La configuración permite habilitar o deshabilitar cada uno de estos elementos por separado. Solo los elementos habilitados se incluyen en el estado actual de Pivot Grid. El componente IgbPivotDataSelector
utiliza la misma configuración y muestra una lista de todos los elementos, habilitados y deshabilitados. Para cada uno de ellos hay una casilla de verificación en el estado apropiado. Los usuarios finales pueden modificar fácilmente el estado de pivote alternando los diferentes elementos usando estas casillas de verificación. La propiedad Enable
controla si un IgbPivotDimension
o IgbPivotValue
determinado está activo y forma parte de la vista dinámica representada por Pivot Grid.
Código de configuración completo
Echemos un vistazo a una configuración de pivote básica:
IgbPivotConfiguration pivotConfiguration = new IgbPivotConfiguration();
pivotConfiguration.Rows.Add(new IgbPivotDimension()
{
MemberName = "SellerName",
Enabled = true,
Name = "pivotDimension1"
});
pivotConfiguration.Columns.Add(new IgbPivotDimension()
{
MemberName = "ProductName",
Enabled = true,
Name = "pivotDimension2"
});
pivotConfiguration.Columns.Add(new IgbPivotDimension()
{
MemberName = "SellerCity",
Enabled = true,
Name = "pivotDimension2"
});
pivotConfiguration.Values.Add(new IgbPivotValue()
{
Member = "AmountofSale",
Name = "pivotValue1",
Enabled = true,
Aggregate = new IgbPivotAggregator() { Key = "SUM", AggregatorName = PivotAggregationType.SUM, Label = "Sum" }
});
}
razor
Esta configuración define 1 fila, 1 columna y 1 agregación que suma los valores de cada grupo de dimensiones. Los miembros coinciden con los campos disponibles en la fuente de datos proporcionada:
public PivotDataFlat()
{
this.Add(new PivotDataFlatItem()
{
ProductName = @"Clothing",
ProductUnitPrice = 12.8,
SellerName = @"Stanley Brooker",
SellerCity = @"Seattle",
Date = @"2007-01-01T00:00:00",
Value = 94.4,
NumberOfUnits = 282
});
razor
Ejemplo de configuración completa
El uso del código anterior dará como resultado el siguiente ejemplo, que agrupa las columnas únicas Fecha, Nombre del producto y Ciudad del vendedor en filas únicas y muestra las agregaciones relacionadas para el importe de la venta en las celdas relacionadas:
Configuración de generación automática
La autoGenerateConfig
propiedad genera automáticamente dimensiones y valores basados en los campos de la fuente de datos:
Campos numéricos:
- Creado como
IgbPivotValue
usandoPivotNumericAggregate.sum
un agregador. - Se agrega a la colección de valores y se habilita de forma predeterminada.
- Creado como
Campos no numéricos:
- Creado como
IgbPivotDimension
. - Deshabilitado de forma predeterminada.
- Se ha agregado a la colección de columnas.
- Creado como
Campos de fecha (solo el primer
date
campo está habilitado, los otrosdate
campos aplican la regla de campos no numéricos):- Creado como
IgbPivotDateDimension
- Habilitado de forma predeterminada
- agregado a la colección rows.
- Creado como
Esta función permite a los desarrolladores crear rápidamente una vista dinámica sin especificar manualmente las dimensiones y los valores. Con un selector de pivote junto a la cuadrícula dinámica, los usuarios pueden habilitar y reordenar dimensiones y valores según sea necesario.
Claves de cálculo de valor pivote
La cuadrícula dinámica proporciona una personalización a los campos de claves de objeto que utiliza para realizar sus cálculos dinámicos.
Una vista más detallada de cómo se utilizan se puede ver a continuación en los datos de ejemplo, donde puede ver los valores ya agregados:
[
{
ProductCategory: 'All', AllProducts: 'All Products', All: 1000, 'All-Bulgaria': 774, 'All-USA': 829, 'All-Uruguay': 524,
AllProducts_records: [
{ ProductCategory: 'Clothing', 'All-Bulgaria': 774, 'All-USA': 296, 'All-Uruguay': 456 },
{ ProductCategory: 'Bikes', 'All-Uruguay': 68 },
{ ProductCategory: 'Accessories', 'All-USA': 293 },
{ ProductCategory: 'Components', 'All-USA': 240 }
]
}
];
json
Todos estos se almacenan en la propiedad pivotKeys que forma parte de la PivotConfiguration
propiedad y se pueden usar para cambiar las claves dinámicas predeterminadas.
- niños: campo que almacena niños para la construcción de jerarquía. Representa un mapa de valores agrupados y todos los pivotGridRecords que se basan en ese valor. Se puede utilizar en escenarios muy específicos, donde es necesario hacer algo mientras se crean las jerarquías. No es necesario cambiar esto para uso común.
- registros: campo que almacena la referencia a los registros de datos originales. Se puede ver en el ejemplo anterior: AllProducts_records. Evite configurar campos en los datos con el mismo nombre que esta propiedad. Si sus registros de datos tienen propiedad de registros, puede especificar un valor diferente y único utilizando pivotKeys.
- agregaciones: campo que almacena valores de agregación. Se aplica al crear las jerarquías y tampoco debe cambiarse para escenarios comunes.
- nivel: campo que almacena el nivel de dimensión según su jerarquía. Evite configurar campos en los datos con el mismo nombre que esta propiedad. Si sus registros de datos tienen una propiedad de nivel, puede especificar un valor diferente y único utilizando pivotKeys.
- columnDimensionSeparator: separador utilizado al generar los valores de campo de columna únicos. Es el guión(-) del valor de ejemplo -All-Bulgaria.
- rowDimensionSeparator: separador utilizado al generar los valores de campo de fila únicos. Se utiliza al crear los registros y el campo de nivel.
Los valores predeterminados son:
@code {
{
aggregations: 'aggregations',
records: 'records',
children: 'children',
level: 'level',
rowDimensionSeparator: '_',
columnDimensionSeparator: '-'
};
}
razor
Si tiene valores de campo de datos que contienen las claves predeterminadas, asegúrese de cambiar los separadores que coincidan con cualquier otro símbolo que no esté utilizando actualmente. De lo contrario, podría producirse un comportamiento inesperado en el cálculo y la visualización de los valores agregados.
Al anular el en Blazor IgbPivotKeys
, actualmente deberá definir todas las demás claves, ya que al asignar un nuevo objeto PivotKeys, reemplaza completamente a los predeterminados:
@code {
var pivotConfiguration = new IgbPivotConfiguration();
pivotConfiguration.PivotKeys = new IgbPivotKeys()
{
Aggregations = "aggregations",
Records = "records",
Children = "children",
Level = "level",
RowDimensionSeparator = "_",
ColumnDimensionSeparator = "^"
};
}
razor
Problemas conocidos y limitaciones
Limitación | Descripción |
---|---|
No se admite la configuración de columnas de forma declarativa. | La cuadrícula Pivot genera sus columnas en función de laColumns configuración, por lo que no se admite configurarlos de forma declarativa, como en la cuadrícula base. Estas columnas no se tienen en cuenta. |
Configuración duplicadaMemberName oMember valores de propiedad para dimensiones/valores. |
Estas propiedades deben ser únicas para cada dimensión/valor. La duplicación puede provocar la pérdida de datos del resultado final. |
La selección de filas solo se admite en modo individual. | Actualmente no se admite la selección múltiple. |
Referencias de API
Recursos adicionales
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.