Tableau de bord Filtré

Aujourd’hui, nous allons voir comment mettre en place un Dashboard Filter (tableau de bord filtré), qui peut venir en remplacement d’un tableau de bord interactif.

Les Dashboard Filter permettent de filtrer une table selon un ou plusieurs paramètres, comme on pourrait le faire sur un tableur classique. Ils se différencient d’un tableau de bord interactif (interactive dashboard) du fait qu’on peut utiliser plusieurs éléments de filtre au lieu d’un seul. De plus, ils apportent un confort d’usage pour l’utilisateur final.

Principe

Un Dashboard Filter, c’est tout simplement une vue de type Dashboard, qui embarque d’un côté une vue de type Détail, présentant une série de champs de filtre, et de l’autre une vue de type Table (ou similaire), basée sur une table entière mais dont les données dépendent de ce qui est sélectionné dans la première vue : c’est donc une vue basée sur une Slice (“tranche”, en français).

Mise en place de la table filter

Tout d’abord, nous avons besoin d’ajouter une table de filtre dans la base de données, composée d’une seule clé et des colonnes avec lesquelles nous voulons filtrer.

Vue de la table Filter dans Sheets
Vue de la table Filter dans Sheets

Ensuite, nous devons l’ajouter dans l’application avec uniquement la modification possible, il ne faut pas pouvoir ajouter de nouvelles lignes dans cette table.

Ajout de la table sur AppSheet
Ajout de la table sur AppSheet

Nous pouvons masquer la clé : elle n’est pas modifiable et ne nous est d’aucune utilité.

Masquage de la clé
Masquage de la clé

Préparation de la Slice

Afin de pouvoir montrer les résultats du filtre, une utilisons une slice basée sur la table intégrale.

Création d'une slice pour la table Items
Création d’une slice pour la table Items
Vue des paramètres d'une slice
Vue des paramètres d’une slice

Dans cet exemple, nous souhaitons filtrer par rapport au nom d’un item. Cependant, si rien n’est saisi, alors tout doit être visible. Voici l’expression utilisée pour cela :

Formule du filtre pour la slice
Formule du filtre pour la slice

Paramétrage de la vue Dashboard

La vue de type Dashboard (tableau de bord) permet de positionner, sur une seule vue utilisateur, deux vues normalement séparées. C’est ce qu’on va utiliser ici, pour présenter d’un côté les éléments à sélectionner dans notre filtre, et de l’autre côté le résultat opéré par ce filtre.

En pratique, cela revient donc à embarquer :

  • une vue de type Detail pour la table Filter, comportant les colonnes nécessaires pour le filtre avec les options Quick Edit
  • une vue de type List, basée sur la slice que nous avons créée précédemment.

Ces deux vues sont positionnées en “Ref”, afin qu’elle ne soient disponibles qu’au sein de ce tableau de bord.

Création de la vue liste des items et de la vue du filtre
Création de la vue liste des items et de la vue du filtre

Le dashboard se constitue alors ainsi :

Création du tableau de bord
Création du tableau de bord

Perfectionnement 1 : bouton Reset

Une fois que nous avons fait tout cela, nous pouvons améliorer ce système en ajoutant une action qui réinitialise les valeurs sélectionnées dans le filtre.

Paramétrage d'une action de réinitialisation du filtre
Paramétrage d’une action de réinitialisation du filtre

Pour que cette action puisse être visible sur le Dashboard, il faut activer une option dans Setting → Views → View type options. Il faudra penser à masquer l’action “Edit” du filtre.

Vue de l'option d'activation des actions en primary dans les dashboards
Vue de l’option d’activation des actions en primary dans les dashboards

Une fois cela fait, nous avons un filtre opérationnel.

Résultat du filtre avec et sans sélection
Résultat du filtre avec et sans sélection

Perfectionnement 2 : gérer plusieurs conditions

Nous pouvons aussi augmenter le nombre de paramètres avec lesquels nous voulons filtrer.

Par exemple : si en plus du nom de notre produit, nous voulons filtrer aussi selon la catégorie du produit, alors nous avons besoin de :

  • rajouter la catégorie dans les colonnes du filtre
  • adapter la slice
  • mettre à jour l’action de reset

Pour cette exemple la nouvelle formule du slice ressemblerait a :

IFS(
  AND(
    ISNOTBLANK(ANY(Filter[name])),
    ISNOTBLANK(ANY(Filter[category]))
  ),
  AND(
    [Item ID]=ANY(Filter[Name]),
    [category]=ANY(Filter[category])
  ),
  AND(
    ISNOTBLANK(ANY(Filter[name])),
    ISBLANK(ANY(Filter[category]))
  ),
  [Item ID]=ANY(Filter[Name]),
  AND(
    ISBLANK(ANY(Filter[name])),
    ISNOTBLANK(ANY(Filter[category]))
  ),
  [category]=ANY(Filter[category]),
  TRUE,
  TRUE
)

Conclusion

Nous avons vu dans cet article comment mettre en place un Dashboard Filter.

Pour cela nous avons eu besoin de créer une nouvelle table pour le filtre, d’ajouter une slice sur la table que nous voulons filtrer pour ensuite préparer les vues pour l’application. Une fois les vues faites et paramétrées, il ne nous reste plus qu’à ajouter quelques perfectionnements pour faciliter l’expérience utilisateur.

Vous avez un projet pour une appli ou une formation AppSheet ? C’est ici que ça se passe !

Leave a Comment