Réponses céées sur le Forum

Page 6 sur 7
  • Si 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’écran

    CommentID=55iD5k7lfpIWlHX, PostID=ftZwKSf20oqbtPc

  • Alexandre

    Membre
    13 mai 2022 à 15h54 en réponse à: Disposition dynamique des contrôles dans une galerie

    Tu 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

  • Alexandre

    Membre
    10 mai 2022 à 20h06 en réponse à: Date en lettres

    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

  • Alexandre

    Membre
    9 mai 2022 à 21h20 en réponse à: Collecter les îcones

    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

  • Alexandre

    Membre
    9 mai 2022 à 17h41 en réponse à: Collecter les îcones

    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%22

    Du 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

    Membre
    27 avril 2022 à 18h55 en réponse à: Power apps enregistre des données vide dans sharepoint

    Si 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

  • Alexandre

    Membre
    27 avril 2022 à 18h52 en réponse à: Champs "Autre

    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

  • Alexandre

    Membre
    23 avril 2022 à 19h47 en réponse à: Licences

    Super ! Merci pour tous ces détails, je vais pouvoir voir ca avec eux ! 👏

    CommentID=rjRg3iSIwRZOlWS, PostID=yJZbR1KG1ySRaaS

  • Alexandre

    Membre
    23 avril 2022 à 9h59 en réponse à: Galerie Power Apps

    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

  • Alexandre

    Membre
    17 avril 2022 à 19h03 en réponse à: Jours ouvrable dans PowerApsp

    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

  • Alexandre

    Membre
    13 avril 2022 à 9h11 en réponse à: Variable comme valeur par défaut

    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

  • Alexandre

    Membre
    15 mars 2022 à 8h53 en réponse à: REGEX

    ah oui effectivement. Je me suis laissé abuser par la coloration spécifique pensant la voir en intégralité 😉

    CommentID=3cgI43pmD0VTx4O, PostID=SJP2lxAg8E5Dsu3

  • Alexandre

    Membre
    14 mars 2022 à 22h43 en réponse à: REGEX

    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

  • Alexandre

    Membre
    19 avril 2022 à 11h00 en réponse à: Jours ouvrable dans PowerApsp

    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

  • Alexandre

    Membre
    10 mars 2022 à 23h02 en réponse à: Migration de dataflows entre environnements

    Certains fichiers font jusque 150000 lignes…. et je dois faire de l’annule et remplace…

    SubCommentID=g9PGhUeccQc5JrZ, CommentID=gPfiGMPRbHn2fMh, PostID=3KQEiHzf1bmJDoY

Page 6 sur 7