Colonne PaysTotal pour la Belgique

GroupBy de collections dans Power Apps

Vous allez apprendre à utiliser la fonction GroupBy de collections dans Power Apps. Notamment, vous ferez des jointures des collections dans Power Apps.

Préparer les données pour la fonction GroupBy de collections dans Power Apps

L’objectif de cette manipulation est de créer un regroupement de données à partir de collections dans Power Apps.

Par ailleurs, la jointure doit créer une nouvelle collection de données, nommée PaysHabitants. Celle -ci doit exposer le nombre total d’habitants par pays, en utilisant la fonction GroupBy.

Pour faire cette manipulation, téléchargez les fichiers nécessaires. Ensuite, dézippez le fichier. Dans le dossier Collections, vous utiliserez le fichier Collection du nombre habitants par villes.

Pour vous aider, regardez la copie d’écran ci-dessous qui présente le résultat attendu.

Attention, il s’agit d’un total sur 2 ou 3 villes du pays et non pas le nombre total d’habitants par pays 😉

Collections dans Power Apps : résultat attendu
Collections dans Power Apps : résultat attendu

Si vous rencontrez des erreurs dans les manipulations ci-dessous, lisez l’article qui explique comment débuguer les erreurs dans Power Apps.

Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé.

Créer une application pour la fonction GroupBy de collections dans Power Apps

Vous allez créer une application pour les collections dans Power Apps.

Pour cela, ouvrez le site web Microsoft Power Apps.

https://make.powerapps.com/

Ensuite, dans le volet de navigation (à gauche), cliquez sur Applications.

Puis, dans la bannière du volet central (en haut), cliquez sur Nouvelle application (en haut, vers la gauche).

Ensuite, dans le menu qui s’affiche, cliquez sur : Zone de dessin.

Enfin, dans le volet central du nouvel onglet, cliquez sur Mode téléphone sous Application vide.

Notamment, pour vous aider, regardez la copie d’écran ci-dessous.

Démarrer avec un modèle ou un canevas vierge
Démarrer avec un modèle ou un canevas vierge

Enregistrer et renommer l’application des collections dans Power Apps

Vous allez enregistrer et renommer l’application des collections dans Power Apps.

Pour ce faire, cliquez sur le ruban Fichier puis dans le volet de gauche, cliquez sur Enregistrer.

Ensuite, dans le volet central (vers la droite), remplacez le nom de l’application (« Application ») par canGraphiques.

Puis, en bas et à droite de l’écran, cliquez sur le bouton Enregistrer.

Si vous ne voyez pas le bouton Enregistrer, c’est parce que vous êtes dans les Paramètres de l’application. Dans ce cas, cliquez sur Enregistrer.

Enfin, cliquez sur la flèche en haut et à gauche pour revenir à l’accueil.

Créer la collection de données

Dans les exercices téléchargés, ouvrez le fichier Collection du nombre habitants par villes.

En effet, ce fichier contient une fonction ClearCollect qui crée une collection nommée VillesHabitants. Cette collection expose le nombre d’habitants de quelques villes de certains pays.

Pour créer la collection, vous allez ajouter et paramétrer un bouton.

Notamment, dans l’application canGraphiques, ajoutez un bouton, puis changez le texte du bouton :

Button1.Text = "Habitants par villes"

Ensuite copiez le contenu du fichier Collection du nombre habitants par villes dans sa propriété OnSelect (à la place de false).

Puis, appuyez sur la touche F5 de votre clavier.

Puis, cliquez sur le bouton pour créer la collection VillesHabitants.

Enfin, dans le ruban Fichier, vérifiez la présence de la collection.

En particulier, pour vous aider, regardez la copie d’écran ci-dessous.

Collections dans Power Apps : VillesHabitants
Collections dans Power Apps : VillesHabitants

Regrouper les données des collections dans Power Apps avec la fonction GroupBy

Le regroupement doit créer une nouvelle collection de données, nommée PaysHabitants. Celle -ci doit exposer le nombre total d’habitants par pays, en utilisant la fonction GroupBy.

Pour ce faire, ajoutez un bouton, puis changez le texte du bouton :

Button2.Text = "Total par pays"

Par ailleurs, pour vous aider, regardez la copie d’écran ci-dessous.

Boutons de l'application
Boutons de l’application

Ensuite, paramétrez la propriété OnSelect :

Button2.OnSelect = ClearCollect(PaysHabitants; DropColumns(AddColumns(GroupBy(VillesHabitants; "Pays"; "PaysTotal"); "Total";Sum(PaysTotal;Habitants));"PaysTotal"))

Comprendre le raisonnement de cette formule avec GroupBy

Avant d’expliquer en détail la formule avec GroupBy, il faut comprendre le raisonnement qui aboutit à trouver cette formule.

L’objectif est d’avoir un total par pays à partir de la collection VillesHabitants.

Vous trouverez ci-dessous le contenu de cette collection :

{ Ville: « Bruxelles »; Pays: « Belgique »; Habitants: 180000};
{ Ville: « Liège »; Pays: « Belgique »; Habitants: 200000};
{ Ville: « Anvers »; Pays: « Belgique »; Habitants: 500000};
{ Ville: « Genève »; Pays: « Suisse »; Habitants: 500000};
{ Ville: « Zurich »; Pays: « Suisse »; Habitants: 400000};
{ Ville: « Luxembourg »; Pays: « Luxembourg »; Habitants: 620000};
{ Ville: « Paris »; Pays: « France »; Habitants: 2200000};
{ Ville: « Nantes »; Pays: « France »; Habitants: 300000}

Cette collection stocke le nombre d’habitants par ville et par pays : il est donc naturel de regrouper les données par pays. Dans la formule, c’est le rôle de la colonne PaysTotal. La fonction GroupBy créé cette colonne.

Ensuite, il suffit de faire la somme du nombre d’habitants qui se trouve pour chaque ligne de la colonne PaysTotal. Pour chaque pays, cette somme est stockée dans la colonne Total.

La somme est calculée avec la fonction Sum.

La colonne Total est créée avec la fonction AddColumns.

Enfin, la colonne intermédiaire PaysTotal est supprimée avec la fonction DropColumns.

Ci-dessous, vous trouverez une explication plus détaillée.

Mettre en forme la formule avec GroupBy, AddColumns, DropColumns, Sum

Pour comprendre cette formule, il faut repérer le début et la fin de chaque fonction.

Le mieux est d’utiliser la mise en forme proposée par Power Apps.

En effet, regardez la copie d’écran ci-dessous.

Collections dans Power Apps : mise en forme de la formule
Collections dans Power Apps : mise en forme de la formule

ClearCollect

La fonction ClearCollect demande à Power Apps de créer une collection.

Pour ce faire, Power Apps créé une table en mémoire qui sera la future collection de données.

Ensuite, le premier argument donne le nom de la collection : PaysHabitants. Power Apps le note.

Puis, le second argument contient les champs avec leurs données. Dans un premier temps, oublions les fonctions DropColumns et AddColumns.

Intéressons-nous à la fonction GroupBy.

GroupBy Power Apps

La fonction GroupBy va créer une nouvelle colonne qui se nomme PaysTotal, à partir des données de la collection VillesHabitants :

GroupBy(VillesHabitants;"Pays";"PaysTotal")

Par construction, cette colonne est donc une table qui regroupe les données de VillesHabitants par pays.

Par exemple pour la Belgique, son contenu ressemble à cette copie d’écran:

Colonne PaysTotal pour la Belgique
Colonne PaysTotal pour la Belgique

AddColumns et Sum Power Apps

Nous venons de voir que le premier argument de la fonction suivante renvoie une table par pays :

AddColumns(GroupBy(VillesHabitants;"Pays";"PaysTotal");"Total";Sum(PaysTotal;Habitants))

Le second argument créé une nouvelle colonne, qui se nomme Total. Par construction, celle-ci est alimentée avec la formule du troisième argument.

En effet, la somme de la colonne Habitants de chaque table est faite avec la fonction :

Sum(PaysTotal;Habitants)

DropColumns Power Apps

Dans la mesure où la colonne PaysTotal ne contient pas le résultat final, il ne sert à rien de la garder. C’est un simple résultat intermédiaire.

La colonne PaysTotal est donc supprimée avec la fonction :

DropColumns(AddColumns(GroupBy(VillesHabitants; "Pays"; "PaysTotal"); "Total";Sum(PaysTotal;Habitants));"PaysTotal"))

En résumé, la colonne PaysTotal a été créée avec la fonction GroupBy, elle a servi à calculer le total par pays puis elle a été supprimée avec la fonction DropColumns.

Vérifier la formule

Appuyez sur la touche F5 de votre clavier.

Ensuite, cliquez sur le bouton avec l’intitulé Habitants par villes, pour créer la collection VillesHabitants, qui contient les données en entrée.

Puis, cliquez sur le bouton avec l’intitulé Total par pays, pour créer la collection PaysHabitants, qui contient le regroupement.

Enfin, dans le ruban Fichier, vérifiez la présence de la collection.

Pour vous aider, regardez la copie d’écran ci-dessous qui présente le résultat attendu.

Collection PaysHabitants (partiel)
Collection PaysHabitants (partiel)

La manipulation est terminée.

Résumé

Dans cette manipulation, vous avez découvert comment regrouper les données des collections Power App, et vous avez vu une méthode de résolution de problème.

Ces techniques sont évidemment applicables à d’autres sources de données : Listes SharePoint, Tables SQL Server, Entités CDS, etc.

Vous avez aussi appris comment mettre en forme une formule Power Apps complexe.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *