Réponses céées sur le Forum

Page 75 sur 79
  • R3dKap

    Membre
    27 décembre 2021 à 16h54 en réponse à: Problème Formulaire

    @Zliga Oumaima et voilà, après un petit redémarrage du Studio tout est rentré dans l’ordre… ça arrive… Quand le Studio a l’air de faire n’importe quoi et rien n’a de sens c’est qu’il est dans les vappes… 😁 Faut le fermer et ré-ouvrir l’application…

    CommentID=JK5itC8IHUyCntD, PostID=la1jQfdh06UQWhO

  • R3dKap

    Membre
    27 décembre 2021 à 14h22 en réponse à: Problème Formulaire

    Bonjour @Zliga Oumaima,

    Personnellement, ce que je ferais c’est de mettre le code suivant sur la propriété Text du message d’erreur situé juste en-dessous du contrôle des pièces jointes (supposons qu’il s’appelle ErrorMessage50) :

    If(n    CountRows(n        Filter(n            DataCardValue50.Attachments,n            IsBlank(n                Find(n                    ".csv",n                    Namen                )n            )n        )n    ),n    "Attention! Fichiers CSV uniquement.",n    Parent.Errorn)n

    L’idée c’est que l’on compte combien de pièces jointes on des extensions qui ne sont pas “.csv”. S’il en existe, on affiche le message d’erreur.

    Ensuite, dans le OnSelect du bouton pour enregistrer les données :

    If(n    IsBlank(ErrorMessage50.Text),n    SubmitForm(Form2)n)n

    On ne soumet le formulaire que s’il n’y a pas d’erreur dans le datacard des pièces jointes.

    Pour ce qui est de la navigation, on la place en général dans l’événement OnSuccess du formulaire : si tout s’est bien passé, on navigue. Donc dans le Form2.OnSuccess :

    Navigate(n    Projet,n    ScreenTransition.Covern)n

    Voilà. Dis-nous si ça fonctionne bien chez toi… 🙂

    CommentID=4MPDG8AynfFlJDq, PostID=la1jQfdh06UQWhO

  • R3dKap

    Membre
    24 décembre 2021 à 12h55 en réponse à: Créer un formulaire différent selon la vue

    @Marine ok je comprends mieux.

    Alors en fait, lorsque tu masques un champ sur un formulaire SharePoint, ça le masque pour les 3 “états” du formulaire : affichage, modification, création.

    Si tu veux différencier l’affichage ou pas du champ selon l’état du formulaire, c’est possible mais il faut passer par un p’tit bout de PnP PowerShell.

    Avant de t’expliquer comment faire, sache que fournir le lien direct du formulaire de création d’un nouvel élément n’empêchera pas un utilisateur d’aller sur la liste et de voir tout son contenu. En effet, je suppose que tu comptes utiliser une url de ce type :

    https://<ton tenant>.sharepoint.com/sites/<ton site>/Lists/<ta liste>/NewForm.aspxn

    Mais il suffira à l’utilisateur de supprimer la partie NewForm.aspx de l’url pour accéder directement à la liste. Et ce n’est pas parce-que tu vas customiser le formulaire de la liste à l’aide de Power Apps que tu pourras l’empêcher car l’url sera la même…

    Si ton objectif c’est :

    • des utilisateurs n’ont le droit que de créer des éléments dans la liste mais n’ont pas le droit d’en voir le contenu ni d’en modifier les éléments
    • toi, ou d’autres utilisateurs, sont les seuls à pouvoir visualiser le contenu de la liste ou d’en modifier les éléments

    …alors je vois 2 solutions pour le faire :

    1. Tu crées une petite app Power Apps où tu mets un contrôle formulaire avec le mode forcé à FormMode.New pour le mettre en “mode création”. Tu n’y mets que les champs que tu autorises aux utilisateurs. Puis tu partages l’application avec les utilisateurs qui peuvent créer des éléments dans la liste. Ils n’ont donc même pas besoin de connaître la liste et ne voient aucun indice dans l’url leur permettant d’accéder à la liste.
    2. Si ta liste est assez basique et qu’elle n’a pas de champ de recherche (lookup), tu crées un formulaire Forms qui alimentera ta liste SharePoint via un petit flux Power Automate. Pareil : la liste SharePoint sera totalement invisible pour eux.

    Quelle que soit la solution choisie, si ta liste évolue (modification de champ ou nouveau champ), il faudra que tu mettes à jour soit l’app Power Apps soit le formulaire Forms et le flux Power Automate.

    Maintenant, si l’histoire de l’url qui peut être modifiée par les utilisateurs ne t’embêtes pas plus que ça, je vais faire un article dans l’espace Base de connaissances qui explique comment procéder pour masquer un champ selon l’état du formulaire de ta liste (visu, modif, création) et je te préviendrais dès qu’il sera dispo.

    CommentID=SctOB9ffeNV5ScR, PostID=zHcwon71CWQSnaa

  • R3dKap

    Membre
    23 décembre 2021 à 21h18 en réponse à: Créer un formulaire différent selon la vue

    Salut @Marine, non je suis pas sûr d’avoir bien compris.

    1. Tu veux que certains champs soient masqués sur ton formulaire mais lorsque tu édites un éléments tu veux pouvoir renseigner ces mêmes champs ?!?
    2. Est-ce que tu veux que certains champs soient masqués lorsque le formulaire est ouvert en mode affichage et que ces mêmes champs apparaissent lorsque le formulaire est en mode édition ou création ?
    3. Je suppose que ton problème n’a rien à avoir avec les vues. Les vues et les formulaires n’ont rien à voir. C’est deux choses distinctes.

    CommentID=2arEYredLRSEPgc, PostID=zHcwon71CWQSnaa

  • R3dKap

    Membre
    22 décembre 2021 à 11h36 en réponse à: Composant Calendrier

    @Loïc Cimon top composant. Bien foutu et look sympa… J’❤… 😉

    Je l’ai testé et j’aimerais échanger avec toi sur 2 ou 3 points… 🙂

    1. J’ai pas tout de suite compris qu’il s’agissait d’une application à ouvrir. Comme j’ai vu l’extension .MSAPP je me suis dit que c’était un composant et j’ai donc tenté de l’importer en tant que tel mais évidemment ça ne fonctionnait pas. Peut-être ça serait pas mal sur ton Github de proposer à la fois l’app de test avec le composant dedans, mais aussi juste le composant tout seul pour qu’un développeur puisse simplement l’importer dans son appli.
    2. Y’a une fonctionnalité que je pensais trouver sur ton composant que j’aurais trouvé sympa, c’est la sélection d’une période entre 2 dates (un peu comme quand tu réserves un billet A/R pour un train ou un avion). A voir si compliqué à réaliser. On pourrait regarder ensemble si ça te tente…
    3. Lorsqu’on ouvre ton application il demande des autorisation pour les connecteurs Outlook et Office 365 Users. Comme tu ne les utilises pas pour le composant (ils devaient traîner là de tests précédent je suppose), il faudrait les enlever pour éviter la popup à l’ouverture de l’app ou à l’import du composant dans son appli perso. Du coup faudra que tu republies et que tu mettes à jour ton Github…
    4. J’ai remarqué que tu avais des warnings dans ton composant à cause de l’utilisation de collections et je me suis demandé pourquoi il y avait un paramètre de sortie ComponentId. Et puis j’ai compris que c’était justement à cause de la collection qui est globale et que donc tu dois différencier les dates sélectionnées selon l’instance du composant. Je me demande s’il n’y aurait pas une solution de contournement à ce problème (auquel moi-même j’avais déjà été confronté) en utilisant une chaîne de caractères avec séparateur : “Date1;Date2;Date3;…“. Et le Split() te permettrait de transformer ça en tableau. Plus de collection, plus de warning, plus de ComponentId. J’ai fait un test de mon côté et ça fonctionne. Je te mets la petite app en pièce jointe (à ouvrir en tant qu’application)…

    N’hésite pas à challenger tout ça… 😉

    CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

    • R3dKap

      Membre
      23 décembre 2021 à 21h13 en réponse à: Composant Calendrier

      @Loïc Cimon

      1. Alors oui, ça doit venir du fait que tu l’as exporté depuis une bibliothèque. Mais c’est bizarre quand même parce-que quand je l’ouvre en tant qu’application il me ramène même tes écrans de test et de démo. Si c’était un vrai export de composant il ne devrait y avoir QUE le composant dans le MSAPP. Et encore une fois, je n’ai pas réussi à importer ton fichier en tant que composant. Ce que je fais moi habituellement, c’est que j’ai une app par composant. Comme ça je l’exporte depuis l’app et il n’y a que le composant dans l’export (c’est en attendant qu’ils nous laissent la possibilité de sélectionner les composants à exporter).
      2. /
      3. /
      4. De mon point de vue l’utilisation du scope étendu dans les composants doit être réservé à des cas bien précis. Parce-que cela rend les données de ton app accessibles à ton composant, mais aussi vice-versa (comme lors de l’utilisation de collections dans un composant qui est global et donc visible en dehors du composant, ce qui n’est pas souhaitable -> d’où le warning). A mon avis, la notion même de composant implique que c’est une boîte noire pour l’application et que le seul moyen de faire transiter des données entre l’appli et le composant ce sont les paramètres. Maintenant, franchement, je pense que le boulot est pas si énorme que ça pour convertir ton composant en “mode string” pour éliminer les collections. Je jetterais un oeil un de ces 4 et te donnerai mon avis si tu veux…

      SubCommentID=Q8EOEi5WcEwShs7, CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

  • R3dKap

    Membre
    1 janvier 2022 à 17h26 en réponse à: Prendre des photos dans une application powerapps

    OK. Alors si les photos ne sont visualisées que dans l’application autant les mettre en pièces jointes et éviter les 4 colonnes…

    SubCommentID=TojjwEg80r5Kwme, CommentID=vw61pTX1IA1nZEg, PostID=xxFC0CJ6YUysRij

  • R3dKap

    Membre
    28 décembre 2021 à 21h45 en réponse à: Prendre des photos dans une application powerapps

    Quand tu dis “j’ai transformé cette liste” tu veux dire que tu as généré automatiquement une application Power Apps à partir de ta liste c’est ça ? Du coup tu te retrouves avec une application mobile qui te permet de gérer ta liste.

    1. Cependant, comme tu mets une capture du contrôle Pièces jointes je me demande si tu comptes l’utiliser pour permettre à l’utilisateur d’y ajouter les 4 photos en questions ? Cela veut dire que les photos ajoutées en pièces jointes doivent ensuite être réparties dans les 4 colonnes image de ta liste ? Si c’est le cas, je te proposerai une autre solution plus élégante tant pour l’utilisateur que pour toi maker de l’application… 😉
    2. Dans cette optique, peux-tu me préciser s’il est important que certaines photos soient dans certaines colonnes bien précises parmi les 4 de ta liste ? Ou s’agit-il simplement de 4 colonnes genre “Photo 1”, “Photo 2”, “Photo 3”, “Photo 4” parce-que l’idée c’est de ne pouvoir associer à l’élément de liste que 4 photos max ?

    SubCommentID=TTymVY94P6XsztK, CommentID=vw61pTX1IA1nZEg, PostID=xxFC0CJ6YUysRij

  • R3dKap

    Membre
    27 décembre 2021 à 15h53 en réponse à: Prendre des photos dans une application powerapps

    @Jfk2lax je vais faire un mini-tuto dans les jours qui viennent…

    Pour orienter le tuto, quel est ton cas d’usage ?

    Les photos prises à un instant t doivent être stockées en relation avec un élément de liste SharePoint ?

    SubCommentID=VC5Sre4S6xpPprc, CommentID=vw61pTX1IA1nZEg, PostID=xxFC0CJ6YUysRij

  • R3dKap

    Membre
    21 décembre 2021 à 17h52 en réponse à: Gérer les week-ends et les jours fériés d'un record dans sharepoint

    @Thika pardon je me suis trompé d’emplacement pour le +1 :

    DateDiff(DatePickerDebut_1.SelectedDate;DatePickerFin_1.SelectedDate)+1;0;1);"Date";n

    SubCommentID=7ck0aNYtG32n7Z3, CommentID=D49VMrVm3p9mWkf, PostID=PGGF2dlzyKLdZ63

  • R3dKap

    Membre
    20 décembre 2021 à 15h32 en réponse à: Gérer les week-ends et les jours fériés d'un record dans sharepoint

    @Thika s’il ne fait jamais le dernier jour, alors il faut juste rajouter un “+1” juste après la parenthèse fermante du DateDiff() :

    DateDiff(DatePickerDebut_1.SelectedDate;DatePickerFin_1.SelectedDate);0;1)+1;"Date";n

    Et c’est normal que les jours fériés ne marchent pas. Le tiret “-” est le séparateur des dates au format américain. C’est le slash “/” qui doit être utilisé pour les dates françaises. Mais malgré cela, je ne suis pas sûr que le ClearCollect() que tu fais avec des chaînes (dates entre des guillements) te crée vraiment des dates au final dans ta collection :

    ClearCollect(n    colHolidays;n    Split(n        "25-12-2021,27-12-2021,31-12-2021,01-01-2022, 03-01-20222";n        ","n    )n)n

    Du coup 2 solutions…

    1) Tu remplaces les “-” par des “/” dans ton code ci-dessus et il faut que tu modifies ta condition sur les jours fériés comme ceci :

    && !(Text(Date, DateTimeFormat.ShortDate, "fr-FR") in colHolidays.Result)n

    2) Tu modifies la manière dont tu remplis ta collection colHolidays pour y mettre de vraies dates comme ceci (et du coup rien d’autre à changer) :

    ClearCollect(n    colHolidays;n    DateValue("25/12/2021", "fr-FR"),n    DateValue("27/12/2021", "fr-FR"),n    DateValue("31/12/2021", "fr-FR"),n    DateValue("01/01/2022", "fr-FR"),n    DateValue("03/01/2022", "fr-FR")n)n

    Y’a sûrement moyen de faire plus élégant ou plus optimisé, mais ça ça devrait déjà marcher… 😊

    SubCommentID=z3w17I7weBnKx9s, CommentID=D49VMrVm3p9mWkf, PostID=PGGF2dlzyKLdZ63

  • R3dKap

    Membre
    20 décembre 2021 à 10h28 en réponse à: Gérer les week-ends et les jours fériés d'un record dans sharepoint

    @Thika, du coup, à la suite du code ci-dessus (attention je l’ai modifié récemment, prends bien la dernière version en rafraîchissant la page), tu devrais avoir le code suivant pour boucler la boucle :

    Clear(colGestionList);;nForAll(n    colDaysBewteenDates;n    Collect(n        colGestionList;n        Defaults(GestionList)n    );;n    Update(n        colGestionList;n        Last(colGestionList);n        {n            Staff: ComboBoxNom.Selected;n            Assiduite:  ComboBoxAssiduite.Selected;         n            DateP: Daten        }n    )n);;nPatch(GestionList; colGestionList);;n

    SubCommentID=hIPQROx25udT5ks, CommentID=D49VMrVm3p9mWkf, PostID=PGGF2dlzyKLdZ63

  • R3dKap

    Membre
    20 décembre 2021 à 10h15 en réponse à: Gérer les week-ends et les jours fériés d'un record dans sharepoint

    Salut @Thika ,

    Voici le code corrigé auquel j’ai rajouté un DropColumns() pour retirer la colonne Value qui a servi à générer les dates :

    ClearCollect(n    colDaysBetweenDates,n    DropColumns(n        Filter(n            AddColumns(n                Sequence(n                    DateDiff(n                        DatePickerDebut.SelectedDate;n                        DatePickerFin.SelectedDaten                    );n                    0;n                    1n                );n                "Date";n                DateAdd(n                    DatePickerDebut.SelectedDate;n                    Valuen                )n            );n            Weekday(n                Date;n                StartOfWeek.Mondayn            ) <> 6 && Weekday(n                Date;n                StartOfWeek.Mondayn            ) <> 7 && !(Date in JoursFériés.DateJourFérié)n        ),n        "Value"n    )n)n

    Voici ce que ça donne :

    @Thika : autre chose… si jamais tu as des erreurs dans une formule, pour nous aider à mieux la pister fait une capture de l’erreur avec la souris qui survole l’erreur (à l’endroit où c’est souligné en rouge plus foncé), comme ceci :

    SubCommentID=h1tq2ufcwoj0Atq, CommentID=D49VMrVm3p9mWkf, PostID=PGGF2dlzyKLdZ63

  • R3dKap

    Membre
    16 décembre 2021 à 14h44 en réponse à: Lancer script excel365 depuis un bouton dans power apps

    Effectivement, je ne le savais pas mais tu peux déclencher le script d’un fichier Excel depuis Power Automate :

    SubCommentID=P2dW8WaXPXd4tov, CommentID=sw62zSFotNFXtyI, PostID=OH7wUVOExGMHGLk

Page 75 sur 79