French Power Platform User Group

Please login or click SIGN UP FOR FREE to create your PowerPlatformUG account to join this user group.
 View Only
Expand all | Collapse all

liste déroulante qui s'adapte

  • 1.  liste déroulante qui s'adapte

    Posted May 24, 2021 08:37 AM
    Edited by laurent boucard May 24, 2021 08:37 AM
    Bonjour à tous,

    Je suis en train de mettre en place une application de réservation de véhicules au sein de mon entreprise.
    Je bloque sur un point, j'ai une liste Sharepoint avec la liste des voitures du parc et une liste avec les réservations effectivement faites pour un jour donné.
    Cette dernière liste est lié à la première pour le choix du véhicule.
    Dans power apps je souhaite qu'un menu déroulant propose les véhicules disponibles pour un jour donné et non pas tous les véhicules.
    Je cherche depuis un moment comment coder la propriété Items du menu déroulant mais en vain.
    J'ai essayé avec Filter et ShowColumns et même Lookup. J'ai pensé passer par une Collection, mais je n'arrive à rien.
    En attendant je mets un message d'erreur si le véhicule choisis est déjà réservé.
    Pourriez-vous m'aiguiller ? 
    Je suis débutant sur Power App et j'apprends seul (enfin avec les nombreux tutos du net)

    merci d'avance :)


    ------------------------------
    laurent boucard
    ------------------------------


  • 2.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 25, 2021 09:28 AM
    Bonjour Laurent,
    Alors, pour pouvoir t'aider et te donner la formule magique, il faudrait que tu me décrives ton modèle de données. C'est à dire, me donner les noms de te listes SharePoint et des colonnes qui les constituent. Si tu peux aussi me donner le nom de tes 2 listes déroulantes.
    J'attends ton retour...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 3.  RE: liste déroulante qui s'adapte

    Posted May 25, 2021 10:42 AM
    Bonjour et merci d'avance pour ta réponse,

    la liste SharePoint avec le parc des véhicule : voitures et la colonne avec les véhicules Titre (oui il faut que j'apprenne à donner de vrais noms :D)
    la liste SharePoint avec les réservations :reservation, la colonne avec les véhicules effectivement réservés Titre, la colonne avec la date date

    je choisis une date avec le sélecteur de dates, elle va dans Datepicker1

    la liste déroulante s'appelle DataCardValue6

    pour résumer, je souhaite mettre dans DataCardValue6 (dans items je pense) la liste des voitures disponibles à une date donnée, c'est à dire :
    la colonne Titre de voitures moins la colonne Titre de reservation quand date de cette ligne = Datepicker1

    tu peux me donner la formule magique ou une formule générique que j'adapterai
    en tout cas un grand merci à toi !

    ------------------------------
    laurent boucard
    ------------------------------



  • 4.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 26, 2021 05:13 AM
    Ah voilà... Nickel...
    Alors... Pour un bon fonctionnement de ton application et de bonnes performances (et aussi éviter tout problème de délégation), je t'encourage à procéder comme suit (je vais numéroter les points pour que tu puisses réagir sur certains d'entre eux si tu rencontres des pb)...

    1. Pour ta liste VOITURES, ça me choque pas que tu utilises la colonne Titre. En effet, si elle porte par exemple l'immatriculation du véhicule, comme c'est une donnée unique, pas de pb... Sache qu'il est possible de la renommer en allant dans les propriétés de ta liste et en cliquant sur la colonne en question.
    2. Pour ta liste RESERVATION : là, petit souci. Actuellement tu utilises la colonne Titre alors qu'en réalité tu vas y stocker un véhicule qui se trouve dans la liste VOITURES. Pour faire propre, dans ce cas de figure, on crée ce que l'on appelle une colonne de type "Lookup". Est-ce que tu connais ? Est-ce que tu as déjà pratiqué ? Si non, c'est très simple : c'est une colonne qui te permet de pointer vers une donnée dans une autre liste. Il faudrait donc que tu crées une colonne de type "Lookup" ("Recherche" en français) appelée par ex. Voiture vers la liste VOITURES et que tu choisisses la colonne Titre de cette liste comme colonne liée. L'avantage c'est que côté Power Apps lorsque tu vas ajouter un formulaire à ton application et que tu vas le connecter à RESERVATION, le champ Voiture sera automatiquement créé en tant que liste déroulante avec à l'intérieur la liste des véhicules de ta liste VOITURE. Restera plus qu'à limiter cette liste aux véhicules réellement disponibles (voir plus bas).
    3. Essaie de donner des noms de colonnes plus explicites dans tes listes. Cela facilitera énormément la compréhension de ton application et sa maintenance. Par exemple, plutôt que ta colonne de date de réservation dans ta liste RESERVATION s'appelle Date, appelle-là plutôt DateReservation (si tu décides de le faire, il va falloir que tu la recrées pour que son nom interne/technique soit bien celui-là). C'est une bonne pratique générale en développement : on donne toujours des noms très explicites aux objets et aux variables quitte à ce qu'ils soient un peu long (on s'en fout). Attention à ne pas mettre de caractères spéciaux dans tes noms de colonnes (ni espace, ni car. spéciaux, juste '_' éventuellement) au moment de leur création. APRES l'avoir créée tu peux la renommer pour lui donner un nom d'affichage différent si tu veux. Dans les formules ci-dessous, je vais supposer que cette colonne s'appelle DateReservation.
    4. A chaque fois que l'utilisateur va choisir une date on va récupérer la liste des véhicules réservés ce jour-là (pour la soustraire plus tard à la liste complète des véhicules). Pour cela, on va mettre le code suivant dans DatePicker1.OnChange (le ShowColumns() nous sert à ne garder que la colonne Titre dans cette liste des véhicules réservés) :
      ClearCollect(colVéhiculesRéservés; ShowColumns(Filter(Reservation; DateReservation=DatePicker1.SelectedDate); "Titre"))
    5. Si, comme je le suppose, ton DatePicker1.DefaultDate est positionné à Today(), il faut qu'au lancement de l'application on initialise la collection colVéhiculesRéservés avec les véhicules réservés à la date du jour. Pour cela, ajoute le code suivant à l'événement OnStart de ton application :
      ClearCollect(colVéhiculesRéservés; ShowColumns(Filter(Reservation; DateReservation=Today()); "Titre"))
    6. Pour éviter des problèmes de délégation lors de l'accès à la liste des véhicules, il faut charger la liste VOITURES dans une collection au moment où l'application se lance. Donc, dans l'évènement OnStart de ton application, ajoute le code suivant :
      ClearCollect(colVoitures, Voitures)
    7. Maintenant on peut définir la valeur de DataCardValue6.Items avec la formule magique tant attendue... 😉
      Si tu as choisis de rester avec ta colonne Titre dans ta liste RESERVATION, voici la bonne formule :
      Remove(colVoitures; Titre in colVéhiculesRéservés)
      Si tu as choisis de créer la colonne de lookup Voiture, voici la bonne formule :
      Remove(Choices(Reservation.Voiture); Value in colVéhiculesRéservés)
    Voilà... Ca devrait le faire. J'ai pas testé chez moi alors y'aura p'têt des p'tits bugs. N'hésite pas à réagir ci-dessous si tu rencontres des pb...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 5.  RE: liste déroulante qui s'adapte

    Posted May 26, 2021 07:21 AM
    Edited by laurent boucard May 26, 2021 07:21 AM
    alors d'abord un grand merci pour ta réponse si précise :)
    2.  j'ai mis une colonne recherche dans reservation qui va vers la liste des véhicules, et j'utilise un menu déroulant dans power apps, je manque de vocabulaire en plus dans mes descriptions

    donc j'ai fait exactement comme tu me dis, j'ai appris pleins de choses ! j'en étais loin :D
    pour l'instant ça ne fonctionne pas, mais je décortique tout ça tranquillement
    j'essaye d'afficher les collections au fur et à mesure pour mieux comprendre leur utilisation, et je n'ai rien qui s'affiche
    comment s'appelle la colonne de colVéhiculesRéservés après qu'elle soit créée dans ClearCollect(colVéhiculesRéservés; ShowColumns(Filter(Reservation; DateReservation=Today()); "Titre")) ? Titre ?

    dans l'alinéa 7. "Si tu as choisis de créer la colonne de lookup Voiture, voici la bonne formule :g
    Remove(Choices(Reservation.Voiture); Value in colVéhiculesRéservés)"
    je ne comprends pas le "Value" power apps me propose d'office de ()
    encore merci, je continue à bosser sur tout ça

    ------------------------------
    laurent boucard
    ------------------------------



  • 6.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 26, 2021 10:16 AM
    2. Parle plutôt de colonne de lookup... Tout le monde devrait comprendre (l'anglais c'est tellement plus pratique pour l'informatique 😉). Et "combo box" au lieu de "menu déroulant" (à la rigueur "liste déroulante"). Mais le pb avec le français c'est que les traductions peuvent faire référence à des objets différents lorsqu'on les retraduits dans l'autre sens. Par ex. : imaginons que l'on parle de "liste déroulante" pour une combo box ; on pourrait imaginer traduire "liste déroulante" par "list box". Or la list box est un autre contrôle qui est une boîte rectangulaire dans lequel des éléments sont affichés et où on peut sélectionner un ou plusieurs éléments (ce contrôle s'appelle "Zone de liste" en français")... 😨

    Bref, j'ai fait ci-dessus une p'tite capture montrant les bonnes terminologies FR/EN :

    5. En fait quand tu lis ce code :
    ClearCollect(colVéhiculesRéservés; ShowColumns(Filter(Reservation; DateReservation=Today()); "Titre"))
    ...il faut le lire de l'INTERIEUR vers l'EXTERIEUR :
    • Avec Filter() je filtre la liste RESERVATION -> en retour je récupère donc une table de la même structure que RESERVATION (c'est à dire avec TOUTES les colonnes de la liste SharePoint correspondante (je les mets ici en EN) : Title, Modified, Author, ...).
    • Or je n'ai besoin que de la colonne Titre -> donc j'englobe mon Filter() pour ne conserver que la colonne Titre (c'est ce que fait le ShowColumns() : il renvoie la table fournie en premier paramètre où ne figureront plus QUE les colonnes spécifiées dans les paramètres suivants).
    • Et le résultat de ça je le mets dans colVéhiculesRéservés qui, au final, n'aura qu'une seule colonne Titre.

    7. Alors... Lorsque tu as une colonne de lookup dans une liste SharePoint, la combo box correspondante dans ton formulaire côté Power Apps aura dans son Items une formule du type Choices(<ta liste SP>.<ta colonne de lookup>). En fait cette fonction renvoie un tableau à 2 colonnes comme ceci :

    Dans ce tableau tu y trouveras la liste des éléments de la liste cible avec :
    • dans la colonne Id la valeur de la colonne ID de SharePoint (tu noteras la différence entre "Id" et "ID")
    • dans la colonne Value la valeur de la colonne liée dans la liste cible
    Donc, dans ton cas : Choices(Reservation.Voiture) te génères un tableau à 2 colonnes (Id, Value) avec la liste des véhicules où Id correspondra à l'identifiant SharePoint du véhicule (colonne ID SharePoint) et Value contiendra la valeur du champ Titre de ta liste VOITURES.

    Et donc la formule Remove(Choices(Reservation.Voiture); Value in colVéhiculesRéservés) retire de la liste où se trouvent TOUS les véhicules ceux qui se trouvent dans colVéhiculesRéservés.

    Pas facile à expliquer clairement au clavier tout ça... 😋


    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 7.  RE: liste déroulante qui s'adapte

    Posted May 26, 2021 08:51 AM
      |   view attached
    je me suis fait à part un petit exo pour bien comprendre, sur cette image à gauche j'arrive à créer la Collection colVoitures à partir de ma liste SharePoint en cliquant sur le bouton, au milieu je créé la collection colVéhiculesRéservés en cliquant sur le bouton après avoir choisis une date
    à droite je ne sais pas quoi mettre dans items pour afficher la différence entre ces deux galeries, et Items ne veut pas, apparemment; commencer par un Remove, j'ai essayé vie un bouton mais ma formule n'est pas bonne

    ------------------------------
    laurent boucard
    ------------------------------



  • 8.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 26, 2021 10:19 AM
    Eh bien tu devrais y mettre normalement :
    Remove(colVoitures, Titre in colVéhiculesRéservés)

    Ca c'est en supposant que dans ta collection colVéhiculesRéservés tu n'as bien QUE la colonne Titre (et que tu as donc utilisé le ShowColumns() pour ne conserver en retour que cette colonne là). Ca c'est parce-que l'opérateur IN ne fonctionne avec à sa droite qu'une table à une seule colonne.

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 9.  RE: liste déroulante qui s'adapte

    Posted May 26, 2021 01:14 PM
    Edited by laurent boucard May 26, 2021 10:59 PM
    bon je n'y arrive pas, et pourtant tes explications sont très claires et complètes (encore merci)
    je résume où j'en suis, j'ai une liste Sharepoint avec la liste des voitures du parc : voitures, et la colonne Titre
    j'ai une liste SharePoint avec les réservations, reservation , la colonne Voiture est lié via un lookup vers voitures

    dans power apps
    j'ai un bouton avec : ClearCollect(colVoitures; ShowColumns(voitures;"Title")) (déjà je ne comprends pas toujours la nuance entre title et titre)
    un autre avec ClearCollect(colVéhiculesRéservés; ShowColumns(Filter(reservation; date=Text(DatePicker1.SelectedDate)); "Voiture"))
    ces deux boutons fonctionnent bien
    (quand j'affiche les galeries j'ai pour colVoitures : ThisItem.Title et ThisItem.IsSelected
    pour colVéhiculesRéservés :ThisItem.Voiture.Value (ou Id) et ThisItem.IsSelected)
    je cherche le code à mettre dans un troisième bouton pour que colVoitures soit modifié avec en moins les voitures de colVéhiculesRéservés
    c'est juste pour l'exercice, que je comprenne...
    j'ai essayé avec un Removeif, quand je mets dans ce bouton RemoveIf(colVoitures;Title="le titre exact d'une voiture") ça fonctionne, cette voiture est supprimée, je cherche en fait à remplacer "le titre exact d'une voiture" par un code..

    ------------------------------
    laurent boucard
    ------------------------------



  • 10.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 27, 2021 04:35 AM
    Title et Titre sont exactement la même colonne. Titre est plutôt utilisée quand ton interface Power Apps Studio est en français et Title quand elle est en anglais. Mais je crois que Title marche dans tous les cas, quel que soit la langue car c'est le nom interne de la colonne.
    N'oublie pas qu'une colonne SharePoint a toujours 2 noms : un nom interne (technique, idéalement sans car. spéciaux) et un nom d'affichage. Titre est le nom d'affichage en français de la colonne Title (nom interne). Après, quand l'un ne marche pas, essaie l'autre... 😉

    ThisItem.IsSelected te sers à rien. Tu peux l'oublier. Je ne l'utilise jamais. Il te suffit effectivement d'afficher ThisItem.Title dans ta galerie colVoitures et ThisItem.Voiture.Value dans ta galerie colVéhiculesRéservés. Ca c'est bon... On voit bien d'ailleurs sur ta capture précédente que ça marche...

    Et donc pour ta 3è galerie où tu ne voudrais voir que les véhicules dispos, normalement la formule que j'avais donné avant devrait marcher (je viens juste de remplacer Titre par TItle, mais je suppose que tu l'avais fait) :
    Remove(colVoitures, Title in colVéhiculesRéservés)
    L'as-tu testée ? Affiche-t-elle une erreur lorsque tu l'utilises ? Si oui, laquelle ?

    Sinon, tu peux exporter ton app de test et me la déposer ici si tu veux et j'y jetterai un oeil...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 11.  RE: liste déroulante qui s'adapte

    Posted May 27, 2021 07:44 AM
    Edited by laurent boucard May 27, 2021 07:46 AM
      |   view attached
    je te remercie, elle est en PJ

    j'ai essayé en créant les deux Collections directement dans Power Apps plutôt que de prendre sur SharePoint, mais ça ne fonctionne pas non plus

    j'ai essayé : Remove(colVoitures;{Title:Gallery2.Selected.Voiture.Value}) mais ça n'enlève que une ligne

    ------------------------------
    laurent boucard
    ------------------------------

    Attachment(s)

    zip
    exo8_20210527113954.zip   67 KB 1 version


  • 12.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 27, 2021 09:32 AM
    Je pensais que t'allais me filer ton app de test plutôt que ton app de réservation... :) Pas grave...
    Du coup j'ai recréé chez moi les listes voitures et reservation et j'ai solutionné ton pb... C'était un peu plus complexe que ce que j'avais pensé à l'origine (et depuis le début ma formule Remove() ne pouvait pas fonctionner à cause d'une erreur de syntaxe). Désolé...
    Bref...
    Voici la formule que tu dois mettre dans le Items de ta combo box des véhicules :
    Filter(
        Choices([@reservation].voiture),
        Not(
            Value in ShowColumns(
                Filter(
                    AddColumns(
                        reservation,
                        "voiture_txt",
                        voiture.Value
                    ),
                    date = DataCardValue3.SelectedDate
                ),
                "voiture_txt"
            )
        )
    )​


    DataCardValue3 est le DatePicker chez moi.
    En gros :

    • on filtre en fait la liste de tous les véhicules renvoyée par le Choices() (qui était déjà là à l'origine en fait)
    • ensuite on va le plus à l'intérieur possible de la formule et on remonte :
      • le AddColumns() c'est pour rajouter dans la liste reservation (en mémoire dans l'app hein, pas dans SharePoint) une colonne  de texte qui ne va contenir QUE le nom du véhicule pour chaque réservation (voiture_txt)
      • le Filter() qui est autour c'est pour ne garder que les réservations à la date du DatePicker
      • ce qui fait qu'à ce stade on a une collection de toutes les réservations à la date du DatePicker avec une colonne en plus qui ne contient que le nom du véhicule (voiture_txt)
      • le ShowColumns() c'est pour ne conserver que la colonne voiture_txt
      • enfin, le Not(Value in c'est pour retirer de la liste des véhicules ceux qui sont déjà réservé à la date, et on s'assure donc que le véhicule que l'on filtre ne fait pas partie de la collection des véhicules déjà réservés à cette date
    Un poil compliqué à expliquer comme ça...
    Dis-moi si t'arrives à l'implémenter chez toi...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 13.  RE: liste déroulante qui s'adapte

    Posted May 27, 2021 10:04 AM
    bon alors tout d'abord ça marche !! c'est nickel
    en plus je comprends à peu près :D

    mille excuses je me suis trompé de fichier, et ce n'est même pas l'appli sur laquelle je bosse

    et puis alors un million de merci pour ton savoir ta patience et ta gentillesse :-)

    ------------------------------
    laurent boucard
    ------------------------------



  • 14.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted May 27, 2021 02:31 PM
    Avec plaisir... 😊
    Moi aussi j'ai appris un truc : si dès le début j'avais pris les 10mn que j'ai prise aujourd'hui pour reproduire ton cas on aurait réglé tout ça depuis bien longtemps... 😅
    A+

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 15.  RE: liste déroulante qui s'adapte

    Posted Jun 14, 2021 05:32 AM

    Cette discussion m'interpelle, car je cherche à résoudre un problème similaire.

    Je veux afficher une galerie d'un côté avec une sélection des entrées, pour les passer dans une collection.

    Par contre, je voudrai qu'elle disparaissent de la liste d'origine lorsqu'elles ont été sélectionnées.
    Un remove sur la liste Sharepoint va (je pense) supprimer l'entrée ce qui n'est pas le but.

    Je pense créer une collection dans une galerie avec la liste des entrées Sharepoints, en supprimant (remove) celles sélectionnées pour en pas créer de doublons.

    Question bête, lorsque je crée une galerie, je lui affecte le nom de la collection, CollSelectedServices, mais comment faire un transfert de la liste SP vers la collection directement. D'habitude je passe pas une action type bouton ?

    Merci



    ------------------------------
    B Mickaël
    ------------------------------



  • 16.  RE: liste déroulante qui s'adapte

    Posted Jun 14, 2021 05:50 AM
    Le plus simple, c'est de créer un bouton qui charge la lsite SP et qui renvoi vers une nouvelle page. CQFF !

    ------------------------------
    B Mickaël
    ------------------------------



  • 17.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jun 14, 2021 09:19 AM
    Salut Mickaël,
    Pour répondre à ta dernière question, transférer les données d'une liste SharePoint vers une collection locale s'effectue avec un ClearCollect(). Après, l'emplacement où tu mets ce ClearCollect() dépend du moment où la collection a besoin d'être alimentée (sur un bouton, lors d'une recherche, à l'affichage de l'écran, etc.).
    Pour ta première question, si j'ai bien compris t'as une galerie A à gauche et une galerie B à droite. Lorsque tu cliques sur un éléments de la galerie A tu voudrais qu'il se "déplace" vers la galerie B. C'est ça ?
    Si c'est le cas :
    • assure-toi d'utiliser des collections pour tes 2 galeries (et pas directement la liste SharePoint sinon effectivement tu vas supprimer des données), disons colGalerieA et colGalerieB (elles doivent être de même type, c'est à dire de même structure)
    • sur le OnSelect de GalerieA tu mets le code suivant : Collect(colGalerieB; ThisItem);; Remove(colGalerieA; ThisItem)
    • sur le OnSelect de GalerieB tu mets le code suivant : Collect(colGalerieA; ThisItem);; Remove(colGalerieB; ThisItem)
    • assure-toi de trier colGalerieA et colGalerieB directement dans le Items de tes galeries pour que les éléments reviennent à leur position d'origine lorsqu'ils passent de B à A


    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 18.  RE: liste déroulante qui s'adapte

    Posted Jun 15, 2021 03:29 AM
    Super, ça marche. ET merci pour le sort. C'est très bête mais ça aide bien.

    ------------------------------
    B Mickaël
    ------------------------------



  • 19.  RE: liste déroulante qui s'adapte

    Posted Jul 02, 2021 03:44 AM
    Edited by B Mickaël Jul 02, 2021 08:39 AM

    Salut à tous,

    Au bout du bout, je me creuse la tête, sur l'affichage d'un champ liée à O365Users dans une liste SP qui recense tous mes services.

    Je sélectionne dans des listes déroulantes imbriqués, ma direction, mon département, mon service, et au final je n'arrive pas à sortir la valeur de mon champs.

    => finalement j'arrive à sortir la liste des champs de ma LSP_Services. Mais je vois tous les champs sauf le Champ responsable qui lui est liée à O365Users. C'est ce champ dont j'ai besoin pour Soit le modifier si la personne a changé de poste. Soit réaffecter la ligne correspondante dans le LSP_Base à un autre service si l'organigramme à changé.

    Une fois ces valeurs saisies, Je pense faire un patch vers une la LSP_Bases.

    Petite question subsidiaire, où trouver des infos sur Dataverse, in French svp ?

    Merci

    ------------------------------
    B Mickaël
    ------------------------------



  • 20.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jul 02, 2021 11:40 AM
    Du coup, sais pas si j'ai pas compris, en fait tu veux récupérer le responsable d'un utilisateur O365 ? T'y es arrivé ou pas ?

    Sinon, pour trouver des infos sur Dataverse en FR, euh...
    Alors t'as toujours la doc officielle de Microsoft qui est plutôt bien foutue et qui se mettra automatiquement dans ta langue du navigateur : https://docs.microsoft.com/fr-fr/learn/paths/get-started-cds/

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 21.  RE: liste déroulante qui s'adapte

    Posted Jul 05, 2021 10:58 AM

    Bonjour,

    Je parle de bases (lotus) que nous devons migrer. Chaque base appartient à une direction un département ou un service et à un responsable.

    J'ai prédéfini les informations de base. Mais entre de recensement et la réalité il y aura certainement une différence du fait des mouvements de personnel.

    Du coup, je voudrait permettre aux utilisateurs de modifier ces valeurs pour les remplacer par d'autres. Si elles lui ont été affecté à tord.

    J'ai crée une liste SP avec tous mes services, départements et directions.

    J'ai listé le nom des responsables dans ma Liste SP Service depuis la base Utilisateurs Office 365. Du coup pas d'erreur et je peux placer un filtre au démarrage de l'apps.

    Lorsque j'arrive sur mon écran de réaffectation,  je peux sélectionner une direction et filtrer pour avoir les départements dépendants. Et idem sur les services. Mais je ne parvient pas à remonter dans le champ Responsable de la liste SP Service en lien avec 'Utilisateurs Office 365'.

    J'ai essayé pas ma le formule. J'ai forcé un combo sur la Liste SP Mais il affiche la liste de tous les champs de la LSP Service, sauf le champ Responsable qui dépend de UO365. C'est embétant.

    Ce qui m'inquiète le plus c'est que lorsque je me connecte il me demande systématiquement une validation pour accéder à Utilisateurs O365. Si mes utilisateurs n'ont pas les droits ça va être coton.

    Enfin chaque choses en sont temps.

    Merci



    ------------------------------
    B Mickaël
    ------------------------------



  • 22.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jul 06, 2021 06:27 AM
    Salu Mickaël,
    Est-ce que tu pourrais me mettre une capture de la page des paramètres de chacune de tes listes pour que je vois la liste des colonnes de chacune d'elle ?
    Merci.
    Sinon, c'est normal que le champ Responsable n'apparaisse pas dans la liste des champs affichable dans ta liste déroulante. Le champ Responsable étant de type 'User' il est considéré comme complexe car il a une structure interne qui ressemble à ceci :


    Du coup, si tu veux afficher le nom du responsable dans ta liste déroulante des services, il faut que dans le Items de ta liste déroulante tu rajoutes une colonnes à ta source de données pour y stocker le DisplayName du responsable en question. Quelque chose comme ceci :
    AddColumns(
        <ta source de données ou ton Filter sur LSP_Services>;
        "NomResponsable";
        <ton champ responsable>.DisplayName
    )​

    Et du coup, tu pourras afficher le champ NomResponable dans ta liste déroulante.

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 23.  RE: liste déroulante qui s'adapte

    Posted Jul 07, 2021 10:36 AM

    Pour la liste Usagés:Pour la liste Bases :



    ------------------------------
    B Mickaël
    ------------------------------



  • 24.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jul 12, 2021 05:24 PM
    Salut Mickaël,
    Toujours bloqué là-dessus ou c'est bon ?

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 25.  RE: liste déroulante qui s'adapte

    Posted Jul 15, 2021 04:05 AM

    Bonjour,

    J'ai parfois du mal à comprendre le comportement de PWAP, lorsque je fais une recherche dans une liste déroulante, je n'ai pas la même chose que lorsque je filtre sur un champ texte.

    Par contre je cherche à préfiltrer la liste avec un toggle sur le compagnyname. Par exemple pour n'avoir que les agents d'un département mais je ne trouve rien à ce sujet.



    ------------------------------
    B Mickaël
    ------------------------------



  • 26.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jul 15, 2021 05:37 AM
    Je t'envoie un message privé pour qu'on se fasse une p'tite session Teams passke sinon on va pas y arriver... 😋

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 27.  RE: liste déroulante qui s'adapte

    Posted Jul 15, 2021 06:02 AM
    yes. Thank's.

    ------------------------------
    B Mickaël
    ------------------------------



  • 28.  RE: liste déroulante qui s'adapte

    Posted Jul 16, 2021 09:09 AM

    Bonjour,

    Déjà merci pour le coup de main hier. Il y a plein de petites astuces bien utile qui méritent d'être connues.

    Par contre je butte encore sur la fonction Patch.

    Celle que nous avons faites à partir d'une liste déroulante qui va chercher les entrées via la fonction choices marche bien. J'essaye de la transposer mais rien n'y fait

    Impossible de patcher mes référents depuis un Label, ou depuis une liste de déroulante de type affichage. Systématiquement, il me dit que j'ai un format de donnée Text et que celui attendu est de type Record.

    J'ai essayé plein de trucs :

    Avec un Lookup dans un Label :

    LookUp('LSP_origine';Service = CBB_NSrv.SelectedText.Value;Responsable.DisplayName)

    J'ai testé un patch sur cet affichage, mais il m'indique un problème de format. Je ne peux préciser que .Text sur le LBL_NRef.

        Patch(
            'LSP_Destination';
            Gall_Slct_Base.Selected;
            {R_x00e9_f_x00e9_rent: LBL_NRef})

    Autre test à parti d'une Liste déroulante de type affichage.

    Sort(Distinct(Filter('LSP_Destination';
                Service = CBB_NSrv.SelectedText.Value);
            Responsable.DisplayName
        );
        "Result"
    )

    Là encore le patch ne fonctionne pas. La donnée affichée est encore une fois de type texte.

        Patch(
            'LSP_Destination';
            Gall_Slct_Bal.Selected;
            {Referent : CBB_LBL_NResp})

    Je ne vois pas bien ce qu'il me manque pour réussir de patch. J'ai essayé les Selecte, Selected.Value, Selected.Result rien n'y fait.

    Y a t 'il un moyen pour qu'il accepte de prendre la valeur de mon Label, ou de ma Liste déroulante comme une record. :(

    Merci encore



    ------------------------------
    B Mickaël
    ------------------------------



  • 29.  RE: liste déroulante qui s'adapte

    Gold Contributor
    Posted Jul 16, 2021 09:27 AM
    Edited by EMMANUEL GALLIS Jul 16, 2021 09:28 AM
    Avec plaisir... 😉

    Pour ton Patch(), si tu veux mettre quelque chose dans ta colonne Référent, tu es obligé de lui donner un objet de type Personne.
    Pour info, un OBJET de type Personne est en réalité un enregistrement à plusieurs colonnes qui a la structure suivante :
    {
        DisplayName: "Toto TITI";
        Claims: "i:0#.f|membership|toto@titi.fr";
        Department: "Mon département";
        Email: "toto@titi.fr;
        JobTitle: "Mon boulot";
        Picture: <ma photo>
    }​


    Avec quoi essaies-tu de mettre à jour ta colonne Référent ? Avec une valeur qui vient d'où ?



    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 30.  RE: liste déroulante qui s'adapte

    Posted Jul 16, 2021 09:56 AM

    Les valeurs viennent toujours d'une colonne de type personne. Ici elles viennent de ma colonne responsable de ma LSP_Services.

    Du coup les valeurs sont bien de type Personne à l'origine. De la même manière que nous avons fait le lien sur cette colonne avec le choices :

    Choices('LSP_Service'.Responsable)

    Les données sont filtrés en fonction du choix de Direction, de Département, et de Service.

    En cas de réaffectation, il faut renseigner un nouveau Referent dans le LSP_Base qui soit est le responsable dans la LSB_Service, soit un autre qui aurait délégation.



    ------------------------------
    B Mickaël
    ------------------------------