Galerie Power Apps

Étiquetté : , ,

  • Galerie Power Apps

    Posté par Simon sur 22 avril 2022 à 8h14

    Je 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 7 mois, 3 semaines 1 Membre · 12 Réponses
  • 12 Réponses
  • Geoffroy

    Membre
    22 avril 2022 à 8h36

    Bonjour Simon,

    Peux-tu poster une copie de ton écran pour qu’on voie mieux ce qui coince ?

    CommentID=CIxiaUlRrQdFjC2, PostID=CFCdqINmqb6Alsi

  • Simon

    Membre
    22 avril 2022 à 8h41

    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

  • Geoffroy

    Membre
    22 avril 2022 à 9h29

    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

  • Simon

    Membre
    22 avril 2022 à 9h32

    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

  • Geoffroy

    Membre
    22 avril 2022 à 10h01

    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

  • Geoffroy

    Membre
    22 avril 2022 à 13h37

    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

  • Alexandre

    Membre
    23 avril 2022 à 9h59

    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

  • Sylvain

    Membre
    27 avril 2022 à 4h09

    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

  • Simon

    Membre
    27 avril 2022 à 9h19

    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

  • R3dKap

    Membre
    28 avril 2022 à 13h18

    @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

  • Simon

    Membre
    28 avril 2022 à 13h55

    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

  • R3dKap

    Membre
    28 avril 2022 à 16h22

    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.