Navigate selon un Item

  • Navigate selon un Item

    Posté par Fred Evellin sur 4 juin 2024 à 15h24

    Bonjour,

    je veux créer un sous menu de navigation dans un composant.

    Dans une gallerie liée à une base sharepoint, je veux que lorsque je clique sur un bouton que j’ai ajouter dans l’item alors j’ouvre un screen (nom du screen étant dans la colonne “Lien” de ma base.

    Pour cela dans OnSelect de mon bouton j’ai écrit :

    <div>
    <div>Select(Parent);;</div>
    <div>Navigate(ThisItem.Lien);;</div>
    <div> </div>
    <div>Cela ne marche pas car pour lui ThisItem.Lien n’est pas un screen. Pourtant il exsiste.</div>
    <div>quand j’écris

    Dans une collection liée à une base sharepoint, je veux que lorsque je clique sur un bouton que j’ai ajouter dans l’item alors j’ouvre un screen (nom du screen étant dans la colonne “Lien” de ma base.

    Pour cela dans OnSelect de mon bouton j’ai écrit :

    <div>
    <div>Select(Parent);;</div>
    <div>Navigate(ThisItem.Lien);;</div>
    <div> </div>
    <div>Cela ne marche pas car pour lui ThisItem.Lien n’est pas un screen. Pourtant il exsiste. </div>
    <div>Quand j’écris ThisItem.Lien dans la propriété text du bouton, j’ai bien le nom de mon screen.</div>
    </div>
    Comment préciser que ThisItem.Lien est un screen dans navigate?</div>
    <div> </div>
    <div>Merci de votre aide</div>
    <div> </div>
    <div> </div>
    </div>

    • Cette discussion a été modifiée Il y a 3 mois, 2 semaines par  Fred Evellin.
    R3dKap a répondu Il y a 3 mois, 1 semaine 5 Membres · 13 Réponses
  • 13 Réponses
  • Fred Evellin

    Membre
    4 juin 2024 à 16h20

    c’est bon, j’ai trouvé autrement

  • Geoffroy

    Membre
    4 juin 2024 à 17h29

    Bonjour Fred,

    Je suis intéressé par ton idée car j’ai à peu près le même problème.

    Je n’ai rien trouvé de mieux qu’un Switch pour coder “en dur” les différentes destinations pour le Navigate. Mais ça oblige à modifier l’appli en cas de nouveau choix 🤔

  • Quentin Appyld

    Membre
    4 juin 2024 à 17h52

    Hello, pas sûr d’avoir compris le problème mais ce qu’il faut comprendre c’est que quand on fait un composant le seul type de donnée de type “screen” que l’on peut lui donner c’est “App.ActiveScreen”

    On le met en parametre du composant, dans mon exemple j’ai créé un input de type table et je lui passe des données d’exemple avec comme Screen a chaque fois App.ActiveScreen.

    Dans la canvas qui appelera ce composant il suffira de mettre le bon ecran

    En espérant avoir répondu à la question

    Quentin

    • Cette réponse a été modifiée Il y a 3 mois, 2 semaines par  Quentin Appyld.
  • Benoit

    Membre
    5 juin 2024 à 8h56

    Bonjour,

    Effectivement il faut dans le composant créer une propriété personnalisé avec un input de type table.

    Personnellement je me suis aidé de cette video pour créer mon menu How to create a Modern Compact Side Menu in PowerApps (youtube.com) Il y a 2 autres vidéos du même auteur pour créer un menu non compact et un menu avec des sous niveaux. Si cela peut aider Geoffroy.

    Cordialement.

    B

  • R3dKap

    Membre
    5 juin 2024 à 22h17

    Salut Fred,

    Ton problème est lié au fait que ThisItem.Lien est une chaîne de caractère et non un écran : ce sont deux types de données complètement différents et incompatibles. Il te faut donc faire une correspondance dans ton application.

    Voici comment procéder…

    Supposons que ta liste SharePoint possède ta fameuse colonne Lien avec les valeurs suivantes :

    Sur ton bouton il va alors te falloir tout simplement écrire :

    <pre class=”language-markup”>Navigate(
    Switch(
    ThisItem.Lien;
    "Ecran1";
    Screen1;
    "Ecran2";
    Screen2;
    ...etc...
    )
    )

  • Fred Evellin

    Membre
    6 juin 2024 à 10h05

    voici une vide claire pour créer une navigation d’un composant :

    <div>(491) Reusable Navigation Toolbar Component FAST in Power Apps – YouTube</div>
    <div> </div>
    <div>Sinon pour l’apparition de mon sous menu;</div>
    <div> </div>
    <div>Dans formulas j’ai créer mon menu comme cela :</div>
    <div>
    <div>
    <div>/ Création du Sous Menu Brasserie</div>
    <div>_Menu_SsM_Brasserie = Table(</div>
    <div> {</div>
    <div> _menu_id: 1;</div>
    <div> _menu_text: “CIP”;</div>
    <div> _menu_navigation: page_Cip;</div>
    <div> _menu_visible: true;</div>
    <div> _menu_disable: DisplayMode.Edit;</div>
    <div> _menu_icon: Icon.Add;</div>
    <div> _menu_tooltip: “Retour à l’accueil”</div>
    <div> };</div>
    <div> {</div>
    <div> _menu_id: 2;</div>
    <div> _menu_text: “Filtration “;</div>
    <div> _menu_navigation: page_Filtration;</div>
    <div> _menu_visible: true;</div>
    <div> _menu_disable: DisplayMode.Edit;</div>
    <div> _menu_icon: Icon.Add;</div>
    <div> _menu_tooltip: “Nouvelle Filtration”</div>
    <div> };</div>
    <div> {</div>
    <div> _menu_id: 3;</div>
    <div> _menu_text: “Inter Cuve “;</div>
    <div> _menu_navigation: page_InterCuves;</div>
    <div> _menu_visible: true;</div>
    <div> _menu_disable: DisplayMode.Edit;</div>
    <div> _menu_icon: Icon.Add;</div>
    <div> _menu_tooltip: “Nouvelle Filtration”</div>
    <div> };</div>
    <div> {</div>
    <div> _menu_id: 4;</div>
    <div> _menu_text: “Conditionnement”;</div>
    <div> _menu_navigation: page_Conditionnement;</div>
    <div> _menu_visible: true;</div>
    <div> _menu_disable: DisplayMode.Edit;</div>
    <div> _menu_icon: Icon.Add;</div>
    <div> _menu_tooltip: “Nouveau Conditionnement”</div>
    <div> };</div>
    <div> {</div>
    <div> _menu_id: 5;</div>
    <div> _menu_text: “Accueil”;</div>
    <div> _menu_navigation: page_Accueil;</div>
    <div> _menu_visible: true;</div>
    <div> _menu_disable: DisplayMode.Edit;</div>
    <div> _menu_icon: Icon.Home;</div>
    <div> _menu_tooltip: “Retour à l’accueil”</div>
    <div> }</div>
    <div>);;</div>
    <div> </div>
    <div>puis dans mon composant j’ai créé une propriété personnalisé</div>
    <div>SS_Menu_Brasserie avec une entrée d’un tableau</div>
    <div> </div>
    <div>puis j’ai entrée dans cette propriété le nom de mon menu :
    <div>
    <div>_Menu_SsM_Brasserie</div>
    <div> </div>
    <div>puis dans ma gallerie </div>
    <div> Item –> Parent.SS_Menu_Brasserie</div>
    <div> </div>
    <div>puis j’insère un bouton dans ma gallerie qui :</div>
    <div> </div>
    <div>
    <div>
    <div>Select(Parent);;</div>

    <div>Navigate(</div>
    <div> ThisItem._menu_navigation;</div>
    <div> ScreenTransition.None</div>
    <div>);;</div>
    </div>
    <div> </div>
    <div>voilà </div>
    </div>
    </div>
    </div>
    </div>
    </div>

  • R3dKap

    Membre
    6 juin 2024 à 10h11

    Oui très bien Fred : comme tu l’as fait tu peux effectivement avoir une table avec les noms des écrans… Ca marche bien aussi 👏

    Plus besoin d’aide sur ton menu du coup ?

  • Fred Evellin

    Membre
    6 juin 2024 à 10h12

    merci;

    pourquoi il y a des balises <div> dans mes messages?

  • R3dKap

    Membre
    6 juin 2024 à 10h15

    Oui j’ai vu ça… Bizarre… Tu utilises quel navigateur ? Est-ce que la popup d’écriture de messages ressemble bien à celle-ci ?

  • Fred Evellin

    Membre
    6 juin 2024 à 10h16

    Je suis Edge. Le popup est bien comme le tiens

  • R3dKap

    Membre
    6 juin 2024 à 10h27

    Ok… On va tester de notre côté et essayer de voir ce qui cloche… En attendant est-ce que tu peux répondre ci-dessous en faisant un test avec Chrome stp ? Merci 😉

  • R3dKap

    Membre
    6 juin 2024 à 10h31

    Ah mais en fait, je pense que c’est les copier/coller qui te ramènent des <div> partout… Quand tu fais des copier/coller vaut mieux passer par le Notepad avant de le coller dans l’éditeur de message du PPFC… 😉 Ca permet de se débarraser (normalement) de toutes les balises bizarres…

  • R3dKap

    Membre
    6 juin 2024 à 10h32

    Quand tu veux coller du code Power Apps dans un message, clique d’abord sur l’icône “Code” de l’éditeur avant de le coller :

Connectez-vous pour répondre.