Affichage msg d'erreurs personnalisés lorsque champs obligatoires non renseignés

  • Affichage msg d'erreurs personnalisés lorsque champs obligatoires non renseignés

    Posté par Anthony Bulteau sur 3 septembre 2024 à 12h07

    Bonjour la communauté,

    J’ai une application qui gère de la facturation fournisseurs. Les utilisateurs injectent une facture puis renseignent des champs. Certains sont obligatoires. Je voudrais que lorsque des champs obligatoires ne sont pas renseignés, l’appli affiche un message d’erreur et que les champs concernés affichent la fameuse phrase xxxxx est obligatoire.

    J’ai mis le code ci-dessous, Power Apps ne m’affiche aucune erreur, mais rien ne se passe quand je clique sur Enregistrer, j’ai dû oublier plein de choses.

    <div>
    <div>If(</div>
    <div>IsBlank(DataCardValueDateDocument) || IsBlank(DataCardValueTTC.Text) || IsBlank(DataCardValueFournisseur);</div>
    <div>Set(varErrorDateDocument; IsBlank(DataCardValueDateDocument));</div>
    <div>Set(varErrorTTC; IsBlank(DataCardValueTTC.Text));</div>
    <div>Set(varErrorFournisseur; IsBlank(DataCardValueFournisseur));</div>
    <div>Set(varShowChampsObligatoiresPopup; true);</div>
    <div>Set(varShowErrorMsg; true)</div>
    <div>;</div>
    <div>SubmitForm(frmFonctionnementModification);</div>
    <div>Set(varErrorDateDocument; false);</div>
    <div>Set(varErrorTTC; false);</div>
    <div>Set(varErrorFournisseur; false);</div>
    <div>Navigate(scrFonctionnementEnregistrementOK)</div>
    <div>)</div>
    </div>

    • Cette discussion a été modifiée Il y a 2 mois, 2 semaines par  Anthony Bulteau.
    Anthony Bulteau a répondu Il y a 2 mois, 2 semaines 3 Membres · 6 Réponses
  • 6 Réponses
  • R3dKap

    Membre
    3 septembre 2024 à 12h41

    Salut Anthony,

    Tu n’as pas besoin de le gérer avec des variables : c’est directement intégré au contrôle formulaire. Lorsque tu fais un SubmitForm() le système vérifie que les champs obligatoires ont bien été renseignés. Si ce n’est pas le cas, ceux qui ne sont pas remplis sont encadrés en rouge et un message “Le champ XXX est obligatoire.” s’affiche en dessous. Evidemment pour que cela fonctionne il faut que tu positionnes correctement la propriété Required de tes datacards.

    Donc ton code devrait se résumer à :

    SubmitForm(frmFonctionnementModification)

    Au passage, la bonne pratique veuille que l’on ne mette pas de code après un SubmitForm() car celui-ci peut avoir 2 résultats : OK ou KO. Ainsi, si juste après un SubmitForm() tu mets un Navigate(), tu risques de naviguer même si la soumission de ton formulaire échoue.

    Sachant que suite à un SubmitForm() le formulaire en lui-même déclenche soit l’événement OnSuccess si tout s’est bien passé ou OnFailure si ça c’est mal passé, à toi de placer le code souhaité au bon endroit c’est à dire dans l’un de ces 2 événements. Typiquement, en général après avoir soumis un formulaire on navigue vers un autre écran uniquement si ça s’est bien passé -> donc on met le Navigate() dans le OnSuccess du formulaire.

    😉

  • Fred Evellin

    Membre
    3 septembre 2024 à 12h43

    Bonjour,

    je ne travaille pas trop avec les DataCard. Mais est ce que une DataCard a un propriété On Change?

  • R3dKap

    Membre
    3 septembre 2024 à 12h46

    Dommage que tu n’utilises pas les datacards car tout est prévu dedans pour te faciliter la vie dans ton formulaire. Passke tout faire à la main c’est un peu galère, faisable mais chronophage.

    Le datacard en lui-même n’a pas d’événement OnChange. C’est le contrôle à l’intérieur qui porte la donnée qui possède plutôt cet événement : une liste déroulante, une bascule, un zone de saisie, etc.

    Que cherches-tu à faire exactement ?

  • R3dKap

    Membre
    3 septembre 2024 à 12h47

    Ah pardon, j’avais pas vu que c’était pas @Anthony qui avait répondu… Du coup, @Fred tu peux pas savoir ce que @Anthony cherche à faire… 😅

  • Anthony Bulteau

    Membre
    3 septembre 2024 à 14h09

    Merci beaucoup R3dKap pour tes précieux conseils 😀. En effet je n’utilisais jamais OnSuccess et OnFailure, je vais aller vers ça.

    Pour le code en, fait, j’ai manqué de précision, je savais pour les datacards, en fait ce que je voulais faire, c’est que si les champs obligatoires ne sont pas renseignés, j’affiche le popup ci-dessous (ça j’ai réussi) mais du coup les champs non renseignés ne s’affichaient plus en rouge.

    Et si le formulaire est ok, j’affiche ça.

    Bon j’avais fait un peu de chatgpt, c’est lui qui m’a donné en partie le code.
    Je vais continuer à creuser en prenant avec OnSuccess et OnFailure

  • Anthony Bulteau

    Membre
    3 septembre 2024 à 15h09

    Un grand merci R3dKap !

    Grâce à OnSuccess et OnFailure, j’ai exactement le comportement que je voulais.

Connectez-vous pour répondre.