Formulaire dynamique avec Power apps

  • Formulaire dynamique avec Power apps

    Posté par Marielle sur 26 décembre 2023 à 18h19

    Bonjour

    Je voudrais solliciter votre aide pour trouver la meilleure façon de personnaliser avec Power Apps, un formulaire de création d’un nouvel élément d’une liste SharePoint pour permettre à l’utilisateur, en fonction de bénéficiaires qu’il souhaite, de saisir les informations les concernant.

    Pour chaque élément de la liste, j’enregistre les informations comme la date et le montant, mais aussi les bénéficiaires dont le nombre est variable. Et pour chaque bénéficiaire, j’enregistre le nom, numero de compte et nom de la banque.

    Comment puis-je réaliser cela?

    L’idée est ensuite de générer avec Power automate un fichier Word contenant des variables qui seront remplies avec les informations de la liste SharePoint. Le fichier Word contient un tableau qui récapitule les informations des bénéficiaires

    Merci

    guillaume a répondu Il y a 2 mois 3 Membres · 7 Réponses
  • 7 Réponses
  • Geoffroy

    Membre
    26 décembre 2023 à 19h36

    Bonjour Marielle,

    Si je comprends bien, le formulaire doit permettre de saisir une transaction mais pour un nombre indéterminé de bénéficiaires. Dans la liste SharePoint, il y aura donc nécessairement un enregistrement par couple transaction-bénéficiaire.

    Sans avoir essayé, je partirais sur une solution avec une galerie à l’intérieur du formulaire, alimentée par une collection contenant les données des bénéficiaires et un bouton pour en ajouter autant que nécessaire.

    Une fois que tous les bénéficiaires ont été saisis, un Patch avec la fonction ForAll devrait permettre de créer les enregistrements correspondants.

  • Geoffroy

    Membre
    26 décembre 2023 à 20h32

    J’ai fait un petit essai et ça marche. Une fois qu’on a saisi les champs du haut, le bouton + fait apparaitre un élément vide dans la galerie. Le + à droite de la ligne crée une ligne supplémentaire.

    Une fois tous les bénéficiaires saisis, on enregistre et ça crée des lignes dans la liste SharePoint (la dernière ligne vide est ignorée, bien sûr).

    Ca donne ceci. Est-ce que ça répond à ta problématique ?

    • Marielle

      Membre
      27 décembre 2023 à 14h33

      Merci Geoffoy pour ta réponse

      En effet, dans mes recherches, j’ai vu que la chose est possible en utilisant une galerie dans power apps pour personnaliser le formulaire.

      Ça, c’est top. Je vais essayer d’implémenter ça et je vous fais le retour.

      Ce que je veux être sûre d’avoir bien compris, c’est alors qu’un enregistrement est créé dans la liste pour chaque bénéficiaire ?

      À la fin de la manœuvre, un flux power automate génère, à partir des informations renseignées, un ordre de virement sous la forme d’un fichier Word dans lequel il y a un tableau contenant les informations sur les bénéficiaires.

      j’ai déjà créé et testé avec succès ce flux. La seule chose qui manquait, c’était de pouvoir récupérer les informations des bénéficiaires dont le nombre peut varier

      Merci d’avance pour votre aide précieuse

      • Geoffroy

        Membre
        27 décembre 2023 à 14h43

        Oui, on aura une ligne pour chaque bénéficiaire pour un ordre de virement donné. J’ai concaténé le numéro d’ordre et le nom du bénéficiaire pour la colonne Titre mais ce n’est pas obligatoire.

        L’important est de pouvoir filtrer les données à injecter dans le flux.

  • guillaume

    Membre
    27 décembre 2023 à 11h18

    Bonjour Geoffroy,

    ta solution me plait beaucoup.

    peux-tu nous donner les valeurs de ton patch et les paramètres pour afficher les lignes supplémentaires?

    En te remerciant.

    Guillaume

  • Geoffroy

    Membre
    27 décembre 2023 à 11h31

    Bonjour Guillaume,

    Avec plaisir 😉

    Gallery1 Items : colBeneficiaires

    Voici les OnSelect des icônes utilisées

    Icône Ajouter (principal) :

    ClearCollect(
    colBeneficiaires;
    {
    Titre: “”;
    Date_Ordre: DateTimeValue(txt_Date.Text);
    Motif_Ordre: txt_Motif.Text;
    Numero_Ordre: txt_Numero_Ordre.Text;
    Nom_Beneficiaire: “”;
    Numero_Compte_Beneficiaire: “”;
    Banque_Beneficiaire: “”;
    Montant: Value(txt_Montant.Text);
    Observations: txt_Observations.Text
    }
    )

    Icône Ajouter de la galerie :

    Patch(
    colBeneficiaires;
    ThisItem;
    {
    Titre: txt_Numero_Ordre.Text & “_” & txt_Nom.Text;
    Nom_Beneficiaire: txt_Nom.Text;
    Banque_Beneficiaire: txt_Banque.Text;
    Numero_Compte_Beneficiaire: txt_Numéro_Compte.Text
    }
    );;
    Collect(
    colBeneficiaires;
    {
    Titre: “”;
    Date_Ordre: DateTimeValue(txt_Date.Text);
    Motif_Ordre: txt_Motif.Text;
    Numero_Ordre: txt_Numero_Ordre.Text;
    Nom_Beneficiaire: “”;
    Numero_Compte_Beneficiaire: “”;
    Banque_Beneficiaire: “”;
    Montant: Value(txt_Montant.Text);
    Observations: txt_Observations.Text
    }
    )
    Icône Enregistrer :

    ForAll(
    Filter(
    Gallery1.AllItems;
    !IsBlank(Nom_Beneficiaire)
    );
    Patch(
    LSP_Transactions;
    Defaults(LSP_Transactions);
    {
    Titre: txt_Numero_Ordre.Text & “_” & txt_Nom.Text;
    Date_Ordre: DateTimeValue(txt_Date.Text);
    Motif_Ordre: txt_Motif.Text;
    Numero_Ordre: txt_Numero_Ordre.Text;
    Nom_Beneficiaire: txt_Nom.Text;
    Numero_Compte_Beneficiaire: txt_Numéro_Compte.Text;
    Banque_Beneficiaire: txt_Banque.Text;
    Montant: Value(txt_Montant.Text);
    Observations: txt_Observations.Text
    }
    )
    )

    Icône Recharger :

    Clear(colBeneficiaires);;
    Reset(txt_Montant);;
    Reset(txt_Date);;
    Reset(txt_Motif);;
    Reset(txt_Observations);;
    Reset(txt_Numero_Ordre)

    Ca peut certainement être optimisé (j’ai fait ça un peu vite)

    • guillaume

      Membre
      28 décembre 2023 à 16h07

      Je te remercie énormément.

      Cela m’ouvre des possibilités.

Connectez-vous pour répondre.