Partage via


Créer une galerie de détails dans une application canevas

Suivez les instructions pas à pas pour créer une galerie de détails dans une application canevas pour gérer les données fictives dans la base de données Northwind Traders. Cette rubrique fait partie d’une série qui explique comment créer une application métier sur des données relationnelles dans Microsoft Dataverse. Pour de meilleurs résultats, explorez ces rubriques dans cette séquence :

  1. Créez une galerie de commandes.
  2. Créez un formulaire de synthèse.
  3. Créer une galerie de détails (cette rubrique).

Définition des zones d’écran.

Conditions préalables

Avant de démarrer cette rubrique, vous devez installer la base de données comme décrit précédemment dans cette rubrique. Vous devez alors soit créer la galerie de commandes et le formulaire de résumé, soit ouvrir l’application Commandes Northwind (canevas) - Début Partie 3, qui contient déjà cette galerie et ce formulaire.

Créer une autre barre de titre

  1. En haut de l’écran, sélectionnez le contrôle Étiquette qui agit comme une barre de titre, copiez-le en appuyant sur Ctrl-C, puis collez-le en appuyant sur Ctrl-V :

    Copiez et collez la barre de titre.

  2. Redimensionnez et déplacez la copie pour qu’elle apparaisse juste sous le formulaire de résumé.

  3. Supprimez le texte de la copie de l’une des manières suivantes :

    • Double-cliquez sur le texte pour le sélectionner, puis appuyez sur Supprimer.
    • Définissez la propriété Text sur une chaîne vide ("").

    Supprimer le texte de la copie de la barre de titre.

  1. Insérez un contrôle Galerie avec une disposition verticale vierge :

    Ajouter une galerie verticale vierge.

    La nouvelle galerie, qui affichera les détails de la commande, apparaît dans l’angle supérieur gauche.

  2. Fermez la boîte de dialogue volante de la source de données, puis redimensionnez et déplacez la galerie de détails dans l’angle inférieur droit, sous la nouvelle barre de titre :

    Emplacement final de la galerie des détails de la commande.

  3. Définissez la propriété Items de la galerie de détails sur la formule suivante :

    Gallery1.Selected.'Order Details'
    

    Définir la propriété Items de la galerie de détails.

    Si une erreur apparaît, confirmez que la galerie de commandes est nommée Gallery1 (dans le volet Arborescence près du bord gauche). Si cette galerie a un autre nom, renommez-la Gallery1.

    Vous venez de lier les deux galeries. Lorsque l’utilisateur sélectionne une commande dans la galerie de commandes, cette sélection identifie un enregistrement dans la table Commandes. Si cette commande contient un ou plusieurs postes, l’enregistrement dans la table Commandes est liée à un ou plusieurs enregistrements dans la Détails de la commande et les données de ces enregistrements s’affichent dans la galerie de détails. Ce comportement reflète la relation un-à-plusieurs qui a été créée pour vous entre les tables Commandes et Détails de la commande. La formule que vous avez spécifiée « accompagne » cette relation en utilisant la notation par points :

    Relation un-à-plusieurs entre la table Commandes et la table Détails de la commande.

Afficher les noms des produits

  1. Dans la galerie des détails, sélectionnez Ajouter un article à partir de l’onglet Insertion pour sélectionner le modèle de la galerie :

    Sélectionner le modèle pour la galerie de détails.

    Veillez à avoir sélectionné le modèle de galerie au lieu de la galerie elle-même. Le cadre englobant doit être légèrement à l’intérieur des limites de la galerie et probablement plus court que la hauteur de la galerie. Lorsque vous insérez des contrôles dans ce modèle, ils sont répétés pour chaque élément de la galerie.

  2. Sous l’onglet Insertion, insérez une Étiquette dans la galerie de détails.

    L’Étiquette doit apparaître dans la galerie ; si ce n’est pas le cas, réessayez, mais veillez à bien sélectionner le modèle de la galerie avant d’insérer l’étiquette.

    Ajouter une Étiquette à la galerie des détails.

  3. Définissez la propriété Text de la nouvelle Étiquette sur cette formule :

    ThisItem.Product.'Product Name'
    

    Si aucun texte n’apparaît, sélectionnez la flèche pour Commande 0901 à proximité du bas de la galerie de commandes.

  4. Redimensionnez l’étiquette pour que le texte complet apparaisse :

    Afficher le nom du produit dans les détails de la commande.

    Cette expression part d’un enregistrement dans la table Détails de la commande. Le record est détenu dans ThisItem vers la table Commander des produits via une relation plusieurs-à-un :

    Relation plusieurs-à-un entre la table Détails de la commande et la table Produit de la commande.

    La colonne Nom du produit (et les autres colonnes que vous êtes sur le point d’utiliser) sont extraites :

    Colonne de la table Produits commandés.

Afficher les images de produits

  1. Sous l’onglet Insertion, insérez un contrôle Image dans la galerie de détails :

    Insérer un contrôle Image sur le canevas.

  2. Redimensionnez et déplacez l’image et l’étiquette pour qu’elles soient côte à côte.

    Conseil

    Pour un contrôle précis de la taille et de la position d’un contrôle, commencez à le redimensionner ou à le déplacer sans appuyer sur la touche Alt, puis continuez à redimensionner ou à déplacer le contrôle tout en maintenant la touche Alt enfoncée :

    Déplacer le contrôle Image.

  3. Définissez la propriété Image sur la formule suivante :

    ThisItem.Product.Picture
    

    Encore une fois, l’expression fait référence à un produit associé à ce détail de commande et à l’extraction du champ Image à afficher.

    Afficher l’image de produits.

  4. Réduisez la hauteur du modèle de la galerie afin que plusieurs enregistrements Détails de la commande s’affichent à la fois :

    Raccourcir le modèle de la galerie.

Afficher la quantité et le coût du produit

  1. Sur l’onglet Insertion, insérez une autre Étiquette dans la galerie de détails, puis redimensionnez et déplacez la nouvelle Étiquette à droite des informations sur le produit.

  2. Définissez la propriété Text de la nouvelle Étiquette sur cette expression :

    ThisItem.Quantity
    

    Cette formule extrait les informations directement de la table détails de la commande (aucune relation requise).

    Afficher la quantité de produits.

  3. Sous l’onglet Accueil, changez l’alignement de ce contrôle sur Droite :

    Changer l’alignement à droite.

  4. Sur l’onglet Insertion, insérez une autre Étiquette dans la galerie de détails, puis redimensionnez et déplacez la nouvelle Étiquette à droite de l’étiquette de quantité.

  5. Définissez la propriété Text de la nouvelle Étiquette sur cette formule :

    Text( ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )
    

    Si vous n’incluez pas la balise de langue ([$ -en-US]), elle est ajoutée pour vous en fonction de votre langue et de votre région. Si vous utilisez une balise de langue différente, vous souhaitez supprimer le $ juste après le crochet carré (]), puis vous ajoutez votre propre symbole monétaire à cette position.

    Afficher le prix unitaire.

  6. Sous l’onglet Accueil, changez l’alignement de ce contrôle sur Droite :

    Changer l’alignement vers la droite.

  7. Sur l’onglet Insertion, insérez un autre contrôle d’étiquette dans la galerie de détails, puis redimensionnez et déplacez la nouvelle Étiquette à droite du prix unitaire.

  8. Définissez la propriété Text de la nouvelle Étiquette sur cette formule :

    Text( ThisItem.Quantity * ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )
    

    À nouveau, si vous n’incluez pas la balise de langue ([$ -en-US]), elle est ajoutée pour vous en fonction de votre langue et de votre région. Si la balise est différente, vous voudrez utiliser votre propre symbole monétaire au lieu de $ juste après le crochet carré (]).

    Afficher le prix global.

  9. Sous l’onglet Accueil, changez l’alignement de ce contrôle sur Droite :

    Changer l’alignement à droite.

    Vous avez terminé d’ajouter des contrôles à la galerie de détails pour l’instant.

  10. Dans le volet Arborescence, sélectionnez Screen1 pour vous assurer que la galerie de détails n’est plus sélectionnée.

Ajouter du texte à la nouvelle barre de titre

  1. Sous l’onglet Insertion, insérez une autre Étiquette sur l’écran :

    Capture d’écran de l’étiquette d’insertion.

  2. Redimensionnez et déplacez la nouvelle Étiquette au-dessus des images des produits dans la deuxième barre de titre, puis changez la couleur du texte en blanc sur l’onglet Accueil.

  3. Double-cliquez sur le texte de l’étiquette, puis tapez Produit :

    Changer le texte de l’étiquette sur Produit.

  4. Copiez et collez l’étiquette du produit, puis redimensionnez et déplacez la copie au-dessus de la colonne de quantité.

  5. Double-cliquez sur le texte de la nouvelle Étiquette, puis tapez Quantité :

    Changer le texte de l’étiquette sur Quantité.

  6. Copiez et collez l’étiquette de quantité, puis redimensionnez et déplacez la copie au-dessus de la colonne de prix unitaire.

  7. Double-cliquez sur le texte de la nouvelle Étiquette, puis tapez Prix unitaire :

    Changer le texte de l’étiquette sur Prix unitaire.

  8. Copiez et collez l’étiquette de prix unitaire, puis redimensionnez et déplacez la copie au-dessus de la colonne de prix global.

  9. Double-cliquez sur le texte de la nouvelle Étiquette, puis tapez Global :

    Changer le texte de l’étiquette sur Global.

Totaux de l’ordre d’affichage

  1. Réduisez la hauteur de la galerie de détails pour faire de la place aux totaux de commande en bas de l’écran :

    Raccourcir la galerie des détails de la commande.

  2. Copiez et collez la barre de titre au milieu de l’écran, puis déplacez la copie vers le bas de l’écran :

    Copier la barre de titre et déplacer la copie vers le bord inférieur.

  3. Copiez et collez l’étiquette du produit à partir de la barre de titre du milieu, puis déplacez la copie vers la barre de titre du bas, juste à gauche de la colonne Quantité.

  4. Double-cliquez sur le texte de la nouvelle Étiquette, puis tapez le texte suivant :
    Totaux de commande :

    Ajouter une Étiquette pour les totaux des commandes.

  5. Copiez et collez l’étiquette de totaux de commande, puis redimensionnez et déplacez la copie à droite de l’étiquette de totaux de commande.

  6. Définissez la propriété Text de la nouvelle Étiquette sur cette formule :

    Sum( Gallery1.Selected.'Order Details', Quantity )
    

    Cette formule affiche un avertissement de délégation, mais vous pouvez l’ignorer, car aucune commande ne contiendra plus de 500 produits.

  7. Sous l’onglet Accueil, définissez l’alignement du texte de la nouvelle Étiquette sur Droite :

    Modifier l’alignement.

  8. Copiez et collez ce contrôle Étiquette, puis redimensionnez et déplacez la copie en dessous de la colonne Globale.

  9. Définissez la propriété Text de la copie sur cette formule :

    Text( Sum( Gallery1.Selected.'Order Details', Quantity * 'Unit Price' ), "[$-en-US]$ #,###.00" )
    

    Cette formule affiche un avertissement de délégation, mais vous pouvez l’ignorer, car aucune commande ne contiendra plus de 500 produits.

    Afficher le coût total de la commande.

Ajouter de l’espace pour de nouveaux détails

Dans n’importe quelle galerie, vous pouvez afficher des données, mais vous ne pouvez pas les mettre à jour ou ajouter des enregistrements. Sous la galerie de détails, vous allez ajouter une zone où l’utilisateur peut configurer un enregistrement dans la table Détails de la commande et insérez cet enregistrement dans une commande.

  1. Réduisez suffisamment la hauteur de la galerie de détails pour faire de la place pour un espace d’édition d’un seul élément sous cette galerie.

    Dans cet espace, vous allez ajouter des contrôles afin que l’utilisateur puisse ajouter un détail de commande :

    Raccourcir la galerie des détails.

  2. Sous l’onglet Insertion, insérez une Étiquette, puis redimensionnez-la et déplacez-la sous la galerie de détails.

    Insérer une Étiquette.

  3. Double-cliquez sur le texte de la nouvelle Étiquette, puis appuyez sur Supprimer.

  4. Sous l’onglet Accueil, définissez la couleur Remplissage de la nouvelle Étiquette sur Bleu clair :

    Changer le remplissage de l’étiquette sur Bleu clair.

Sélectionner un produit

  1. Dans l’onglet Insertion, sélectionnez Contrôles > Zone de liste modifiable :

    Insérer une zone de liste déroulante.

    Le contrôle Zone de liste modifiable apparaît dans l’angle supérieur gauche.

  2. Dans la boîte de dialogue volante, sélectionnez la source de données Produits de la commande.

  3. Dans l’onglet Propriétés pour la zone de liste déroulante, sélectionnez Modifier (en regard de Champs) pour ouvrir le volet Données. Assurez-vous que Primary text et SearchField sont définis sur nwind_productname.

    Vous spécifiez le nom logique, car le volet Données ne prend pas encore en charge les noms d’affichage dans ce cas :

    Définir le texte principal de la zone de liste déroulante.

  4. Fermez le volet Données.

  5. Dans l’onglet Propriétés près du bord droit, faites défiler vers le bas, désactivez Autoriser la sélection multiple et assurez-vous que Autoriser la recherche est activé :

    Désactiver la sélection multiple et activer la recherche.

  6. Redimensionnez et déplacez la zone de liste déroulante dans la zone bleu clair, juste sous la colonne du nom du produit dans la galerie de détails :

    Déplacer la zone de liste déroulante.

    Dans cette zone de liste déroulante, l’utilisateur spécifiera un enregistrement dans la table Produit pour l’enregistrement Détails de la commande que l’application va créer.

  7. Tout en maintenant la touche Alt enfoncée, sélectionnez la flèche vers le bas de la zone de liste déroulante.

    Conseil

    En maintenant la touche Alt enfoncée, vous pouvez interagir avec les commandes Power Apps Studio sans ouvrir le mode Aperçu.

  8. Dans la liste des produits, sélectionnez un produit :

    Sélectionner un produit dans la zone de liste déroulante.

Ajouter une image du produit

  1. Sous l’onglet Insertion, sélectionnez Média > Image :

    Insérer un contrôle Image.

    Le contrôle Image apparaît dans l’angle supérieur gauche :

    Emplacement par défaut du contrôle Image.

  2. Redimensionnez et déplacez l’image vers la zone bleu clair sous les autres images de produit et à côté de la zone de liste déroulante.

  3. Définissez la propriété Image sur l’image pour :

    ComboBox1.Selected.Picture
    

    Définir la propriété Image de l’image.

    Vous utilisez la même astuce que celle utilisée pour afficher la photo de l’employé dans le formulaire de résumé. La propriété Selected de la zone de liste déroulante renvoie l’enregistrement complet du produit sélectionné par l’utilisateur, y compris le champ Image.

Ajouter une boîte de quantité

  1. Dans l’onglet Insertion, sélectionnez Text > Saisie de texte :

    Ajouter une zone de texte.

    Le contrôle Saisie de texte apparaît dans l’angle supérieur gauche :

    Emplacement par défaut de la zone de saisie de texte.

  2. Redimensionnez et déplacez la zone de saisie de texte à droite de la zone de liste déroulante, juste sous la colonne de quantité dans la galerie de détails :

    Redimensionner et déplacer la zone de saisie de texte.

    En utilisant cette zone de saisie de texte, l’utilisateur spécifie le champ Quantité de l’enregistrement Détails de la commande.

  3. Spécifiez la propriété Default de ce contrôle sur "":

    Définissez la propriété Default de la zone de saisie de texte.

  4. Sous l’onglet Accueil, définissez l’alignement de texte de ce contrôle sur Droite :

    Changer l’alignement du contrôle vers la droite.

Afficher l’unité et les prix globaux

  1. Sous l’onglet Insertion, insérez un contrôle Étiquette.

    L’Étiquette apparaît dans l’angle supérieur gauche de l’écran :

    Insérer une Étiquette.

  2. Redimensionnez et déplacez l’étiquette à droite du contrôle Text-input, puis définissez la propriété Text sur cette formule :

    Text( ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

    Définir la propriété Text de l’étiquette.

    Ce contrôle affiche la Liste des prix de la table Commander des produits. Cette valeur détermine le champ Prix unitaire dans l’enregistrement Détails de la commande.

    Notes

    Pour ce scénario, la valeur est en lecture seule, mais d’autres scénarios peuvent demander à l’utilisateur de l’application de la modifier. Dans ce cas, utilisez un contrôle Saisie de texte et définissez sa propriété Default sur Liste des prix.

  3. Sous l’onglet Accueil, définissez l’alignement de texte de cette Étiquette de liste de prix sur Droite :

    Changer l’alignement du contrôle vers le côté droit.

  4. Copiez et collez l’étiquette de liste de prix, puis redimensionnez et déplacez la copie à droite de l’étiquette de liste de prix.

  5. Définissez la propriété Text de la nouvelle Étiquette sur cette formule :

    Text( Value(TextInput1.Text) * ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

    Définir la propriété Text de la nouvelle Étiquette.

    Ce contrôle affiche le prix global en fonction de la quantité que l’utilisateur de l’application a spécifié et du prix catalogue du produit que l’utilisateur de l’application a sélectionné. C’est purement informatif pour l’utilisateur de l’application.

  6. Double-cliquez sur le contrôle Text-input pour la quantité, puis tapez un nombre.

    L’Étiquette de prix global recalcule la nouvelle valeur :

    Spécifier une quantité et afficher le prix global.

Ajouter une icône Ajouter

  1. Sous l’onglet Insertion, sélectionnez Icônes > Ajouter :

    Insérer une icône Ajouter.

    L’icône apparaît dans l’angle supérieur gauche de l’écran.

    Emplacement par défaut de l’icône Ajouter.

  2. Redimensionnez et déplacez cette icône vers le bord droit de la zone en bleu clair, puis définissez la propriété OnSelect de l’icône de cette formule :

    Patch( 'Order Details',
        Defaults('Order Details'),
        {
            Order: Gallery1.Selected,
            Product: ComboBox1.Selected,
            Quantity: Value(TextInput1.Text),
            'Unit Price': ComboBox1.Selected.'List Price'
        }
    );
    Refresh( Orders );
    Reset( ComboBox1 );
    Reset( TextInput1 )
    

    Définir la propriété OnSelect de l’icône.

    En général, la fonction Patch met à jour et crée des enregistrements, et les arguments spécifiques de cette formule déterminent les modifications exactes que la fonction apportera.

    • Le premier argument spécifie le source de données (dans ce cas, la table Détails de la commande) dans laquelle la fonction mettra à jour ou créera un enregistrement.

    • Le deuxième argument spécifie que la fonction créera un enregistrement avec les valeurs par défaut pour la table Détails de la commande sauf indication contraire dans le troisième argument.

    • La troisième instruction spécifie que quatre colonnes du nouvel enregistrement contiendront des valeurs de l’utilisateur.

      • La colonne Commande contient le numéro de la commande que l’utilisateur a sélectionné dans la galerie de commandes.
      • La colonne Produit contient le nom du produit que l’utilisateur a sélectionné dans la zone de liste déroulante qui affiche les produits.
      • La colonne Quantité contient la valeur spécifiée par l’utilisateur dans la zone de saisie de texte.
      • La colonne Prix unitaire contient le prix catalogue du produit que l’utilisateur a sélectionné pour ce détail de commande.

    Notes

    Vous pouvez créer des formules qui utilisent les données de n’importe quelle colonne (dans la table Commander des produits) pour tout produit sélectionné par l’utilisateur de l’application dans la zone de liste déroulante qui affiche les produits. Lorsque l’utilisateur sélectionne un enregistrement dans la table Commander des produits, non seulement le nom du produit apparaît dans cette zone de liste déroulante, mais également le prix unitaire du produit apparaît dans une Étiquette. Chaque valeur de recherche dans une application canevas fait référence à un enregistrement entier, et pas seulement à une clé primaire.

    La onction Actualiser garantit que la table Commandes reflète l’enregistrement que vous venez d’ajouter à la table Détails de la commande. La fonction Refresh efface les données de produit, de quantité et de prix unitaire afin que l’utilisateur puisse plus facilement créer un autre détail de commande pour la même commande.

  3. Appuyez sur F5, puis sélectionnez l’icône Ajouter.

    La commande reflète les informations que vous avez spécifiées :

    Animation d’ajout d’un détail de commande.

  4. (facultatif) Ajoutez un autre article à la commande.

  5. Appuyez sur Échap pour quitter le mode Aperçu.

Supprimer un détail de commande

  1. Au centre de l’écran, sélectionnez le modèle de la galerie de détails :

    Sélectionner le modèle de galerie.

  2. Sous l’onglet Insertion, sélectionnez Icônes > Corbeille :

    Insérer l’icône Corbeille.

    L’icône Corbeille apparaît dans l’angle supérieur gauche du modèle de la galerie.

    Emplacement par défaut de l’icône.

  3. Redimensionnez et déplacez l’icône Corbeille vers le bord droit du modèle de la galerie des détails, puis définissez la propriété OnSelect sur cette formule :

    Remove( 'Order Details', ThisItem ); Refresh( Orders )
    

    Définir la propriété OnSelect de l’icône.

    Au moment d’écrire ces lignes, vous ne pouvez pas supprimer un enregistrement directement d’une relation, la fonction Supprimer supprime un enregistrement directement de la table associée. ThisItem spécifie l’enregistrement à supprimer, extrait du même enregistrement dans la galerie de détails où l’icône Corbeille apparaît.

    Encore une fois, l’opération utilise des données mises en cache, donc la fonction Actualiser informe la table Commandes que l’application a modifié l’une de ses tables associées.

  4. Appuyez sur F5 pour ouvrir le mode Aperçu, puis sélectionnez l’icône Corbeille à côté de chaque enregistrement Détails de la commande que vous souhaitez supprimer de la commande.

  5. Essayez d’ajouter et de supprimer divers détails de commande de vos commandes :

    Animation d’ajout et de suppression des détails de commande.

En conclusion

En résumé, vous avez ajouté une autre galerie pour afficher les détails de la commande et les contrôles en ajoutant et supprimant un détail de commande dans l’application. Vous avez utilisé ces éléments :

  • Un deuxième contrôle Galerie, lié à la galerie de commandes via une relation un-à-plusieurs : Gallery2.Items = Gallery1.Selected.'Order Details'
  • Une relation plusieurs-à-un entre la table Détails de la commande et la table Produit de la commande : ThisItem.Product.'Product Name' et ThisItem.Product.Picture
  • La fonction Choices pour obtenir une liste des produits : Choices( 'Order Details'.Product' )
  • La propriété Selected d’une zone de liste déroulante en tant qu’enregistrement connexe plusieurs à un complet : ComboBox1.Selected.Picture et ComboBox1.Selected.'List Price'
  • La fonction Patch pour créer un enregistrement Détails de la commande : Patch( 'Order Details', Defaults( 'Order Details' ), ... )
  • La fonction Remove pour supprimer un enregistrement Détails de la commande : Remove( 'Order Details', ThisItem )

Cette série de sujets a été une présentation rapide de l’utilisation Relations Dataverse et choix dans une application canevas à des fins éducatives. Avant de lancer une application en production, vous devez prendre en compte la validation sur le terrain, la gestion des erreurs et de nombreux autres facteurs.

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).