[Question] Type OptionSet en propriété de sortie de composant

Étiquetté : , , ,

  • [Question] Type OptionSet en propriété de sortie de composant

    Posté par Sebastien sur 5 juillet 2023 à 9h50

    Salut à tous !

    Une fois de plus, je me retrouve face à un problème bien particulier, et j’espère que mes experts préférés pourront m’aider.

    Aujourd’hui, l’objectif est de créer des composants Power Apps pour remplacer nos contrôles de saisie de données habituels.

    L’idée est d’uniformiser le style des contrôles et d’intégrer une validation des données, tout en permettant d’éditer ces composants une seule fois pour appliquer les modifications à toutes les instances. Étant donné que notre projet actuel compte environ 40 pages, cette fonctionnalité est impatiemment attendue.

    La méthode que nous avons choisie consiste à nous baser sur la bibliothèque Material Design (lien ici) et à reprendre et adapter les composants existants.

    Le problème se pose maintenant avec un composant qui doit reproduire les fonctionnalités des listes déroulantes (OptionSet). Le souci est que je n’arrive pas à récupérer la valeur sélectionnée dans le menu déroulant et à la faire passer en tant que propriété de sortie du composant tout en conservant son type OptionSet. Pour l’instant, je n’arrive qu’à obtenir un texte ou un enregistrement non typé. Je ne peux donc pas utiliser ce composant comme une vraie liste déroulante. Est-ce que l’un d’entre vous a déjà été confronté à ce problème ?

    –> Une petite capture d’écran pour donner une idée

    Merci d’avance pour votre aide précieuse !

    PostID=CdhTgrGazIPb0lJ

    DavidZed a répondu Il y a 9 mois, 1 semaine 1 Membre · 2 Réponses
  • 2 Réponses
  • Sebastien

    Membre
    5 juillet 2023 à 14h32

    Nous avons une première solution, mais nous n’en somme pas très satisfaits :

    Il s’agit de faire sortir une propriété Texte du composant qui correspond à la valeur de l’OptionSet souhaitée, et en dehors du composant (donc directement dans l’app), on ajoute une liste déroulante invisible avec en ‘Items’ l’OptionSet en question, et en ‘default’ la sortie texte du composant. On peut donc se servir de la liste déroulante pour fournir la valeur attendue aux Patch() et autres fonctions ayant besoin d’une valeur d’OptionSet.

    Nous ne sommes pas vraiment convaincus par cette solution parce qu’au lieu de remplacer nos listes déroulantes par des composants, on ajouterait simplement un composant par liste déroulante en place dans notre app.

    Est-ce que quelqu’un aurait une autre idée ?

    CommentID=ddENo7967cItOyN, PostID=CdhTgrGazIPb0lJ

  • DavidZed

    Membre
    7 juillet 2023 à 16h59

    Hello Sebastien Brandeis ,

    Si je ne m’abuse, il n’y a pas de contrôle liste déroulante dans la bibliothèque material design (où alors dans une récente version, la dernière que j’ai testé a quelques mois déjà), j’en déduis que tu es parti d’un de leur composants pour en faire un avec une liste déroulante.

    La raison est simple, c’est que les données d’entrée et de sortie sont trop dynamiques pour pouvoir être utilisées dans un composant canvas dont tu souhaite qu’il ait un usage générique.

    C’est peut-être réalisable si tu utilises exclusivement des listes Sharepoint en source de données car au final, elle ont souvent la même structure : [{ID:0 Value:”Text”}] mais cela va brider grandement les possiblités.

    Tu vas retrouver cette contrainte sur tous les objets qui ont une propriété Champs / Field :
    Formulaires, combobox, les modern controls etc…

    Si tu souhaites faire un tel contrôle, pas le choix, il faudra créer un composant PCF.

    CommentID=uXO5URkA4CHGAm4, PostID=CdhTgrGazIPb0lJ

Connectez-vous pour répondre.