R3dKap
Expert Power AppsRéponses céées sur le Forum
-
Daniel tu peux déjà commencer par supprimer le
ThisRecord.
qui ne sert à rien dans ta formule… 😉 Dans le 2è paramètre du LookUp() tu peux construire ta condition en spécifiant directement les noms des colonnes de ta source de données.Puisque ça fonctionne avec Text() c’est que c’est probablement un problème de format de données. C’est un peu galère avec les fichiers Excel comme source de données parce-que justement je crois que Power Apps ne supporte que très peu de types de données, voire il ne supporte que le format Texte.
Je n’utilise jamais les fichiers Excel pour stocker mes données. Je préfère largement créer une petite liste SharePoint. C’est beaucoup plus souple et plus simple à exploiter. Est-ce que tu aurais la possibilité de créer une liste SharePoint avec les données de ton fichier Excel. Surtout que, je ne sais pas si tu le sais, mais il existe une fonctionnalité native qui permet de créer une liste SharePoint directement à partir d’un fichier Excel…
CommentID=LueAfUZasaC2JKR, PostID=D4X1SsSlkaCgT7j
-
Tom Victor alors comme je dis toujours : le modèle de données c’est le socle de ton application. Il faut qu’il soit bien propre pour que ton application coule de source derrière.
Pour bien formaliser les choses, je recommande toujours de faire un schéma. Je propose dans ce post un modèle de PPT qui te permet de faire ça :
Dans ton cas de figure, ça devrait ressembler à ça à priori :
Voici un lien vers le fichier PPT qui contient ce début de modèle de données pour que tu puisses l’utiliser. Je t’encourage à le compléter en entier avec toutes tes listes et toutes tes colonnes et à le reposter ici parce-que ça aide énormément à comprendre comment l’application est structurée…
En fait pour construire un modèle de données, on essaie de représenter la réalité :
-
j’ai un ensemble de clients -> liste Clients
-
ces clients peuvent passer plusieurs commandes -> liste Commande où il faut que je sache à quel client est rattachée la commande donc j’y mets une colonne Client qui pointe vers la liste Clients
-
dans chaque commande je peux avoir plusieurs lignes -> liste Lignes commandes où il faut que je sache à quelle commande appartient chaque ligne donc j’y mets une colonne Commande qui pointe vers la liste Commandes
-
etc…
Tu me suis ?
Dis-moi si t’as bien réussi à récupérer le PPT…
Une fois que ton modèle de données est propre, à ce moment-là tu maquettes ton écran et tu décris comment il est censé fonctionner. Et une fois que ta maquette est prête, là tu développes… Ce travail en amont est nécessaire car il te facilite énormément la vie au final… Et aussi à celui qui reprend ton application après toi si un jour tu la lâches… 😉
CommentID=XmwYNntbcZsw1E9, PostID=wVEkrzcD5VIJ3Ae
-
-
R3dKap
Membre21 février 2023 à 8h10 en réponse à: Valeur d'un champ "choix" qui change à la suite de la création d'une nouvelle occurrenceTout à fait… C’est juste un choix… Les 2 sont possibles : 2 écrans ou un seul écran… Tout dépend de la complexité des écrans et de l’application. Et j’ai presque envie de dire qu’il est plutôt recommandé de faire des écrans les plus simples possibles, donc 2 écrans bien séparés ça me paraît bien aussi. Ce qui pourrait faire pencher la balance vers un seul écran c’est s’il y a de nombreux autres éléments qui sont communs entre les 2 écrans (menus, popups, onglets, conteneurs masqués, etc.) qui pourraient être mutualisés sur un seul écran pour limiter le nombre de contrôles total dans l’application…
CommentID=xW23Y2qJEaTTmUG, PostID=ByXYsdQd2A6pg2e
-
Ah ok… Alors avant de faire ça, il faut que je comprenne l’objectif à atteindre en termes de fonctionnalités…
Depuis le début j’ai supposé qu’une personne puisse être inscrit à plusieurs formations et que donc il pourrait y avoir plusieurs formations affichées dans la galerie de droite galFormationsSuivies (c’est pas pour rien que j’ai mis des “s” partout 😉). Est-ce vraiment le cas ? Car j’ai l’impression que tu considères qu’il n’y en aura toujours qu’une seule d’affichée pour une personne sélectionnée… Et si c’était le cas pourquoi une galerie pour afficher 1 seule formation ? Aucun intérêt… Tu vois ce que je veux dire ? Il faut d’abord clarifier ce point… N’hésite pas aussi à me mettre une capture de ton écran (en masquant ce qui doit être masqué) et à me réexpliquer l’objectif global pour que je puisse mieux t’aider… 🙂
CommentID=Q5Hq6F2CxwMmZw3, PostID=6s015rePUPkxa5W
-
Mmm… Là c’est strange… Le genre de cas de figure où Power Apps fait n’importe quoi… Je serais pas étonné que ça se mette en marche demain matin quand t’auras relancé le Studio… 😅
Si c’est toujours pas le cas, contacte-moi sur Teams à partir de 10h30 (je vais te donner mon mail en message privé) et on fera un partage d’écran…
CommentID=sGcPks9rv2So4or, PostID=6s015rePUPkxa5W
-
R3dKap
Membre20 février 2023 à 18h51 en réponse à: Valeur d'un champ "choix" qui change à la suite de la création d'une nouvelle occurrenceAvec plaisir… 😉
Ah, effectivement, j’ai oublié de poser la question du Power Automate dans ma liste de questions initiales (et pourtant j’y ai pensé 😅).
Par contre, t’as quand même un souci : il te faut absolument quelque chose dans le Item de ton formulaire pour pouvoir éditer un élément existant. Sinon, ton formulaire ne fonctionnera qu’en mode création…
CommentID=NRry7yxOC5iSafH, PostID=ByXYsdQd2A6pg2e
-
R3dKap
Membre20 février 2023 à 16h23 en réponse à: Valeur d'un champ "choix" qui change à la suite de la création d'une nouvelle occurrenceOk…
-
Oui pardon, Items… 😉
Tout a l’air en ordre… Autre question du coup :
-
Qu’as-tu dans le Item du formulaire ?
-
Qu’as-tu dans le DefaultMode du formulaire ?
CommentID=FOcR6WRRgWpoh6V, PostID=ByXYsdQd2A6pg2e
-
-
R3dKap
Membre20 février 2023 à 15h24 en réponse à: Valeur d'un champ "choix" qui change à la suite de la création d'une nouvelle occurrenceDenis est-ce que tu peux nous confirmer qu’il s’agit d’un formulaire SharePoint customisé avec Power Apps ou s’agit-il du formulaire natif ?
Si c’est un formulaire customisé avec Power Apps, quelques questions :
-
Est-ce que tu as du code dans le OnSuccess de ton formulaire ?
-
Est-ce que tu as du code dans le DefaultSelectedItems du DataCardValue de ta colonne de choix ?
-
Qu’est-ce que tu as dans la propriété Default du DataCard correspondant à ta colonne de choix ?
-
Qu’est-ce que tu as dans la propriété Datasource du DataCardValue de ta colonne de choix ?
CommentID=TzpFhvQ2bI7DfDC, PostID=ByXYsdQd2A6pg2e
-
-
R3dKap
Membre20 février 2023 à 9h01 en réponse à: TRANSFORMATION TABLEAU EXCEL ET ENVOIS EN PJ OUTLOOKPlutôt que d’utiliser la fonction de pièce jointe (icône Trombone) dans l’éditeur de post ou de remarques, utilisez le bouton Image juste à côté pour que l’on puisse voir vos captures directement dans le post… 😉
CommentID=i7Jr9Hr4SlAWv5W, PostID=MNHItnp6XZGj0xH
-
R3dKap
Membre20 février 2023 à 8h55 en réponse à: Enregistrer, télécharger comme fichier le canva power app et le site sharepoint associéHugotr35 intéressant… et triste 😩 😅
Effectivement, désormais pour reproduire un site SharePoint il faut passer par un site script.
Tu trouveras toutes les instructions ici :
Et pour info, vu que ton site existe déjà, tu peux utiliser la commande Get-SPOSiteScriptFromWeb pour générer automatiquement le site script de ton site.
N’hésite pas si t’as besoin d’aide…
CommentID=6R5eb9uwa9zpEoM, PostID=siRepjkWHS7i4MT
-
Hello.
Après avoir cliqué sur une formation, regarde le contenu de la variable pour voir ce qu’elle contient. Ensuite, après avoir cliqué sur une formation, analyse bien le frmFormationSuivie.Visible pour voir quelle partie rend le résultat de la formule à false.
D’ailleurs, lorsque tu dis que ça ne marche pas, c’est-à-dire ? Le formulaire ne s’affiche pas lorsque tu cliques sur une formation ? Ou le formulaire ne s’affiche pas lorsque tu choisis une personne qui n’a pas de formation ?
CommentID=Jq5WkALnSuwrxHU, PostID=6s015rePUPkxa5W
-
Ca y est j’ai compris pourquoi j’avais du mal avec la phrase en question : je croyais que le mot “nom” faisait toujours référence à la personne alors qu’il fait référence à la formation. J’ai le cerveau un peu trop câblé 0 ou 1… 😅
Donc, si je reformule : “Après avoir choisi une personne dans la galerie de gauche, je ne peux pas voir 2x la même formation dans la galerie de droite.“. C’est logique 🙂
Alors voici ce que je te propose de faire… Je vais supposer que ce sont des listes SharePoint dont je vais exploiter les colonnes Title et ID.
-
Une galerie à gauche qui s’appelle galPersonnes branchée sur ta liste Personnes
-
Une galerie à droite qui s’appelle galFormationsSuivies branchée sur ta liste Formations_Suivies (qui a une colonne de recherche Personne qui pointe vers la liste Personnes)
-
Sur galPersonnes.Items :
Personnes
-
Sur galFormationsSuivies.Items :
Filter(Formations_Suivies; Personne.Value = galPersonnes.Selected.Title)
(je suppose que ta colonne de recherche Personne pointe vers la colonne Title de la liste Personnes) -
A partir de là, si tu testes, après avoir sélectionné une personne dans la galerie de gauche tu dois voir les formations suivies par cette personne dans la galerie de droite
-
Je vais supposer que tu as un formulaire frmFormationSuivie dans lequel tu peux créer/modifier une formation suivie par une personne
-
Sur galPersonnes.OnSelect :
UpdateContext({locSelectedPersonne: ThisItem; locSelectedFormation: Blank()});; Reset(galFormationsSuivies)
-
Sur galFormationsSuivies.OnSelect :
UpdateContext({locSelectedFormation: ThisItem})
-
Sur frmFormationSuivie.DataSource =
Formations_Suivies
-
Sur frmFormationSuivie.Item =
LookUp(Formations_Suivies; ID = locSelectedFormation.ID)
-
Sur frmFormationSuivie.Visible =
!IsBlank(locSelectedFormation) || (!IsBlank(locSelectedPersonne) && IsEmpty(galFormationsSuivies.AllItems))
-
Sur frmFormationSuivie.DefaultMode =
If(!IsBlank(locSelectedFormation); FormMode.Edit; FormMode.New)
-
Sur frmFormationSuivie.OnSuccess =
UpdateContext({locSelectedFormation: Blank()})
Et c’est un bon début… Ca devrait déjà mettre en place pas mal de choses… 😉
CommentID=ZdYIr9MT9vmBbts, PostID=6s015rePUPkxa5W
-
-
Même si la formule de Jonathan Copin est correcte, je pense qu’en terme d’expérience utilisateur c’est à éviter (pardon Jonathan Copin 😉).
En effet, la galerie a pour objectif d’afficher le détail d’une commande. C’est sa raison d’être. Il faut donc obligatoirement choisir une commande pour en voir le détail. Afficher le détail de plusieurs commandes pour un client pour moi n’a pas vraiment de sens. Et encore une fois, le client ne doit pas faire partie de la liste CRM-Détail commandes.
Suggestion pour améliorer l’expérience de l’utilisateur :
-
je créerai visuellement un panel sur le côté gauche de l’écran où je mettrais :
-
la liste déroulante pour choisir le client
-
juste en-dessous une galerie qui afficherait la liste des commandes du client choisi (triées par date décroissante)
-
-
au clic sur une une commande de la galerie à gauche on verrait immédiatement le détail de la commande dans la galerie centrale
Cela faciliterait la navigation entre les commandes d’un même client…
🙂
CommentID=dQSwjoGFoRWFCaZ, PostID=wVEkrzcD5VIJ3Ae
-
-
Estelle j’ai compris globalement mais y’a 2 ou 3 petites choses qui me tracassent…
Il est capital de toujours partir des données : ce sont elles qui “pilotent” l’application.
Je suppose que tu as 2 listes :-
une liste avec les personnes
-
une liste avec les formations et une colonne qui fait le lien avec la liste des personnes
En gros je suppose que tu veux gérer les formations suivies/inscrites par des utilisateurs.
Si c’est le cas, on imagine qu’il y a 2 galeries sur ton écran :
-
une galerie à gauche branchée sur ta liste de personnes
-
une galerie à droite branchée sur ta liste de formations associées aux personnes
Et puis tu as un formulaire pour créer/modifier une nouvelle association formation/personne.
Du coup, je suppose que ton idée c’est, comme tu le décris :
-
je clique sur une personne dans la galerie de gauche
-
du coup ma galerie de droite se filtre automatiquement pour n’afficher que les formations de la personne sélectionnée
-
s’il n’y a aucune formation pour la personne on affiche le formulaire en mode création
-
s’il y a des formations pour la personne et que je clique sur une formation, le formulaire s’affiche en édition
C’est bien ça ?
Le point que je ne comprends pas bien du coup dans ton explication c’est “il n’y a pas 2 fois le même nom dans la galerie“. Est-ce que tu peux expliquer ou corriger mes suppositions ci-dessus ?
CommentID=mmGitJ6GcdDgmEE, PostID=6s015rePUPkxa5W
-
-
Tom Victor comme indiqué par Jonathan Copin la combo box qui affiche la liste des commandes en fonction du client doit effectivement faire un filtre sur la liste des commandes.
En gros, c’est assez simple…
-
J’ai envie d’afficher une liste de commandes ? Je filtre sur la liste des commandes !
-
J’ai envie d’afficher une liste de lignes d’une commande ? Je filtre sur la liste de détail des commandes !
Donc, pour la combo box des commandes en fonction du client, le code de Jonathan Copin devrait fonctionner.
Et pour la galerie, il suffit de filter la liste CRM-Détail commandes en fonction de la commande sélectionnée dans la combo box :
Filter('CRM-Détail commandes'; Commande.Value = DropDown_Commande.Selected.ID)
Plusieurs choses :
-
Si tu as bien conçu ton modèle de données, chaque commande doit avoir un numéro unique (quel que soit le client) -> donc, pas besoin de préciser le client dans le filtre sur le détail d’une commande -> d’ailleurs tu ne devrais même pas avoir de colonne Client dans ta liste de détail -> la logique c’est : une ligne de détail est liée à une ligne de commande qui est elle-même liée à une ligne de client, c’est tout…
-
Si tu mets le code de Jonathan Copin dans ta combo box des commandes, alors la structure de ton
.Selected
de ta combo box sera celle de ta liste SharePoint -> c’est pour ça que j’ai misDropDown_Command.Selected.ID
car j’ai supposé que c’est la colonne ID de SharePoint qui sert de numéro de commande unique
Est-ce que t’as besoin d’aide pour mettre en place la logique générale de tout ça ?
CommentID=jLkUP4QfTYQrfNn, PostID=wVEkrzcD5VIJ3Ae
-