Fonctions AddColumns, DropColumns, RenameColumns et ShowColumns

S’applique à : Applications canevas Flux de bureau Applications pilotées par modèle CLI Power Platform

Permet de façonner une table en ajoutant et en supprimant des colonnes, en les renommant et en les sélectionnant.

La fonction **ForAll peut également être utilisée pour façonner une table, en renvoyant une table de nouveaux enregistrements créés à partir de colonnes existantes.

Résumé

Ces fonctions façonnent une table en ajustant ses colonnes :

  • Réduisez une table contenant plusieurs colonnes à une table contenant une seule colonne à utiliser avec des fonctions à colonne unique, par exemple Lower ou Sqrt.
  • Vous ajoutez une colonne calculée à une table (par exemple, une colonne Prix total dont les résultats correspondent à la multiplication du champ Quantité par le champ Prix unitaire).
  • Vous renommez une colonne et lui donnez un nom plus pertinent pour les utilisateurs ou pour une utilisation dans des formules.

Une table est une valeur dans Power Apps, au même titre qu’une chaîne ou qu’un chiffre. Vous pouvez spécifier une table en tant qu’argument dans une formule, et les fonctions peuvent renvoyer une table comme résultat.

Note

Les fonctions décrites dans cette rubrique ne modifient pas la table d’origine. Au lieu de cela, elles prennent une table en tant qu’argument et renvoient une nouvelle table en lui appliquant une transformation. Pour plus d’informations, voir Utilisation des tables.

Vous ne pouvez pas modifier les colonnes d’une source de données à l’aide de ces fonctions. Vous devez modifier les données à la source. Vous pouvez ajouter des colonnes à une collection avec la fonction Collect. Pour plus d’informations, voir Utilisation des sources de données.

Description

La fonction AddColumns ajoute une colonne à une table, tandis qu’une formule définit les valeurs de cette colonne. Les colonnes existantes restent inchangées.

La formule est évaluée pour chaque enregistrement de la table.

Les champs de l’enregistrement en cours de traitement sont disponibles dans la formule. Utilisez l’opérateur ThisRecord ou référencez simplement les champs par leur nom comme vous le feriez pour toute autre valeur. L’opérateur As peut également être utilisé pour nommer l’enregistrement en cours de traitement, ce qui peut faciliter la compréhension de votre formule et rendre les enregistrements imbriqués accessibles. Pour plus d’informations, consultez les exemples ci-dessous et la section Utilisation de l’étendue de l’enregistrement.

La fonction DropColumns exclut des colonnes d’une table. Toutes les autres colonnes restent inchangées. DropColumns exclut des colonnes, tandis que ShowColumns en inclut.

Utilisez la fonction RenameColumns pour renommer une ou plusieurs colonnes d’une table, en fournissant au moins une paire argument qui spécifie le nom d’une colonne contenue dans la table (l’ancien nom que vous devez remplacer) et le nom d’une colonne qui n’est pas contenue dans la table (le nouveau nom que vous souhaitez utiliser). L’ancien nom doit déjà exister dans la table, et le nouveau nom ne doit pas exister. Chaque nom de colonne ne peut apparaître qu’une seule fois dans la liste d’arguments, comme un ancien nom de colonne ou comme un nouveau nom de colonne. Pour renommer une colonne à l’aide d’un nom de colonne existant, commencez par supprimer la colonne existante avec DropColumns. Vous pouvez également renommer la colonne existante en imbriquant une fonction RenameColumns dans une autre.

La fonction ShowColumns inclut les colonnes d’une table et supprime toutes les autres colonnes. Vous pouvez utiliser ShowColumns pour créer une table à une colonne à partir d’une table à plusieurs colonnes. DropColumns inclut des colonnes et ShowColumns exclut des colonnes.

Pour toutes ces fonctions, le résultat est une nouvelle table présentant une transformation. La table d’origine n’est pas modifiée. Vous ne pouvez pas modifier une table existante avec une formule. SharePoint, Microsoft Dataverse, SQL Server et d’autres sources de données fournissent des outils pour modifier les colonnes des listes, des tables et des tables, qui sont souvent appelées schéma. Les fonctions de cet article transforment uniquement une table d’entrée, sans modifier l’original, en une table de sortie pour une utilisation ultérieure.

Les arguments de ces fonctions prennent en charge la délégation. Par exemple, une fonction Filter utilisée comme argument pour extraire les recherches d’enregistrements associés dans toutes les listes, même si la source de données[dbo].[AllListings] contient un million de lignes :

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Toutefois, la sortie de ces fonctions est soumise à la limite d’enregistrement de non-délégation. Dans cet exemple, seuls 500 enregistrements sont renvoyés même si la source de données RealEstateAgents a 501 enregistrements ou plus.

Si vous utilisez AddColumns de cette façon, Filter doit effectuer des appels séparés à la source de données pour chacun de ces premiers enregistrements dans RealEstateAgents, ce qui entraîne beaucoup d’appels sur le réseau. Si [dbo](.[AllListings] est suffisamment petit et ne change pas souvent. Vous pouvez appeler la fonction Collect dans OnStart pour mettre en cache la source de données dans votre application au démarrage. Comme alternative, vous pouvez restructurer votre application de manière à extraire les enregistrements associés uniquement lorsque l’utilisateur les demande.

Note

Dans Power Apps avant la version 3.24042, les noms de colonnes étaient spécifiés avec une chaîne de texte utilisant des guillemets doubles et, s’ils étaient connectés à une source de données, ils devaient également être des noms logiques. Par exemple, le nom logique "cr43e_name" avec des guillemets doubles a été utilisé à la place du nom complet Nom sans guillemets. Pour les sources de données SharePoint et Excel contenant des noms de colonnes avec des espaces, chaque espace était spécifié avec "_x0020_", par exemple "Nom de la colonne" comme "Column_x0020_Name". Après cette version, toutes les applications ont été automatiquement mises à jour sur la nouvelle syntaxe décrite dans cet article.

Syntaxe

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table : obligatoire. Table à utiliser.
  • ColumnName(s) : obligatoire. Noms des colonnes à ajouter.
  • Formula(s) : obligatoire. Formules à évaluer pour chaque enregistrement. Le résultat est ajouté en tant que valeur de la nouvelle colonne correspondante. Vous pouvez référencer d’autres colonnes de la table dans cette formule.

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table : obligatoire. Table à utiliser.
  • ColumnName(s) : obligatoire. Noms des colonnes à supprimer.

RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • Table : obligatoire. Table à utiliser.
  • OldColumnName(s) : obligatoire. Noms des colonnes à renommer dans la table d’origine. Cet élément apparaît en premier dans la paire argument (ou en premier dans chaque paire argument si la formule comprend plusieurs paires).
  • NewColumnName(s) : obligatoire. Noms de remplacement. Cet élément apparaît en dernier dans la paire argument (ou en dernier dans chaque paire argument si la formule comprend plusieurs paires).

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table : obligatoire. Table à utiliser.
  • ColumnName(s) : obligatoire. Noms des colonnes à inclure.

Examples

Dans les exemples de cette section, nous allons utiliser la source de données IceCreamSales qui contient les données de cette table :

Exemple de glace.

Aucun de ces exemples ne modifie la source de données IceCreamSales. Chaque fonction transforme la valeur de la source de données en table et renvoie cette valeur en tant que résultat.

Formula Description Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Ajoute une colonne Revenue au résultat. Pour chaque enregistrement, la valeur UnitPrice * QuantitySold est calculée, et le résultat placé dans la nouvelle colonne. Résultat avec la fraise, le chocolat et la Vanille.
DropColumns( IceCreamSales, UnitPrice ) Exclut la colonne UnitPrice du résultat. Utilisez cette fonction pour exclure des colonnes et utilisez ShowColumns pour les inclure. Résultat avec Fraise, Chocolat, Vanille n’ayant que la colonne QuantitySold.
ShowColumns( IceCreamSales, Flavor ) Inclut uniquement la colonne Flavor dans le résultat. Utilisez cette fonction pour inclure des colonnes et utilisez DropColumns pour les exclure. Colonne Saveur uniquement.
RenameColumns( IceCreamSales, UnitPrice, Price) Renomme la colonne UnitPrice dans le résultat. Résultat avec saveur, prix et revenu.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) Renomme les colonnes UnitPrice et QuantitySold dans le résultat. Résultat avec 3 glaces et colonnes comme Saveur, Prix, Revenu.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Quantity )
Effectue les transformations de table suivantes dans l’ordre, à partir de celles figurant dans la formule :
  1. Ajoute une colonne Revenue qui dépend du calcul par enregistrement de UnitPrice * Quantity.
  2. Renomme UnitPrice sur Price.
  3. Exclut la colonne Quantity.
L’ordre est important, par exemple, nous ne pouvons pas effectuer de calcul avec la colonne UnitPrice après qu’elle est renommée.
Exemple de glace pour le prix unitaire.

Pas à pas

Essayons quelques exemples plus tôt dans cet article.

  1. Créez une collection en ajoutant un contrôle Button et définissez sa propriété OnSelect en utilisant la formule suivante :

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. Exécutez la formule en sélectionnant le bouton tout en maintenant la touche Alt enfoncée.

  3. Ajoutez un deuxième contrôle Button et définissez sa propriété OnSelect sur la formule suivante, puis exécutez-le :

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. Dans le menu Fichier, sélectionnez Collections, puis IceCreamSales pour afficher cette collection.

    Comme le montre ce graphique, la deuxième formule n’a pas modifié cette collection. La fonction AddColumns a utilisé IceCreamSales comme argument en lecture seule ; la fonction n’a pas modifié la table à laquelle cet argument se réfère.

    Visionneuse de collection montrant trois enregistrements de la collection Ice Cream Sales qui n’inclut pas de colonne Revenue.

  5. Sélectionnez FirstExample.

    Comme le montre ce graphique, la deuxième formule a renvoyé une nouvelle table avec la colonne ajoutée. La fonction ClearCollect a capturé la nouvelle table dans la collection FirstExample, en ajoutant quelque chose à la table d’origine au fur et à mesure qu’elle circulait dans la fonction sans modifier la source :

    Visionneuse de collection montrant trois enregistrements de la collection Premier exemple qui inclut une nouvelle colonne Revenue.

Mapper des colonnes dans un composant

Reportez-vous à la rubrique Mapper les colonnes.