Partager via


AddColumns, DropColumns, RenameColumnset ShowColumns fonctions

S’applique à : Les applications Canvas Copilot Studio Desktop circulent des applications basées sur des modèles et des fonctions Dataverse power Platform CLI

Forme une table ou un enregistrement en ajoutant, en supprimant, en renommant et en sélectionnant ses colonnes.

La fonction ForAll peut également être utilisée pour mettre en forme une table en retournant une table de nouveaux enregistrements créés à partir de colonnes existantes.

Résumé

Ces fonctions forment une table ou un enregistrement en ajustant ses colonnes :

  • Réduisez une table ou un enregistrement qui contient plusieurs colonnes jusqu’à une seule colonne à utiliser avec des fonctions à colonne unique, telles que Lower ou Sqrt.
  • Ajoutez une colonne calculée à une table ou un enregistrement (par exemple, une colonne Total Price qui affiche les résultats de la multiplication de la quantité par 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 AddColumns fonction ajoute une colonne à une table ou un enregistrement, et une formule définit les valeurs de cette colonne. Les colonnes existantes restent inchangées.

La formule est évaluée pour l’enregistrement fourni ou pour chaque enregistrement de la table fournie.

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 DropColumns fonction exclut les colonnes d’une table ou d’un enregistrement. Toutes les autres colonnes restent inchangées. DropColumns exclut les colonnes et ShowColumns inclut des colonnes.

Utilisez la RenameColumns fonction pour renommer une ou plusieurs colonnes d’une table ou d’un enregistrement en fournissant au moins une paire d’arguments qui spécifie le nom d’une colonne que contient la table ou l’enregistrement (l’ancien nom, que vous souhaitez remplacer) et le nom d’une colonne que la table ou l’enregistrement ne contient pas (le nouveau nom, que vous souhaitez utiliser). L’ancien nom doit déjà exister dans la table ou l’enregistrement, 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 sous la forme d’un ancien nom de colonne ou d’un nouveau nom de colonne. Pour renommer une colonne en nom de colonne existant, supprimez d’abord la colonne DropColumnsexistante avec , ou renommez la colonne existante en imbrication d’une fonction dans une RenameColumns autre.

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

Pour toutes ces fonctions, le résultat est une nouvelle table ou un enregistrement avec la transformation appliquée. La table ou l’enregistrement d’origine n’est pas modifié. Vous ne pouvez pas modifier une table ou un enregistrement existant avec une formule. SharePoint, Microsoft Dataverse, SQL Server et d’autres sources de données fournissent des outils permettant de modifier les colonnes de listes et de tables, souvent appelées schéma. Les fonctions de cette rubrique transforment uniquement une table ou un enregistrement d’entrée, sans modifier l’original, en une table de sortie ou un enregistrement 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 cette méthode, Filter doit effectuer des appels distincts à la source de données pour chacun de ces premiers enregistrements dans RealEstateAgents, ce qui provoque un grand nombre de conversations 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( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • TableOrRecord - Obligatoire. Table ou enregistrement sur lequel opérer.
  • ColumnNames - Obligatoire. Noms des colonnes à ajouter.
  • Formules - 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 ou de l’enregistrement dans cette formule.

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

  • TableOrRecord - Obligatoire. Table ou enregistrement sur lequel opérer.
  • ColumnNames - Obligatoire. Noms des colonnes à supprimer.

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

  • TableOrRecord - Obligatoire. Table ou enregistrement sur lequel opérer.
  • OldColumnNames - Obligatoire. Noms des colonnes à renommer à partir de la table ou de l’enregistrement 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).
  • NewColumnNames - 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( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord - Obligatoire. Table ou enregistrement sur lequel opérer.
  • ColumnNames - 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 les colonnes et les ShowColumns 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 incluent des colonnes et utilisez-les 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 ),
Quantité )
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 AddColumns fonction a utilisé IceCreamSales comme argument en lecture seule ; la fonction n’a pas modifié la table à laquelle cet argument fait référence.

    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.