aggFunc
Avec les groupes de lignes : ce qu’un groupe affiche dans cette colonne.
| Type | AggFuncName | AggFn<V> |
|---|---|
| Par défaut | non défini |
Modifiable en direct (update()) | Oui — en redonnant les colonnes (update({ columns })) |
| Déclaré dans | packages/core/src/columns/defs.ts |
Ce qu’il fait
Section intitulée « Ce qu’il fait »Un nom fourni — 'sum', 'avg', 'min', 'max', 'count', 'first', 'last' — ou votre fonction des
valeurs du groupe. count compte les lignes du groupe ; les autres sautent les valeurs vides. Une fonction reçoit les
valeurs dans l’ordre du groupe (les vides valant null) et { column, level } (level null pour le total général) ; ce
qu’elle renvoie est affiché. Elle doit être pure.
Il faut la fonction grouping(). L’option aggFuncs du groupement l’emporte sur lui. Pour la ligne de totaux d’une
grille sans groupes, voir total.
import { createGrid, type GridMessages } from '@dzgrid/dom';import { grouping } from '@dzgrid/dom/grouping';import { FR_GROUP } from '@dzgrid/dom/locales/fr-group';import { FR } from '@dzgrid/dom/locales/fr';
type Sale = { id: string; market: string; fruit: string; crates: number };
const messages: GridMessages = { ...FR, text: { ...FR.text, ...FR_GROUP.text } };
createGrid<Sale>(document.getElementById('ventes')!, { rows: [{ id: 's1', market: 'Port', fruit: 'Prunes', crates: 12 }], columns: [ { id: 'market', header: 'Marché' }, { id: 'fruit', header: 'Fruit', aggFunc: 'count' }, { id: 'crates', header: 'Cagettes', type: 'number', aggFunc: 'sum' }, ], getRowId: (r) => r.id, messages, features: [grouping({ by: ['market'] })],});