Recursos da grade de pivô Angular
As classes de componentes de grade dinâmica e plana herdam de uma base comum e, portanto, compartilham algumas funcionalidades e recursos.
Note
Alguns recursos não têm comportamento significativo no contexto de uma tabela dinâmica e, portanto, não podem ser habilitados para IgxPivotGrid
. Eles incluem:
- Operações CRUD
- Agrupamento
- Fixação de linha/coluna
- Resumos
- Paginação
O componente Pivot Grid tem recursos e funcionalidades adicionais relacionadas às suas dimensões, conforme descrito abaixo.
Dimensions filtering
Todas as dimensões (filtros, linhas, colunas) podem ser filtradas por meio da UI do chip ou da API. Essa funcionalidade é incorporada e habilitada por padrão.
Note
Você pode usar a dimensão de filtragem para filtrar valores de dados que não fazem parte da visualização dinâmica.
A interface de filtragem pode ser aberta por meio do ícone de filtro de chips de dimensão e permite a filtragem no estilo Excel dos valores de dimensão exclusivos.
Note
Se não houver espaço suficiente para todos os chips de filtragem, a grade de pivô mostrará os que foram cortados em um menu suspenso. Os usuários finais podem acessá-los e manipulá-los lá.
As dimensões também podem ser filtradas inicialmente por meio da configuração de dimensão em pivotConfiguration
com a propriedade filter
da dimensão. Ela pode ser definida como uma nova FilteringExpressionsTree
com a condição de filtro relacionada, por exemplo:
public filterExpTree = new FilteringExpressionsTree(FilteringLogic.And);
constructor() {
this.filterExpTree.filteringOperands = [
{
condition: IgxStringFilteringOperand.instance().condition('equals'),
fieldName: 'SellerName',
searchVal: 'Stanley'
}
];
}
public pivotConfigHierarchy: IPivotConfiguration = {
filters: [
{
memberName: 'SellerName',
enabled: true,
filter: this.filterExpTree
}
]
}
Dimensions sorting
Valores de dimensão nas rows
ou columns
podem ser classificados por meio do chip relacionado ou da API. Essa funcionalidade é incorporada e habilitada por padrão.
A dimensão é classificada com um clique no chip relacionado e, como resultado, os valores da dimensão são classificados em ordem crescente/decrescente.
A classificação também pode ser aplicada inicialmente por meio da propriedade sortDirection
da definição de dimensão.
public pivotConfigHierarchy: IPivotConfiguration = {
rows: [
{
memberName: 'SellerName',
enabled: true,
sortDirection: SortingDirection.Asc
}
]
}
Dimensions resizing
As dimensões de linha podem ser redimensionadas de forma similar ao redimensionamento de coluna - por meio de um indicador de redimensionamento que pode ser encontrado na borda direita das células. Elas também podem ser redimensionadas automaticamente clicando duas vezes no indicador de redimensionamento ou usando a API relacionada -autoSizeRowDimension
.
Um tamanho diferente também pode ser definido inicialmente com a propriedade width
disponível na definição de dimensão:
public pivotConfigHierarchy: IPivotConfiguration = {
rows: [
{
memberName: 'Country',
enabled: true,
width: '400px'
}
]
}
Note
A partir da versão 18.0.0
do IgniteUI para Angular a width
das dimensões da linha também pode ser definida como auto
.
Dimensions selection
O Pivot Grid suporta seleção única que é habilitada assim como na grade base. Por exemplo:
<igx-pivot-grid #grid1 [rowSelection]="'single'" [data]="data" [pivotConfiguration]="pivotConfigHierarchy">
</igx-pivot-grid>
Caso haja várias dimensões de linha ou coluna que criem grupos que abrangem várias linhas/colunas, a seleção é aplicada a todas as células que pertencem ao grupo selecionado.
Super Compact Mode
O componente IgxPivotGrid
fornece um superCompactMode
@Input
. Ele é adequado para casos que exigem que muitas células estejam presentes na tela ao mesmo tempo. Se habilitada, a opção ignora a variável ig-size
para a grade de pivô. Habilitar superCompactMode
também define a variável ig-size
para ig-size-small
para cada componente filho (como IgxChip
) que não tem a opção superCompactMode
.
<igx-pivot-grid [superCompactMode]="true"></igx-pivot-grid>
Additional summary column
Quando uma dimensão column
define uma hierarquia, a grade dinâmica renderizará uma coluna de resumo/total adicional, que acumula as agregações de todas as colunas dentro do grupo. Quando o grupo é recolhido, apenas a coluna de resumo permanecerá. E quando o grupo é expandido, a coluna de resumo adicional aparece no final do grupo.
Row Dimensions Headers
A partir da versão 18.0.0
os cabeçalhos de valores de dimensão de linha do IgniteUI para Angular podem ser habilitados por meio da opção pivotUI
:
<igx-pivot-grid [pivotUI]="{ showRowHeaders: true }">
</igx-pivot-grid>
Row Dimension Layout
O IgxPivotGridComponent
suporta duas formas de renderização de dimensão de linha. Isso pode ser controlado definindo a propriedade rowLayout
da opção pivotUI
.
<igx-pivot-grid [pivotUI]="pivotUI">
</igx-pivot-grid>
public pivotUI: IPivotUISettings = { rowLayout: PivotRowLayoutType.Horizontal };
O layout padrão da grade é Vertical
. Neste modo, a hierarquia de dimensões se expande verticalmente. A alternativa seria Horizontal
. Neste modo, os filhos de uma dimensão de linha única quando expandidos são mostrados horizontalmente no mesmo layout de várias linhas pai. No exemplo abaixo, você pode alternar entre os dois modos para compará-los.
Observe que no modo Horizontal
, os agregados de dimensão da linha pai não são visíveis a menos que a linha pai esteja recolhida. Para mostrar a dimensão pai em um resumo de linha, a propriedade horizontalSummary
pode ser habilitada para a dimensão relacionada.
rows: [
{
memberFunction: () => 'All Products',
memberName: 'AllProducts',
enabled: true,
horizontalSummary: true,
width: "150px",
childLevel: {
//...
}
}
]
Além disso, a posição do resumo pode ser alterada por meio da propriedade horizontalSummariesPosition
da opção pivotUI
. Ela pode ser definida como Top
(padrão) ou Bottom
.
public pivotUI: IPivotUISettings = { rowLayout: PivotRowLayoutType.Horizontal, horizontalSummariesPosition: PivotSummaryPosition.Bottom };
Note
As opções relacionadas ao resumo de linha -horizontalSummary
e horizontalSummariesPosition
são aplicáveis somente ao modo de layout Horizontal
.
Interações
Navegação pelo teclado
A navegação pelo teclado no IgxPivotGrid
funciona de forma semelhante à do IgxGrid
. A grade de pivô é dividida em três áreas -rows
, columns
, values
. As áreas para rows
e columns
são consideradas cabeçalhos para fins de navegação, enquanto a área para values
é o corpo. As setas do teclado permitem navegar no elemento ativo somente dentro da área atual.
Dimensions drag & drop
As dimensões são representadas por chips, que podem ser arrastados e soltos. Todos os chips podem mudar sua ordem dentro de sua área por arrastar e soltar. Os chips de rows
, column
, filter
(chips de dimensão) podem ser movidos de qualquer uma dessas áreas para qualquer outra e em qualquer lugar. Os chips dessas áreas não podem ser movidos para a área values
e os chips da área values
não podem ser movidos para nenhuma das áreas de dimensão.
Note
Os chips da Grade Dinâmica não podem ser movidos para o Seletor de Dados Dinâmicos e os itens do Seletor de Dados Dinâmicos não podem ser movidos para a Grade Dinâmica.