Alexandre
MembreRéponses céées sur le Forum
-
Alexandre
Membre13 mai 2022 à 16h01 en réponse à: Adapter l'écran de l'application selon le support d'ouvertureSi tu veux une application qui s’adapte à des devices aussi différents qu’un PC et un smartphone, tu n’as pas le choix que de faire un minima de responsive.
Les conseils de @DavidZed couplés à quelques conteneurs bien choisis et c’est parfait, même si il est vrai cela te demandera un peu plus de travail qu’une app smartphone ou une app tablette uniquement, puisque pour celles ci ta disposition globale est “zoomée” pour s’adapter proportionnellement à l’écranCommentID=55iD5k7lfpIWlHX, PostID=ftZwKSf20oqbtPc
-
Alexandre
Membre13 mai 2022 à 15h54 en réponse à: Disposition dynamique des contrôles dans une galerieTu es sur que tu es dans le template de ta gallerie ? (juste pour bien vérifier)
Ensuite, tu peux éventuellement remplacer le Gal_UM (puisque tu es dans le template) par un Parent : Parent.TemplateWidth.
Indique nous les formules que tu mets dans quelles propriétés de quels contrôles (les noms) pour qu’on localise mieux le problème.CommentID=5Hif9QLncoPmExK, PostID=JpdiSxMTtbDOb5f
-
Je n’ai jamais eut l’occasion de constater ce problème, mais :
1- tu veux sans doute dire Text(Today();”dd/mm/yyyy”) ?
2- tu peux ajouter la culture (pays) qui peut éventuellement forcer le truc : Text(Today();”dd/mm/yyyy”;”fr-FR”)CommentID=HI5VE12gRnYqmPQ, PostID=NFZ7GBLYxqXZmq8
-
Je m’apprêtais à aller plus loin en vous fournissant la liste des icones avec les noms en Français. Malheureusement, ma session a expiré (pourquoi ? à 23h pétante ma session expire d’un coup d’un seul en plein travail ?) et j’ai tout perdu 🙂
Du coup je vous laisse un exercice pour appliquer ma démo 🙂
Dans les sources github de powerfx on a aussi les traductions dans le fichier ici :https://github.com/microsoft/Power-Fx/blob/dc9a3621d16bcc93e7ef764af9477d9c0f1df4ec/src/strings/fr-FR/PowerFxResources.resw
L’exercice consiste donc à appliquer le même processus (ou similaire) pour parser le code source, et obtenir les traductions. Le schéma des traductions est le suivant :
<data name="Icon_Import_DisplayName" xml:space="preserve">n <value>Importer</value>n </data>
Pour recoller les morceaux avec la liste des icones, il suffit de joindre en remplaçant dans Icon_****_Displayname les étoiles par le nom de l’icone. Ensuite la traduction se situe dans la balise <value>.
Bon courage 🙂
CommentID=31pCpCaVIo4sKQQ, PostID=1f1IfStDhuNA7GC
-
Salut, j’avais besoin aussi de ca, du coup le fait de ne pas être le seul, j’ai voulu apporter un coup de main.
Vous savez tous que powerFX est opensource ? Du coup un saut sur le github de powerfx et on trouve les énumérations, dont celle des icons (et bien sur on doit y trouver les fonts etc…)
https://github.com/microsoft/Power-Fx/blob/dc9a3621d16bcc93e7ef764af9477d9c0f1df4ec/src/libraries/Microsoft.PowerFx.Core/Types/Enums/EnumStoreBuilder.cs#:~:text=EnumConstants.IconEnumString,builtinicon%3APaste%5C%22%2C%20Leave%3A%5C%22builtinicon%3ALeave%5C%22%5D%22Du coup on fait une petite powerapps rapidos en collant le code source (uniquement la partie des icons) dans un label par exemple (ou une variable c’est comme on veut, puisque je vais juste générer une liste pour vous)
Ensuite une petite expression régulière pour récupérer le nom de l’icon tel qu’utilisée dans powerapps (builtin:***) et un matchall qu’on glisse en propriété ‘item’ d’une gallerie pour voir ce que ca donne :MatchAll(Label1.Text;”(?<iconname>builtinicon:.*?)\\”)
Finalement une petite concaténation pour vous fournir la liste prête à copier coller dans votre app :
"["&Char(10)&Concat(MatchAll(Label1.Text;"(?<icon>builtinicon:(?<name>.*?))\\");"{icon:"""& icon &""";name:"""&name&"""}";";"&Char(10))&Char(10)&"]"
Ca donne une liste de 175 records mais vous pourrez modifier pour vos propres besoins :
[n{icon:"builtinicon:Add";name:"Add"};n{icon:"builtinicon:Cancel";name:"Cancel"};n{icon:"builtinicon:CancelBadge";name:"CancelBadge"};n{icon:"builtinicon:Edit";name:"Edit"};n{icon:"builtinicon:Check";name:"Check"};n{icon:"builtinicon:CheckBadge";name:"CheckBadge"};n{icon:"builtinicon:Search";name:"Search"};n{icon:"builtinicon:Filter";name:"Filter"};n{icon:"builtinicon:FilterFlat";name:"FilterFlat"};n{icon:"builtinicon:FilterFlatFilled";name:"FilterFlatFilled"};n{icon:"builtinicon:Sort";name:"Sort"};n{icon:"builtinicon:Reload";name:"Reload"};n{icon:"builtinicon:Trash";name:"Trash"};n{icon:"builtinicon:Save";name:"Save"};n{icon:"builtinicon:Download";name:"Download"};n{icon:"builtinicon:Copy";name:"Copy"};n{icon:"builtinicon:LikeDislike";name:"LikeDislike"};n{icon:"builtinicon:Crop";name:"Crop"};n{icon:"builtinicon:Pin";name:"Pin"};n{icon:"builtinicon:ClearDrawing";name:"ClearDrawing"};n{icon:"builtinicon:ExpandView";name:"ExpandView"};n{icon:"builtinicon:CollapseView";name:"CollapseView"};n{icon:"builtinicon:Draw";name:"Draw"};n{icon:"builtinicon:Compose";name:"Compose"};n{icon:"builtinicon:Erase";name:"Erase"};n{icon:"builtinicon:Message";name:"Message"};n{icon:"builtinicon:Post";name:"Post"};n{icon:"builtinicon:AddDocument";name:"AddDocument"};n{icon:"builtinicon:AddLibrary";name:"AddLibrary"};n{icon:"builtinicon:Home";name:"Home"};n{icon:"builtinicon:Hamburger";name:"Hamburger"};n{icon:"builtinicon:Settings";name:"Settings"};n{icon:"builtinicon:More";name:"More"};n{icon:"builtinicon:Waffle";name:"Waffle"};n{icon:"builtinicon:ChevronLeft";name:"ChevronLeft"};n{icon:"builtinicon:ChevronRight";name:"ChevronRight"};n{icon:"builtinicon:ChevronUp";name:"ChevronUp"};n{icon:"builtinicon:ChevronDown";name:"ChevronDown"};n{icon:"builtinicon:NextArrow";name:"NextArrow"};n{icon:"builtinicon:BackArrow";name:"BackArrow"};n{icon:"builtinicon:ArrowDown";name:"ArrowDown"};n{icon:"builtinicon:ArrowUp";name:"ArrowUp"};n{icon:"builtinicon:ArrowLeft";name:"ArrowLeft"};n{icon:"builtinicon:ArrowRight";name:"ArrowRight"};n{icon:"builtinicon:Camera";name:"Camera"};n{icon:"builtinicon:Document";name:"Document"};n{icon:"builtinicon:DockCheckProperties";name:"DockCheckProperties"};n{icon:"builtinicon:Folder";name:"Folder"};n{icon:"builtinicon:Journal";name:"Journal"};n{icon:"builtinicon:ForkKnife";name:"ForkKnife"};n{icon:"builtinicon:Transportation";name:"Transportation"};n{icon:"builtinicon:Airplane";name:"Airplane"};n{icon:"builtinicon:Bus";name:"Bus"};n{icon:"builtinicon:Cars";name:"Cars"};n{icon:"builtinicon:Money";name:"Money"};n{icon:"builtinicon:Currency";name:"Currency"};n{icon:"builtinicon:AddToCalendar";name:"AddToCalendar"};n{icon:"builtinicon:CalendarBlank";name:"CalendarBlank"};n{icon:"builtinicon:OfficeBuilding";name:"OfficeBuilding"};n{icon:"builtinicon:PaperClip";name:"PaperClip"};n{icon:"builtinicon:Newspaper";name:"Newspaper"};n{icon:"builtinicon:Lock";name:"Lock"};n{icon:"builtinicon:Waypoint";name:"Waypoint"};n{icon:"builtinicon:Location";name:"Location"};n{icon:"builtinicon:DocumentPDF";name:"DocumentPDF"};n{icon:"builtinicon:Bell";name:"Bell"};n{icon:"builtinicon:ShoppingCart";name:"ShoppingCart"};n{icon:"builtinicon:Phone";name:"Phone"};n{icon:"builtinicon:PhoneHangUp";name:"PhoneHangUp"};n{icon:"builtinicon:Mobile";name:"Mobile"};n{icon:"builtinicon:Laptop";name:"Laptop"};n{icon:"builtinicon:ComputerDesktop";name:"ComputerDesktop"};n{icon:"builtinicon:Devices";name:"Devices"};n{icon:"builtinicon:Controller";name:"Controller"};n{icon:"builtinicon:Tools";name:"Tools"};n{icon:"builtinicon:ToolsWrench";name:"ToolsWrench"};n{icon:"builtinicon:Mail";name:"Mail"};n{icon:"builtinicon:Send";name:"Send"};n{icon:"builtinicon:Clock";name:"Clock"};n{icon:"builtinicon:ListWatchlistRemind";name:"ListWatchlistRemind"};n{icon:"builtinicon:LogJournal";name:"LogJournal"};n{icon:"builtinicon:Note";name:"Note"};n{icon:"builtinicon:PhotosPictures";name:"PhotosPictures"};n{icon:"builtinicon:RadarActivityMonitor";name:"RadarActivityMonitor"};n{icon:"builtinicon:Tablet";name:"Tablet"};n{icon:"builtinicon:Tag";name:"Tag"};n{icon:"builtinicon:CameraAperture";name:"CameraAperture"};n{icon:"builtinicon:ColorPicker";name:"ColorPicker"};n{icon:"builtinicon:DetailList";name:"DetailList"};n{icon:"builtinicon:DocumentWithContent";name:"DocumentWithContent"};n{icon:"builtinicon:ListScrollEmpty";name:"ListScrollEmpty"};n{icon:"builtinicon:ListScrollWatchlist";name:"ListScrollWatchlist"};n{icon:"builtinicon:OptionsList";name:"OptionsList"};n{icon:"builtinicon:People";name:"People"};n{icon:"builtinicon:Person";name:"Person"};n{icon:"builtinicon:EmojiFrown";name:"EmojiFrown"};n{icon:"builtinicon:EmojiSmile";name:"EmojiSmile"};n{icon:"builtinicon:EmojiSad";name:"EmojiSad"};n{icon:"builtinicon:EmojiNeutral";name:"EmojiNeutral"};n{icon:"builtinicon:EmojiHappy";name:"EmojiHappy"};n{icon:"builtinicon:Warning";name:"Warning"};n{icon:"builtinicon:Information";name:"Information"};n{icon:"builtinicon:Database";name:"Database"};n{icon:"builtinicon:Weather";name:"Weather"};n{icon:"builtinicon:TrendingHashtag";name:"TrendingHashtag"};n{icon:"builtinicon:TrendingUpwards";name:"TrendingUpwards"};n{icon:"builtinicon:Items";name:"Items"};n{icon:"builtinicon:LevelsLayersItems";name:"LevelsLayersItems"};n{icon:"builtinicon:Trending";name:"Trending"};n{icon:"builtinicon:LineWeight";name:"LineWeight"};n{icon:"builtinicon:Printing3D";name:"Printing3D"};n{icon:"builtinicon:Import";name:"Import"};n{icon:"builtinicon:Export";name:"Export"};n{icon:"builtinicon:QuestionMark";name:"QuestionMark"};n{icon:"builtinicon:Help";name:"Help"};n{icon:"builtinicon:ThumbsDown";name:"ThumbsDown"};n{icon:"builtinicon:ThumbsUp";name:"ThumbsUp"};n{icon:"builtinicon:ThumbsDownFilled";name:"ThumbsDownFilled"};n{icon:"builtinicon:ThumbsUpFilled";name:"ThumbsUpFilled"};n{icon:"builtinicon:Undo";name:"Undo"};n{icon:"builtinicon:Redo";name:"Redo"};n{icon:"builtinicon:ZoomIn";name:"ZoomIn"};n{icon:"builtinicon:ZoomOut";name:"ZoomOut"};n{icon:"builtinicon:OpenInNewWindow";name:"OpenInNewWindow"};n{icon:"builtinicon:Share";name:"Share"};n{icon:"builtinicon:Publish";name:"Publish"};n{icon:"builtinicon:Link";name:"Link"};n{icon:"builtinicon:Sync";name:"Sync"};n{icon:"builtinicon:View";name:"View"};n{icon:"builtinicon:Hide";name:"Hide"};n{icon:"builtinicon:Bookmark";name:"Bookmark"};n{icon:"builtinicon:BookmarkFilled";name:"BookmarkFilled"};n{icon:"builtinicon:Reset";name:"Reset"};n{icon:"builtinicon:Blocked";name:"Blocked"};n{icon:"builtinicon:DockLeft";name:"DockLeft"};n{icon:"builtinicon:DockRight";name:"DockRight"};n{icon:"builtinicon:LightningBolt";name:"LightningBolt"};n{icon:"builtinicon:HorizontalLine";name:"HorizontalLine"};n{icon:"builtinicon:VerticalLine";name:"VerticalLine"};n{icon:"builtinicon:Ribbon";name:"Ribbon"};n{icon:"builtinicon:Diamond";name:"Diamond"};n{icon:"builtinicon:Alarm";name:"Alarm"};n{icon:"builtinicon:History";name:"History"};n{icon:"builtinicon:Heart";name:"Heart"};n{icon:"builtinicon:Print";name:"Print"};n{icon:"builtinicon:Error";name:"Error"};n{icon:"builtinicon:Flag";name:"Flag"};n{icon:"builtinicon:Notebook";name:"Notebook"};n{icon:"builtinicon:Bug";name:"Bug"};n{icon:"builtinicon:Microphone";name:"Microphone"};n{icon:"builtinicon:Video";name:"Video"};n{icon:"builtinicon:Shop";name:"Shop"};n{icon:"builtinicon:Phonebook";name:"Phonebook"};n{icon:"builtinicon:Enhance";name:"Enhance"};n{icon:"builtinicon:Unlock";name:"Unlock"};n{icon:"builtinicon:Calculator";name:"Calculator"};n{icon:"builtinicon:Support";name:"Support"};n{icon:"builtinicon:Lightbulb";name:"Lightbulb"};n{icon:"builtinicon:Key";name:"Key"};n{icon:"builtinicon:Scan";name:"Scan"};n{icon:"builtinicon:Hospital";name:"Hospital"};n{icon:"builtinicon:Health";name:"Health"};n{icon:"builtinicon:Medical";name:"Medical"};n{icon:"builtinicon:Manufacture";name:"Manufacture"};n{icon:"builtinicon:Train";name:"Train"};n{icon:"builtinicon:Globe";name:"Globe"};n{icon:"builtinicon:HalfFilledCircle";name:"HalfFilledCircle"};n{icon:"builtinicon:Tray";name:"Tray"};n{icon:"builtinicon:AddUser";name:"AddUser"};n{icon:"builtinicon:Text";name:"Text"};n{icon:"builtinicon:Shirt";name:"Shirt"};n{icon:"builtinicon:Signal";name:"Signal"};n{icon:"builtinicon:Cut";name:"Cut"};n{icon:"builtinicon:Paste";name:"Paste"};n{icon:"builtinicon:Leave";name:"Leave"}n]
CommentID=vt0GvtvGKYz7Rtl, PostID=1f1IfStDhuNA7GC
-
Alexandre
Membre27 avril 2022 à 18h55 en réponse à: Power apps enregistre des données vide dans sharepointSi tu utilises des patchs il y a fort à parier que ton contexte change le temps que tes patchs se réalisent par exemple. Il se peut aussi que tu ais des erreurs dans tes patchs mais par défaut, si tu ne code pas la détection des erreurs, les patchs continuent comme si de rien était, en tous cas ton utilisateur n’en sait rien.
Je conseil de bien mettre en place une gestion d’erreurs en cas d’utilisation des patchs, c’est hyper important (bon j’espère que tu utilises effectivement les patchs sinon je raconte tout ca pour rien ^^ )CommentID=2TxcUKvlxLQSBFb, PostID=2bfyc58DmLG22CM
-
Salut
Un truc du genre peut être :
Dans la source de ton combobox (Items) :ForAll(n Sequence(CountRows(ComboBoxSample)+1);n If(Value=CountRows(ComboBoxSample)+1;{Value1:"Autre"};Index(ComboBoxSample;Value))n)
Ce qui donnerait :
Puis pour réaliser les actions qui dépendent du choix ‘Autre’ tu peux faire un if sur la condition : ComboBox1.Selected.Value1 = “Autre”
CommentID=NnwiGtlpq16EU8G, PostID=CWSBRijghAVHbmB
-
Ta galerie répète l’action que tu codes dans ton template (le premier élément de ta galerie. Pour chaque élément d’une collection (la propriété item) la galerie duplique les contrôles et le ‘code’ que tu as associé (propriétés de chacun des éléments de ta collection).
Donc si tu code un navigate(monEcran) sur le chevron de droite, tous les chevrons feront la même chose : naviguer vers ‘monEcran’.
Comme te dis @Geoffroy WAGNER il faudrait que tu saches sous quelles conditions de chacun de tes éléments de ta collection tu seras amené à naviguer vers un écran plutôt qu’un autre.
Ici ta captude d’écran semble lister des défauts. Peut être que chacun de ces défauts sont catégorisés par criticité, ou par nature de dysfonctionnement. C’est peut être donc ce critère qui te permettra de savoir vers quel écran tu dois naviguer.
Ton approche doit donc être la suivante :
” j’ai un élément (dysfonctionnement) et pourquoi je veux que quand je clic sur le chevron ca aille vers tel ou tel écran ?”
Ca te donnera un schéma en bon francais qui devrait ressembler à :
“Si mon dysfonctionnement est de tel type, alors je vais vers tel écran, par contre si il est de tel type, alors je vais vers un autre écran etc…”
Du coup ca se transcrira dans ton onSelect avec un formule powerFX qui ressemblera à :If(n //premier critère à testern ThisItem.maPropriete = "cecicela";n Navigate(monEcran1);n //Sinon je test un autre critère (ou le même avec une autre valeur attendue)n ThisItem.monAutrePropriete = 1456;n Navigate(monAutreEcran);n //Sinon, si aucun cas n'a été rencontré, je fais l'action suivanten Notify("autre cas non géré") //par exemple mais ca peut être n'importe quelle action comportementalen)
Si ce n’est pas assez clair, je t’invite à te rendre dans le yammer d’entreprise qui correspond au logo de ton application 😉 tu y trouveras certainement de l’assistance dans le groupe dédié à PowerApps. Tu peux aussi essayer de me trouver dans le teams de ton entreprise pour que je t’accorde quelques temps d’explications et d’aide 😉 )
CommentID=QcPqXMS62tFFkbb, PostID=CFCdqINmqb6Alsi
-
J’avais fait un composant qui calculait les jours fériés pour une année donnée. Si ca peut t’aider je pourrais voir pour te partager mes calculs (pas hyper compliqué une fois qu’on a trouvé toutes les règles de tous les jours fériés)
CommentID=bP2YjJGnrMF6tsZ, PostID=CLdsoXbhxLJ8DFo
-
Hello
Tu as mis ta variable globale dans le default de la datacard de ton formulaire ou dans le default de ton textinput ?
En gros, je vois trois zones intéressantes à surveiller/utiliser quand on veut utiliser les formulaires et modifier les valeurs par défaut ou faire un calcul lors de la mise à jour : le default de la datacard, le default du contrôle dans la datacard, et le update de la datacard. Ce dernier est utilisé au moment du submit pour savoir quelles sont les valeurs qui ont changé et quelles sont les valeurs à submit.CommentID=fLboLZWRqQtqhpj, PostID=Wun7FAGn0M1zZPy
-
Juste pour info le caractère + est tout à fait valable dans les adresses email et les validateurs ont trop souvent tendance à l’interdire…
Ainsi truc+much@mail.ext est une adresse mail tout à fait valide.
Dans la dernière regexp de @R3dKap on pourrait alors ajouter ce symbole dans la classe de la première partie ^([a-zA-Z0-9_\-\.\+]+)@… (je ne reproduit pas tout car le code de la regexp communiquée par @R3dKap m’apparait tronqué)
CommentID=IueLArkw6rMAmmK, PostID=SJP2lxAg8E5Dsu3
-
Pour avoir 1 jour de différence entre 2 mêmes dates, tu peux ajouter 1 jour à ton calcul (je sais c’est con dit comme ca )
Pour le composant, je te laisse juste mon code qui calcul les jours fériés. C’est repris et adapté depuis des formules excels.Self.année
fait référence à l’année dont tu souhaites obtenir les jours fériés.
Set(n Paques;n 22 + Mod((19*Mod(Self.année;19))+24;30) + Mod((Mod(Self.année;4)*2) + ( Mod(Self.année;7)*4 ) + ( Mod((19*Mod(Self.année;19))+24;30)*6) + 5;7)-1+Date(Self.année;3;1)n);;nSet(n joursFeriés;n Table(n {name:"Jour de l'an";date:Date(Self.année;1;1)};n {name:"Pâques";date:Paques};n {name:"Lundi de Pâques";date:Paques+1};n {name:"Fête du travail";date:Date(Self.année;5;1)};n {name:"Victoire 1945";date:Date(Self.année;5;8)};n {name:"Ascension";date:Paques+39};n {name:"Pentecôte";date:Paques+49};n {name:"Lundi de Pentecôte";date:Paques+49+1};n {name:"Fête Nationale";date:Date(Self.année;7;14)};n {name:"Assomption";date:Date(Self.année;8;15)};n {name:"Toussaint";date:Date(Self.année;11;1)};n {name:"Armistice 1918";date:Date(Self.année;11;11)};n {name:"Noël";date:Date(Self.année;12;25)}n )n)
SubCommentID=N9HMWu8VpfEOKgv, CommentID=gsMhvWUgAvDSxxv, PostID=CLdsoXbhxLJ8DFo
-
Certains fichiers font jusque 150000 lignes…. et je dois faire de l’annule et remplace…
SubCommentID=g9PGhUeccQc5JrZ, CommentID=gPfiGMPRbHn2fMh, PostID=3KQEiHzf1bmJDoY