React Resumos de Grade Hierárquica

    O recurso Resumos Ignite UI for React em React Grade Hierárquica funciona em um nível por coluna como rodapé de grupo. React resumos IgrHierarchicalGrid é um recurso poderoso que permite ao usuário ver as informações da coluna em um contêiner separado com um conjunto predefinido de itens de resumo padrão, dependendo do tipo de dados dentro da coluna ou implementando um modelo personalizado no IgrHierarchicalGrid.

    React Hierarchical Grid Summaries Overview Example

    [!Note] The summary of the column is a function of all column values, unless filtering is applied, then the summary of the column will be function of the filtered result values

    IgrHierarchicalGrid Os resumos também podem ser ativados em um nível por coluna no Ignite UI for React, o que significa que você pode ativá-lo apenas para as colunas necessárias. IgrHierarchicalGrid resumos fornece um conjunto predefinido de resumos padrão, dependendo do tipo de dados na coluna, para que você possa economizar algum tempo:

    Para string e boolean dataType, a seguinte função está disponível:

    • Contar

    Para number e currency​ ​percent tipos de dados, as seguintes funções estão disponíveis:

    • Contar
    • Mínimo
    • Máx.
    • Média
    • Soma

    Para date o tipo de dados, as seguintes funções estão disponíveis:

    • Contar
    • Mais antigo
    • Mais recente

    Todos os tipos de dados de coluna disponíveis podem ser encontrados no tópico oficial Tipos de coluna.

    IgrHierarchicalGrid Os resumos são habilitados por coluna definindo hasSummary a propriedade como true. Também é importante ter em mente que os resumos de cada coluna são resolvidos de acordo com o tipo de dados da coluna. IgrHierarchicalGrid No tipo de dados da coluna padrão é string, portanto, se você quiser number resumos date específicos, especifique a dataType propriedade como number ou date. Observe que os valores resumidos serão exibidos localizados, de acordo com a grade locale e a coluna pipeArgs.

    <IgrHierarchicalGrid autoGenerate="false" data={this.singersData} ref={this.hierarchicalGridRef} id="hierarchicalGrid" primaryKey="ID">
        <IgrColumn field="Artist" header="Artist" hasSummary="true"></IgrColumn>
        <IgrColumn field="Photo" header="Photo" dataType="Image"></IgrColumn>
        <IgrColumn field="Debut" header="Debut" hasSummary="true"></IgrColumn>
        <IgrColumn field="GrammyNominations" header="Grammy Nominations" dataType="Number" hasSummary="true"></IgrColumn>
        <IgrColumn field="GrammyAwards" header="Grammy Awards" dataType="Number" hasSummary="true"></IgrColumn>
        <IgrRowIsland childDataKey="Albums" autoGenerate="false">
            <IgrColumn field="Album" header="Album" dataType="String"></IgrColumn>
            <IgrColumn field="LaunchDate" header="Launch Date" dataType="Date"></IgrColumn>
            <IgrColumn field="BillboardReview" header="Billboard Review" dataType="Number" hasSummary="true"></IgrColumn>
            <IgrColumn field="USBillboard200" header="US Billboard 200" dataType="Number" hasSummary="true" ></IgrColumn>
         </IgrRowIsland>
    </IgrHierarchicalGrid>
    

    A outra maneira de ativar/desativar resumos para uma coluna específica ou uma lista de colunas é usar o método enableSummaries público/ disableSummaries do IgrHierarchicalGrid.

    function enableSummary() {
        hierarchicalGridRef.current.enableSummaries([
            {fieldName: 'GrammyNominations'},
            {fieldName: 'GrammyAwards'}
        ]);
    }
    function disableSummary() {
        hierarchicalGridRef.current.disableSummaries(['GrammyNominations']);
    }
    
    <IgrHierarchicalGrid autoGenerate="false" data={this.singersData} ref={this.hierarchicalGridRef} id="hierarchicalGrid" primaryKey="ID">
        <IgrColumn field="Artist" header="Artist" hasSummary="true"></IgrColumn>
        <IgrColumn field="Photo" header="Photo" dataType="Image"></IgrColumn>
        <IgrColumn field="Debut" header="Debut" hasSummary="true"></IgrColumn>
        <IgrColumn field="GrammyNominations" header="Grammy Nominations" dataType="Number" hasSummary="true"></IgrColumn>
        <IgrColumn field="GrammyAwards" header="Grammy Awards" dataType="Number" hasSummary="true"></IgrColumn>
    </IgrHierarchicalGrid>
    <button onClick={enableSummary}>Enable Summary</button>
    <button onClick={disableSummary}>Disable Summary </button>
    

    Summary Template

    Summary tem como alvo o resumo da coluna, fornecendo como contexto os resultados do resumo da coluna.

    function summaryTemplate(ctx: IgrSummaryTemplateContext) {
      return (
        <>
          <span>My custom summary template</span>
          <span>{ctx.dataContext.implicit[0].label} - {ctx.dataContext.implicit[0].summaryResult}</span>
        </>
      );
    }
    
    <IgrColumn hasSummary="true" summaryTemplate={summaryTemplate}></IgrColumn>
    

    Quando um resumo padrão é definido, a altura da área de resumo é calculada por design, dependendo da coluna com o maior número de resumos e da--ig-size grade. Use a summaryRowHeight propriedade input para substituir o valor padrão. Como argumento, ele espera um valor numérico e definir um valor falso acionará o comportamento de dimensionamento padrão do rodapé da grade.

    Disabled Summaries

    A disabledSummaries propriedade fornece controle preciso por coluna sobre o recurso de resumo da Grade Hierárquica React. Essa propriedade permite que os usuários personalizem os resumos exibidos para cada coluna no IgrHierarchicalGrid, garantindo que apenas os dados mais relevantes e significativos sejam mostrados. Por exemplo, você pode excluir tipos de resumo específicos, como ['count', 'min', 'max'] especificar suas chaves de resumo em uma matriz.

    Essa propriedade também pode ser modificada dinamicamente em runtime por meio de código, fornecendo flexibilidade para adaptar os resumos do IgrHierarchicalGrid à alteração de estados do aplicativo ou ações do usuário.

    Os exemplos a seguir ilustram como usar a disabledSummaries propriedade para gerenciar resumos para colunas diferentes e excluir tipos de resumo padrão e personalizados específicos na Grade Hierárquica React:

    <!-- Disable default summaries -->
    <IgrColumn
        field="UnitPrice"
        header="Unit Price"
        dataType="number"
        hasSummary={true}
        disabledSummaries="['count', 'sum', 'average']"
    />
    
    <!-- Disable custom summaries -->
    <IgrColumn
        field="UnitsInStock"
        header="Units In Stock"
        dataType="number"
        hasSummary={true}
        summaries={discontinuedSummary}
        disabledSummaries="['discontinued', 'totalDiscontinued']"
    />
    

    Pois UnitPrice, resumos padrão como count, sum e average são desativados, deixando outros como min e max ativos.

    Para UnitsInStock, resumos personalizados, como discontinued e totalDiscontinued são excluídos usando a disabledSummaries propriedade.

    Em tempo de execução, os resumos também podem ser desabilitados dinamicamente usando a disabledSummaries propriedade. Por exemplo, você pode definir ou atualizar a propriedade em colunas específicas programaticamente para adaptar os resumos exibidos com base nas ações do usuário ou nas alterações de estado do aplicativo.

    Formatting summaries

    Por padrão, os resultados do resumo, produzidos pelos operandos de resumo integrados, são localizados e formatados de acordo com a grade locale e a coluna pipeArgs. Ao usar operandos personalizados, os locale e pipeArgs não são aplicados. Se você quiser alterar a aparência padrão dos resultados do resumo, poderá formatá-los usando a summaryFormatter propriedade.

    public summaryFormatter(
        summary: IgrSummaryResult,
        summaryOperand: IgrSummaryOperand
      ): string {
        const result = summary.summaryResult;
        if (summary.key !== "count" && result !== null && result !== undefined) {
          const format = new Intl.DateTimeFormat("en", { year: "numeric" });
          return format.format(new Date(result));
        }
        return result;
      }
      
    <IgrColumn hasSummary="true" summaryFormatter={this.summaryFormatter}></IgrColumn>
    

    Keyboard Navigation

    As linhas de resumo podem ser navegadas com as seguintes interações de teclado:

    • PARA CIMA- navega uma célula para cima.
    • PARA BAIXO- navega uma célula para baixo.
    • ESQUERDA- navega uma célula para a esquerda.
    • DIREITA- navega uma célula para a direita.
    • CTRL + ESQUERDA ou HOME- navega para a célula mais à esquerda.
    • CTRL + DIREITA ou END- navega para a célula mais à direita.

    Styling

    Além dos temas predefinidos, a grade pode ser ainda mais personalizada ao definir algumas das propriedades CSS disponíveis. Caso você queira alterar algumas das cores, precisa definir uma classe para a grade primeiro:

    <IgrHierarchicalGrid id="hierarchicalGrid">
    </IgrHierarchicalGrid>
    

    Em seguida, defina as propriedades CSS relacionadas para essa classe:

    #hierarchicalGrid {
        --ig-grid-summary-background-color:#e0f3ff;
        --ig-grid-summary-focus-background-color: rgba( #94d1f7, .3 );
        --ig-grid-summary-label-color: rgb(228, 27, 117);
        --ig-grid-summary-result-color: black;
    }
    

    Demo

    API References

    Additional Resources

    Nossa comunidade é ativa e sempre acolhedora para novas ideias.