Galerie Power Apps
Étiquetté : expression, flow, Power Automate
-
Galerie Power Apps
Posté par Simon sur 22 avril 2022 à 8h14Je ne comprend pas, j’ai créé une galerie avec ma liste de donné(sur Microsoft lists), mais je ne peux pas dissocié les icones pour que chaque ligne de ma liste envoie l’utilisateur sur un écran différent. Pour l’instant tout mes icones envoie sur le même écran et donc la galerie n’a aucun intérêt. Quelqu’un saurait m’aider ?
PostID=CFCdqINmqb6Alsi
R3dKap a répondu Il y a 11 mois, 3 semaines 1 Membre · 12 Réponses -
12 Réponses
-
Bonjour Simon,
Peux-tu poster une copie de ton écran pour qu’on voie mieux ce qui coince ?
CommentID=CIxiaUlRrQdFjC2, PostID=CFCdqINmqb6Alsi
-
Voila mon écran et ma galerie, et ici tous les icones (NextArrow3 dans la galerie) envoie sur l’écran 2 quand je configure le paramètre Navigation.
CommentID=czwWS3mQc0JPtqx, PostID=CFCdqINmqb6Alsi
-
C’est normal, chaque ligne de la galerie possède les mêmes propriétés et donc envoie vers le même écran.
Selon quels critères est-on censé aboutir à des écrans différents ?
CommentID=itOI8nw9weMwOPn, PostID=CFCdqINmqb6Alsi
-
je ne vois pas alors l’intérêt de la galerie qui créer toute seul plusieurs ligne avec un bouton par ligne si ils mènent tous au même endroit. Je souhaite créer une barre de recherche qui permet de chercher un code dans une liste et chaque code permet d’aller chercher quelque chose de différent.
CommentID=x2GkVRqivlOmRhq, PostID=CFCdqINmqb6Alsi
-
Une solution serait d’ajouter un bouton dans l’enregistrement pour lequel le contrôle “OnSelect” est paramétré pour naviguer vers des écrans définis. C’est pour cela que je demandais les critères.
CommentID=EQPU2Y8YHGcHrYt, PostID=CFCdqINmqb6Alsi
-
En fait, pas besoin d’ajouter un bouton mais il faut paramétrer le chevron en fonction des critères de choix.
Après, il ne faut qu’il y ait 72 écrans différents 😉
CommentID=SEyALEYM3DAJA31, PostID=CFCdqINmqb6Alsi
-
Ta galerie répète l’action que tu codes dans ton template (le premier élément de ta galerie. Pour chaque élément d’une collection (la propriété item) la galerie duplique les contrôles et le ‘code’ que tu as associé (propriétés de chacun des éléments de ta collection).
Donc si tu code un navigate(monEcran) sur le chevron de droite, tous les chevrons feront la même chose : naviguer vers ‘monEcran’.
Comme te dis @Geoffroy WAGNER il faudrait que tu saches sous quelles conditions de chacun de tes éléments de ta collection tu seras amené à naviguer vers un écran plutôt qu’un autre.
Ici ta captude d’écran semble lister des défauts. Peut être que chacun de ces défauts sont catégorisés par criticité, ou par nature de dysfonctionnement. C’est peut être donc ce critère qui te permettra de savoir vers quel écran tu dois naviguer.
Ton approche doit donc être la suivante :
” j’ai un élément (dysfonctionnement) et pourquoi je veux que quand je clic sur le chevron ca aille vers tel ou tel écran ?”
Ca te donnera un schéma en bon francais qui devrait ressembler à :
“Si mon dysfonctionnement est de tel type, alors je vais vers tel écran, par contre si il est de tel type, alors je vais vers un autre écran etc…”
Du coup ca se transcrira dans ton onSelect avec un formule powerFX qui ressemblera à :If(n //premier critère à testern ThisItem.maPropriete = "cecicela";n Navigate(monEcran1);n //Sinon je test un autre critère (ou le même avec une autre valeur attendue)n ThisItem.monAutrePropriete = 1456;n Navigate(monAutreEcran);n //Sinon, si aucun cas n'a été rencontré, je fais l'action suivanten Notify("autre cas non géré") //par exemple mais ca peut être n'importe quelle action comportementalen)
Si ce n’est pas assez clair, je t’invite à te rendre dans le yammer d’entreprise qui correspond au logo de ton application 😉 tu y trouveras certainement de l’assistance dans le groupe dédié à PowerApps. Tu peux aussi essayer de me trouver dans le teams de ton entreprise pour que je t’accorde quelques temps d’explications et d’aide 😉 )
CommentID=QcPqXMS62tFFkbb, PostID=CFCdqINmqb6Alsi
-
Hello,
essaye peut-être d’ajouter une colonne à ta liste que tu appellerais par exemple screenName puis sur le bouton te ta galerie tu met ce code :
Navigate(ThisItem.screenName)
Je ne sais pas si ça marche.
Edit: j’ai testé, ça ne marche pas… A priori, on ne peut pas enregistrer le nom d’un contrôle dans une variable ou autre…
Mais il me semble pourtant avoir vu un truc du genre :
UpdatContext({maVariable:"nomDuControle"});;nNotify(Controls(maVariable).Text)
mais je ne me souviens plus si c’était dans PowerApps ou un autre langage, sur une autre plateforme… Peut-être que @R3dKap pourra nous aider
CommentID=WzMcqUX8SEuYNYw, PostID=CFCdqINmqb6Alsi
-
Merci à tous pour votre aide, j’ai trouvé une parade.
Sur mon deuxième écran j’ai créé un tableau avec la qui filtre et affiche uniquement les données dont le titre correspond au code sélectionné dans le premier écran
Filter( ma_source; code_selct_screnn1 = code_colonne_Titre)
CommentID=mkW7WooBJ0ERGEt, PostID=CFCdqINmqb6Alsi
-
@Simon attention sur ton 2è écran de ne pas faire référence à un contrôle qui est sur ton premier écran. C’est une mauvaise pratique que l’on rencontre souvent.
Par exemple :
-
Ecran1 : une galerie Galerie1
-
Ecran2 : une autre galerie Galerie2 qui filtre selon l’élément choisi dans Galerie1 en faisant référence à
Galerie1.Selected
⛔⛔⛔
La bonne pratique c’est :
-
Ecran1 : dans le OnSelect de Galerie1 tu fais
Navigate(Ecran2; ScreenTransition.CeQueTuVeux; {locGalerie1SelectedItem: ThisItem})
-
Ecran2 : dans le filtre de Galerie2 tu utilises locGalerie1SelectedItem
L’idée consiste, depuis l’écran 1, à transmettre à l’écran 2 l’élément sélectionné dans Galerie1. C’est l’objet du 3è paramètre du Navigate() qui va alors créer une variable LOCALE sur Ecran2 qui s’appellera locGalerie1SelectedItem.
Voili voilou… 😉
CommentID=WpLA2h7PBkXp1zF, PostID=CFCdqINmqb6Alsi
-
-
elle n’y fait pas référence directement. J’ai une étiquette sur l’écran2 qui récupère et affiche le code de la ligne sélectionné de la galerie de l’écran 1. Puis dans le filtre de ma 2eme galerie j’utilise la valeur de l’étiquette.
CommentID=UGVBHuNWTeUUzQ2, PostID=CFCdqINmqb6Alsi
-
“J’ai une étiquette sur l’écran2 qui récupère et affiche le code de la ligne sélectionné de la galerie de l’écran 1.” -> donc sur ton écran 2 tu fais référence à un contrôle sur l’écran 1… 😁
Cherche pas. Il n’y a que 2 moyens d’éviter ça :
-
Utiliser une variable globale -> pas pertinent si ta variable globale n’est utilisée que sur un seul écran (elle est donc plutôt locale)
-
Transmettre la donnée dans le 3è paramètre du Navigate() comme indiqué plus haut -> surtout que ça en fait une variable locale justement
Je crois que définitivement il faut que je fasse soit des mini-vidéos ou des mini-webinaires d’explications très clairs sur ce genre de sujet… 😉
CommentID=oWRAXELPrjF8o7Y, PostID=CFCdqINmqb6Alsi
-
Connectez-vous pour répondre.