Objectif : Construire une application SharePoint des codes postaux.
Point 1
Importer un fichier des codes postaux avec Power Query d'Excel.
Se rendre sur https://www.data.gouv.fr
Ouvrir Excel.
Dans le groupe Récupérer et Transformer des données cliquer sur A partir du web.
Ouvrir Power Query A partir du web et copier l'url.
Changer le nom de la requête.
Ouvrir comme CSV.
A partir de l'onglet transformer.
Transformer les colonnes Codes commune et code postal en texte.
Enregistrer dans Excel.
Exporter le tableau vers une liste SharePoint.
Attendre un certain temps... 39201 enregistrements
Point 2
Une fois dans SharePoint :
Créer une app à partir de la liste SharePoint.
Message d'erreur la première fois.
Astuce : Créer un index dans SharePoint à partir de paramètre de liste.
Supprimer l'application « cp » PowerApps préalablement créée et la recréer.
Le même message apparaît.
Cliquer sur BrowseGallery1 et modifier la fonctionnalité Items comme suit :
Remplacer Title par Code_postal (index récemment créé).
L'erreur a disparu et la galerie se charge.
Modifier la disposition de BrowseGallery1.
Cliquer sur Titre, sous-titre et corps.
Modifier la disposition et choisir Titre et sous-titre.
Et changer Title2 en Code_postal.
Tester : ça marche !
Enregistrer et publier la version.
Point 3
Allons plus loin.
Créer un deuxième index sur Nom_commune.
Puis construire Items de BrowseGallery1 comme ceci :
Avant
SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending))
Après
SortByColumns(Filter(cp; StartsWith(Nom_commune; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending))
Ce qui permet désormais de rechercher par nom de commune.
Point 4
Plus fort encore :
Construire Items BrowseGallery1 comme ceci :
If(IsNumeric(TextSearchBox1.Text);SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending));SortByColumns(Filter(cp; StartsWith(Nom_commune; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending)))
Ceci permet de chercher soit par code postal soit par nom de commune.
Enregistrer et publier.
Possibilité de ne garder que les 5 premiers éléments à afficher.
If(IsNumeric(TextSearchBox1.Text);
FirstN(SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending));5);
FirstN(SortByColumns(Filter(cp; StartsWith('Nom_commune'; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending));5))