R3dKap
Expert Power AppsRéponses céées sur le Forum
-
@Sylvain je pense qu’il faut commencer par voir s’il est possible de découper ton formulaire Word en plusieurs “morceaux”. L’idée c’est que ces “morceaux” soient répartis sur différents écrans de ton application Power Apps, ceci afin de soulager chacun des écrans. Parce-que si tu mets un contrôle formulaire dans ton application avec l’ensemble des 20 pages de ton Word, ton écran va littéralement crever la gueule ouverte… 😁
Donc, plus concrètement :
-
identifier les données à saisir à minima pour qu’une occurrence d’un PdP existe -> j’explique plus loin pourquoi
-
saucissonner le contenu du formulaire et répartir les questions dans différents écrans
Côté application :
-
un écran d’accueil E1 qui liste mes PdP
-
un écran E2 avec un contrôle formulaire pour les données de base du PdP et des onglets qui permettent d’accéder aux différentes sections (saucissonnage précédent) des données à renseigner
-
un écran En pour chacun des onglets avec un contrôle formulaire qui porte les données correspondantes
-
il faut obligatoirement que le PdP existe, et donc à minima l’enregistrer au niveau de l’écran E2, avant de pouvoir accéder aux onglets et aux différentes sections du formulaire
-
chaque écran En a son propre contrôle formulaire branché sur sa propre liste (voir plus bas le modèle de données que je te recommande)
-
changer d’onglet implique que l’on a sauvegardé les données de l’onglet sur lequel on se trouve (sinon on perd sa saisie) -> chaque écran est “indépendant” (plus facile à maintenir aussi) -> mettre en place un système de détection de changement de données dans le formulaire pour afficher une popup de confirmation de changement d’onglet sans sauvegarder (ou plutôt de proposer de sauvegarder les données modifiées avant de naviguer)
Et comme indiqué par @DavidZed tu peux facilement mettre en place des petites règles de gestion simples pour afficher/masquer des datacards en fonction de certains critères.
Côté modèle de données, y’a plusieurs options dont celle d’avoir une seule liste avec la totalité des colonnes (mais ça va être monstrueux), et donc je suggèrerais plutôt :
-
1 liste principale avec les données de base du PdP
-
1 liste pour chaque section (si elles sont bien indépendantes) avec une colonne de recherche pour pointer sur le PdP de la liste principale et faire le lien avec le PdP en question
A la rigueur, ce qui peut être intéressant aussi c’est de voir dans quelle mesure lors de la création initiale d’un PdP il est possible de demander à l’utilisateur de quelles sections du formulaire il va avoir besoin : ça te permettrait de n’afficher que les onglets utiles.
Pour ce qui est du workflow de validation, ça dépend du besoin. Si c’est plutôt basique tu peux utiliser un flux d’approbation Power Automate. Sinon, faut le “coder” entièrement dans ton application avec des boutons de validation à chaque étape et pour chaque acteur.
Enfin, pour générer le fichier PDF je te recommande vivement de passer par de la génération d’HTML que tu convertis ensuite en PDF avec le convertisseur natif gratuit (attention l’HTML ne doit pas faire plus de 2Mo -> évite les images, ou alors seulement des petits logos). Mon avis strictement perso, d’expérience : passer par de l’HTML est plus simple et plus flexible que de passer par un modèle de document Word.
NOTE – Attention, à vu de nez comme ça, étant donné que ton formulaire Word de base est déjà plutôt monstrueux, y’a quand même beaucoup de boulot : entre la création des centaines de colonnes, des différentes listes SP, la création des différents écrans de l’appli, des nombreux formulaires à faire fonctionner avec pas mal de datacards avec des règles de gestion, …
Au bas mot (mais j’ai pas vu la tronche du Word), je dirais qu’il y a bien 20j de boulot tout compris si tu veux faire un truc propre… 😉CommentID=EVHNx2DwXzWt4vT, PostID=nqb4ZT1WDagvuhu
-
-
R3dKap
Membre15 mai 2022 à 20h16 en réponse à: Adapter l'écran de l'application selon le support d'ouverture@Hugotr35 j’oubliais : j’ai récemment poussé un composant hyper pratique pour créer des apps responsive :
Un “must-have” dans ton cas… 😉
CommentID=fs0TXVGGK8qLFlJ, PostID=ftZwKSf20oqbtPc
-
R3dKap
Membre15 mai 2022 à 20h14 en réponse à: Disposition dynamique des contrôles dans une galerieTu peux déplacer ton libellé par rapport aux autres contrôles qui sont à côté de lui :
Mais tu ne peux pas le déplacer “à la main” car sa position est gérée automatiquement par le conteneur. Tu peux aussi déplacer un contrôle à l’aide du menu contextuel du contrôle :
Enfin, tu peux le faire avec les raccourcis clavier <Ctrl+)> et <Ctrl+^>.
CommentID=14xFkmqvXs3DqsY, PostID=JpdiSxMTtbDOb5f
-
R3dKap
Membre15 mai 2022 à 20h05 en réponse à: Activer la fonction/bouton "Export to PDF" dans une application Model Driven@Youcef marrant je vais être confronté à cette problématique dans les semaines à venir. Relance-moi d’ici là pour voir comment j’aurais fait… 😋
CommentID=OLSyoSOmaKAGMdJ, PostID=PPEcpDVStySOmlk
-
R3dKap
Membre15 mai 2022 à 20h03 en réponse à: Adapter l'écran de l'application selon le support d'ouverture@Hugotr35 attention faire une application responsive dans Power Apps c’est possible mais c’est chronophage et plutôt complexe.
Pour y parvenir il te faut effectivement commencer par désactiver la mise à l’échelle de ton app comme indiqué par @DavidZed :
Ensuite, il te faudra utiliser le conteneur horizontal et le conteneur vertical pour que tes contrôles s’agencent automatiquement les uns par rapport aux autres et faire en sorte qu’ils passent d’un affichage en ligne à un affichage en colonne si la largeur de l’écran est réduite (comme sur un téléphone). Pour cela, utilise bien la propriété Retour automatique à la ligne (LayoutWrap) :
Il te faudra imbriquer de nombreux conteneurs pour obtenir ce que tu veux :
Ensuite, il te restera le problème de la taille de la police : tu remarqueras que lorsque tu crées une application PC la taille de la police d’un bouton est à 13 et il est à 24 lorsque tu crées une app mobile. Cela est dû au fait que la densité de pixels par pouce est beaucoup plus élevée sur un mobile que sur un écran de PC et donc tout paraîtrait minuscule sur un mobile si on gardait les même tailles que celle sur PC.
Il te faudra donc définir des tailles de polices conditionnelles selon que ton application s’exécute sur un PC ou sur un mobile. Pour détecter si ton device est un mobile, tu peux mettre ce code dans le OnStart de ton app :
Set(n gloPhoneMode;n Acceleration.X > 0 && App.ActiveScreen.Width < 600n);;
Ensuite pour gérer l’histoire des tailles de polices, à la suite du code ci-dessus je fais ceci :
Set(n gloSizes;n If(n gloPhoneMode;n gloFontSizes.Phone;n gloFontSizes.Desktopn )n);;
gloFontSizes est définit précédemment comme ceci :
Set(n gloFontSizes;n {n Phone: {n S: 11;n M: 14;n L: 16;n XL: 20n };n Desktop: {n S: 13;n M: 16;n L: 18;n XL: 24n }n }n);
Puis sur chaque libellé, bouton, etc. je définis la taille en utilisant ma variable gloSizes comme ceci :
Bon courage ! 😋
PS : autre technique plus simple = chaque écran est créé en double (un pour PC un pour mobile) -> tu utilises le code ci-dessus pour détecter si t’es sur un mobile (tu le mets dans App.StartScreen) et tu te branches sur le bon écran en fonction… GROS INCONVENIENT : bin tu dois tout faire en double et le risque de désynchro de version entre des écrans jumeaux est plutôt élevé…
CommentID=7ku9AwK5i817Flq, PostID=ftZwKSf20oqbtPc
-
R3dKap
Membre15 mai 2022 à 19h41 en réponse à: Comment retrouver le propriétaire d'un graphique personnel ?@Youcef qu’appelles-tu un “graphique” exactement ?
CommentID=UNKBGu6dAoyyhPI, PostID=nMgWrUfaFlxiHh3
-
R3dKap
Membre15 mai 2022 à 19h40 en réponse à: Erreur lors de la tentative de récupération des données à partir du réseau@Gabriel tant que ta fonction de filtrage est délégable (pas de souligné bleu dans ta formule), tu peux attaquer une liste SharePoint de 1.000.000 d’enregistrements sans problème. Par contre, ton filtre ne ramènera jamais plus de 2000 éléments. Donc à toi de faire en sorte d’être en-dessous des 2000 et de ce que j’ai compris ça tu as réussi à le faire.
Par contre, ce message d’erreur en particulier que tu vois est assez récent (je l’ai moi-même découvert depuis la semaine dernière). Je ne suis pas certain de ce qu’il “cache derrière”.
Pour t’aider plus efficacement, est-ce que tu pourrais poster ici une capture de ta formule (en suivant bien ces instructions) ?
CommentID=e3mdvxdO5vC1SBJ, PostID=n1fwKtoJnmfOwlx
-
R3dKap
Membre15 mai 2022 à 19h31 en réponse à: Disposition dynamique des contrôles dans une galerie@Geoffroy WAGNER laisser tomber les formules… Utilise un contenu horizontal : tu vas voir ça va te changer la vie… 😀
L’avantage du conteneur horizontal et du contenu vertical est que c’est lui qui se charge d’agencer automatiquement les contrôles qu’il contient afin qu’il n’y ait pas de trous lorsque certains d’entre eux sont masqués. Justement ce dont tu as besoin…
N’hésite pas à revenir ici si tu as besoin d’aide… 😉
CommentID=vFa6XBobJBwAQ3h, PostID=JpdiSxMTtbDOb5f
-
Salut @Vince,
Alors tout d’abord : t’es pas obligé de passer par une collection. Tu peux directement boucler sur la propriété AllItems de ta galerie… EDIT: ah bin je vois que c’est ce que t’as fait dans ta dernière formule ci-dessus… 👍
Du coup, ta formule devrait fonctionner mais tant qu’à faire voici comment l’améliorer :
ForAll(n Gallery1.AllItems As LoopItem;n Patch(n T_Liste_VEH;n LookUp(n T_Liste_VEH;n Num_VEH=LoopItem.Num_VEHn );n {n VehDisponible:truen }n )n)
En effet, pour éviter de se mélanger les pinceaux dans les noms des champs selon le niveau de profondeur où on se trouve dans une formule complexe, on utilise le mot-clé As comme tu peux le voir dans ma formule ci-dessus.
Ensuite, pour le LookUp() de ton Patch(), si ta galerie est bien alimentée par ta liste T_Liste_VEH, tant qu’à faire autant exploiter les champs de la liste en question, d’où le test
Num_VEH=LoopItem.Num_VEH
.Dis-nous si c’est bon cette fois…
PS : tu devrait pouvoir faire la même chose de cette façon également…
UpdateIf(n T_Liste_VEH; n Num_VEH in ShowColumns(Gallery1.AllItems; "Num_VEH");n {VehDisponible: true}n)
CommentID=J8rCjGE4tWTQMGF, PostID=DvDmlANkdWsNjSD
-
R3dKap
Membre12 mai 2022 à 7h48 en réponse à: problème d'enregistrement powerapps vers excel (onedrive)Je sais pas trop. Je dois avouer que je ne fais jamais de Power Apps avec du Excel. Les apps Power Apps + Excel doit être réservé aux applications qui ne servent qu’à la personne qui les servent car le principe de partager un fichier Excel qui est sur son OneDrive (qui est un stockage personnel) avec plusieurs personnes pour l’exploiter avec Power Apps, c’est pas recommandé.
CommentID=EGpbrWW5A6yNFnL, PostID=aqy3ufsP9XfCUXf
-
Pas mieux… 😉
Seule petite optimisation que je pourrais proposer -> remplacer tes 2 Filter() par un seul :
Filter(MaListeSharePoint; no_semaine = "1" && agent = "Emmanuel")
CommentID=D2t3Hjl3jkPkc4g, PostID=LYtw9tB08ujCDrq
-
Top astuce @Alexandre !!! 😍👍
CommentID=LPp4xxxZlEfms8T, PostID=1f1IfStDhuNA7GC
-
R3dKap
Membre6 mai 2022 à 13h39 en réponse à: Faire un copier/coller de PowerApps vers le presse-papierMessenger ?
Non, faut que t’ailles sur mon profil LinkedIn (https://www.linkedin.com/in/egallis/) et que tu te connectes à moi (si ce n’est déjà fait). Ensuite on s’échangera nos mails pour faire le partage d’écran… 🙂
CommentID=Zs25kvneA4xR9n6, PostID=kXHIl43ttki0FZS
-
R3dKap
Membre6 mai 2022 à 13h23 en réponse à: Faire un copier/coller de PowerApps vers le presse-papierOui oui… Mais faut que tu me contactes sur LinkedIn pour qu’on s’échange nos mails… 😉
CommentID=7eByOhXtQPmmERm, PostID=kXHIl43ttki0FZS
-
Fait un ticket à MS… Je vois pas trop là… Typiquement le genre de situation où c’est le support MS qui doit prendre le relais… 😉
CommentID=BmCbGyw2e5RiAeU, PostID=69xGZf5mtO7DGrg