
Reply To: Dataverse relation table et formulaires power apps
Bonjour Patrice ,
Dans ce genre de situation, je m’aide généralement de variables de contexte qui s’y prêtent particulièrement bien car on peut les intégrer dans la fonction Navigate()
Admettons que ton app soit répartie en 3 écrans :
Un écran “Sc_NDF” avec une galerie ‘GalerieNDF’ affichant les notes de frais :
Un écran mixte “Sc_NDF_Details” (celui dont tu as mis le screenshot) avec le formulaire de note de frais ‘FormNDF’ et une galerie avec les dépenses de la note de frais ‘GalerieDépenses’
et enfin, un écran “Sc_NDF_Dépense” avec le formulaire de dépense ‘FormDépenses’
L’écran Sc_NDF :
un bouton “+” pour naviguer vers l’écran Sc_NDF_Details en mode new :
NewForm(FormNDF);;Navigate(Sc_NDF_Details; Fade)
Dans la galerieNDF, un bouton “>” pour éditer l’item actuel, en le passant en tant que variable :
EditForm(FormNDF);;Navigate(Sc_NDF_Details; Fade;{vctxNDF:ThisItem})
L’écran Sc_NDF_Details :
Dans le formulaire FormNDF, on utilise la variable dans le paramètre “.item” :
vctxNDF
Dans la GalerieDépense, pour la source de données, on filtre les dépenses pour ne faire apparaître que celles qui sont associées à la NDF dans notre variable :
Filter('NDF Détails', NDFItem.NDF = vctxNDF.NDF)
(Où .NDF est le GUID de ta table NDF, le nom de ce champ est attribué automatiquement à la création de la table et a le nom de celle-ci, dans sa forme au singulier)
Toujours dans la galerie, on ajoute un bouton “>” pour naviguer vers le dernier écran, en passant la dépense sélectionnée en variable, on passe également la variable de la NDF actuelle pour l’avoir en valeur par défaut :EditForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxDépense:ThisItem;vctxNDF:vctxNDF})
Entre le formulaire et la gallerie, pour le OnSelect du bouton “+”, on passe simplement la variable vctxNDF pour avoir la valeur par défaut :
NewForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxNDF:vctxNDF})
L’écran Sc_NDF_Dépense
Ici dans le .item du formulaire, on met la variable correspondant à la dépense sélectionnée :
vctxDépense
Ensuite dans la Datacard NDF Item > DataCardValueX, dans le defaultSelectedItems, on met notre NDF sélectionnée :
vctxNDF
Si ça coince ou donne une erreur :Filter(Choices([@NDFdétails].cr2d6_NDFItem), NDF = vctxNDF.NDF)
CommentID=sR8QaE5j9XD2cWX, PostID=AnfuLI5T2x74sRI