Répondre à: Dataverse relation table et formulaires power apps

  • R3dKap

    Membre
    28 février 2023 à 14h07

    Patrice le problème vient probablement de la fonction Patch(). Tu ne devrais pas avoir besoin d’utiliser cette fonction puisque tu utilises un formulaire d’édition Power Apps (sauf si y’a un truc que je sais pas, du genre tu as besoin de mettre à jour une autre liste que celle des dépenses) : donc, un simple SubmitForm() sur ton bouton d’enregistrement de la dépense devrait suffire…

    La fonction Patch() est un peu plus touchy à utiliser…

    C’est normal qu’il n’y ait rien dans locSelectedDemande dans le cas de la création d’une nouvelle dépense puisqu’il s’agit justement de créer une nouvelle dépense et qu’elle n’existe pas encore. En fait, lorsque tu fais un NewForm() sur un formulaire, celui-ci ignore totalement le contenu de sa propriété Item. Il vide tous les champs et se met prêt à recevoir les saisies de l’utilisateur pour qu’à l’enregistrement il crée une nouvelle ligne dans la source de données.

    Tiens, je pense à un truc : faire un EditForm() et un NewForm() à partir d’un écran A vers un écran B où se trouve le formulaire n’est pas une bonne pratique. Normalement, à aucun moment un écran ne doit faire référence à des éléments se trouvant sur un autre écran que lui-même.
    La bonne pratique est donc la suivante :

    • Dans le OnSelect de l’icône ‘+’ qui te permet de créer une dépense tu mets ceci : Navigate(scr_AddItem; ScreenTransition.Fade; {locFormMode: FormMode.New})

    • Dans le OnSelect de la galerie des dépenses : Navigate(scr_AddItem; ScreenTransition.Fade; {locSelectedDépense: ThisItem; locFormMode: FormMode.Edit})

    • Et sur la propriété DefaultMode de ton formulaire ef_AddItem : locFormMode

    SubCommentID=tuxpqqL4AZjrvba, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI