Modifier les colonnes à partir de votre source de données
Lorsque vous utilisez des lignes de données dans Power Apps, des fonctions telles que Filtrer et Rechercher permettent d’affiner les lignes elles-mêmes. Cependant, dans certains scénarios, vous devez manipuler les colonnes de ces lignes sans modifier la source de données d’origine.
Imaginez créer une application de gestion des paniers d’achat dans laquelle vous souhaitez suivre les articles sélectionnés. Dans de tels cas, disposer d’une colonne temporaire uniquement dans Power Apps, sans affecter la source de données d’origine, devient crucial.
Heureusement, Power Apps fournit un ensemble de fonctions adaptées à cet effet. Ces fonctions vous permettent de modifier les colonnes dans l’environnement de votre application, affectant ainsi la manière dont les données sont traitées ou présentées sans apporter de modifications à la source de données sous-jacente. Ainsi, vos modifications telles que le suivi des éléments sélectionnés dans un scénario de panier d’achat sont confinées dans l’application et n’affectent pas la source de données à proprement parler. Voici ces fonctions :
AddColumns
DropColumns
RenameColumns
ShowColumns
AddColumns
La fonction AddColumns ajoute une colonne à une table, et une formule définit les valeurs dans cette colonne. Les colonnes existantes restent inchangées.
Dans l’exemple précédent d’une application de panier d’achat, vous utilisez la fonction AddColumns pour ajouter une colonne permettant de suivre si l’utilisateur a sélectionné la colonne. Pour ce faire, vous définissez la formule suivante pour la propriété OnSelect d’un contrôle Bouton.
ClearCollect(collectDigitalAssets, AddColumns(YourDataSource,"UserSelected", false))
Lorsque ce bouton est sélectionné, la formule crée une collection nommée collectDigitalAssets, qui contient toutes les lignes de YourDataSource et ajoute la colonne « UserSelected ». La valeur de la colonne est false pour toutes les lignes.
À présent, dans votre contrôle Galerie, définissez la propriété items sur la valeur suivante.
collectDigitalAssets
Dans le contrôle Galerie, vous avez accès à une colonne nommée UserSelected dont la valeur doit être false. Vous pouvez ensuite ajouter un bouton à votre contrôle Galerie, pour lequel OnSelect corrige la colonne sur la valeur true.
Patch(collectDigitalAssets, ThisItem, {UserSelected: true})
À présent, dans la collection collectDigitalAssets, vous suivez les lignes que l’utilisateur a sélectionnées dans votre application, sans modifier les colonnes dans votre source de données.
DropColumns
La fonction DropColumns fonctionne à l’inverse de la fonction AddColumns. La fonction est utilisée pour supprimer des colonnes de la table dans Power Apps. Cette fonction est utilisée lorsque vous souhaitez créer dans Power Apps une collection qui a plusieurs colonnes pour les fonctionnalités de l’application. Comme ces colonnes sont ajoutées uniquement dans la collection pour les fonctionnalités de l’application et ne sont pas envoyées à la source de données, la fonction DropColumns est nécessaire pour supprimer la colonne après l’envoi à la source de données.
Par exemple, vous créez une collection nommée collectTimeTracking pour l’utiliser dans une application de suivi du temps. La collection comprend cinq colonnes : Name, HoursWorked, DateWorked, LastScreen et Status. Les colonnes Name, HoursWorked et DateWorked suivent les données à enregistrer dans YourDataSource en fonction des heures travaillées par un collaborateur. Les colonnes LastScreen et Status stockent les données pour fournir les fonctionnalités d’application pendant que l’utilisateur utilise l’application.
Lorsque l’utilisateur a terminé, la fonction Collect est un moyen d’enregistrer les informations de nouveau dans une source de données. Si les colonnes correspondent entre la source de données, la fonction Collect écrit toutes les lignes dans votre collection. Dans cet exemple, Name, HoursWorked et DateWorked sont les seules colonnes dans la source de données. LastScreen et Status n’existent pas dans la source de données et n’ont pas besoin d’être enregistrées. DropColumns vous permet d’envoyer uniquement les colonnes appropriées dans la source de données.
Collect(YourDataSource, DropColumns(collectTimeTracking, "LastScreen","Status"))
Cette fonction écrit le contenu de la collection collectTimeTracking dans la source de données YourDataSource après suppression des colonnes LastScreen et Status. Notez que DropColumns n’a pas modifié votre collection collectTimeTracking. Les colonnes LastScreen et Status sont toujours disponibles dans la collection.
RenameColumns
Utilisez la fonction RenameColumns lorsque vous devez manipuler le nom de la colonne dans votre application, mais pas dans votre source de données. Cette fonction est couramment utilisée lorsque la source de données, que vous ne pouvez pas modifier, rencontre des difficultés pour référencer le nom de colonne ou lorsque le nom de colonne utilise des mots réservés tels que « Date ».
Vous pouvez utiliser la fonction lors du stockage de données dans une collection. La fonction Collect peut extraire le contenu de votre source de données et le stocker dans une collection.
Collect(collectProjectData, ProjectDataSource)
Cette formule crée une collection nommée collectProjectData, qui stocke toutes les lignes de données de la source de données ProjectDataSource. Si la source de données a une colonne nommée Date, il peut s’avérer plus facile de travailler dans Power Apps en renommant cette colonne ProjectDate. Pour ce faire, vous pouvez utiliser la formule suivante au lieu de l’exemple précédent.
Collect(collectProjectData, RenameColumns(ProjectDataSource, "Date","ProjectDate"))
Vous disposez des mêmes lignes. À présent, au lieu d’être nommée Date, la colonne se nomme ProjectDate dans votre collection. Cela vous permet d’attribuer aux colonnes des noms plus explicites qui faciliteront votre travail dans l’application.
ShowColumns
La fonction ShowColumns permet d’afficher une ou plusieurs colonnes de votre source de données. Utilisez-la avec des contrôles là où vous souhaitez qu’une seule colonne soit renvoyée. Un exemple courant est le contrôle Liste déroulante.
Avec le contrôle Liste déroulante, il est courant de fournir les options à l’aide d’une source de données telle qu’une table Microsoft Dataverse. Lorsque vous définissez la propriété Items sur une source de données, Power Apps choisit la colonne à afficher si vous en avez plusieurs. Vous pouvez sélectionner la colonne que vous souhaitez afficher à l’aide de la fonction ShowColumns.
Si vous souhaitez utiliser une source de données nommée Customers pour afficher les noms de clients à partir de la colonne CustomerName, utilisez la formule suivante dans la propriété Items du contrôle Liste déroulante.
ShowColumns(Customers, "CustomerName")
Avec cette formule, la colonne Dropdown affiche les valeurs provenant de la colonne CustomerName.
ShowColumns peut également renvoyer plusieurs colonnes. Le contrôle Liste déroulante affiche uniquement la première colonne, mais vous avez accès à toutes les colonnes récupérées. L’exemple suivant montre comment ajouter la colonne ID à votre contrôle Liste déroulante.
ShowColumns(Customers, "CustomerName", "ID")
La liste déroulante affiche uniquement la valeur de la colonne CustomerName dans le contrôle Liste déroulante. Toutefois, avec cette formule, vous avez maintenant accès à la valeur de la colonne ID. Ajoutez un contrôle Libellé à l’écran et définissez Text sur la valeur suivante. Si votre liste déroulante ne se nomme pas DropDown1, modifiez la formule en conséquence.
Dropdown1.Selected.ID
La formule renvoie la valeur de la colonne ID pour la ligne sélectionnée dans votre contrôle Liste déroulante.