Merci pour ces éléments Gissinger Véronique.
Alors, plusieurs choses…
Dans ta dernière capture, on utilise pas l’opérateur “&” pour séparer les appels de fonctions. Cet opérateur sert à concaténer des chaînes de caractères… 😉 Pour séparer les appels de fonctions on utilise “;;” (“;” si ton interface est en anglais, mais je vois qu’elle est en français). Donc, par exemple :
NewForm(SharePointForm1);; NewForm(SharePointForm1_1)
Ensuite, la sauvegarde de tes données est plus complexe qu’il n’y paraît parce-que tes données sont éclatées dans 2 formulaires différents. Mais c’est pas infaisable…
Première chose : les champs obligatoires de ta liste doivent TOUS être sur le premier formulaire qui est soumis. Car si tu es en mode création, TOUS tes champs obligatoires doivent être renseignés. A la modification c’est moins vrai passke t’aurais déjà des données dedans, mais bon…
Donc l’idée c’est que c’est ton formulaire SharePointForm1 qui doit contenir les champs obligatoires.
Ensuite, la soumission du 2ème formulaire ne doit se faire que SI ET SEULEMENT SI la soumission du premier s’est bien passée (sinon forcément, le 2è ne passera pas non plus).
Et autre point : le RequestHide() comme les Reset() des 2 formulaires ne doivent se faire qu’à la fin du traitement, c’est à dire une fois que la soumission du 2è formulaire s’est bien passée.
Autre problème que j’entrevois : le 2è formulaire doit être en mode MODIFICATION uniquement (FormMode.Edit). En effet, même si tu crées un nouvel élément dans ta liste, ton premier formulaire sera effectivement en mode création et à la soumission il créera bien un nouvel élément. Mais si le 2è est aussi en création il va tenter de créer un 2è nouvel élément alors qu’il suffit de modifier celui qui vient d’être créé. J’ai essayé de tenir compte de ça pour la suite ci-dessous… Arrrrrgh ! Ah bin non ça va pas marcher parce-que ton 2è formulaire sera en mode Edit sur un élément qui n’existe pas encore : tu ne pourras donc rien saisir dessus… Pas simple…
Mmmm… A ce moment-là je ne vois qu’une solution : soumettre classiquement le 1er formulaire puis si ça s’est bien passé patcher (et non soumettre) l’élément avec les données du 2è formulaire.
Donc, voici comment procéder :
SharePointIntegration.OnSave
SubmitForm(SharePointForm1)
SharePointForm1.OnSuccess
Patch('Trials requests'; SharePointForm1.LastSubmit; SharePointForm1_1.Updates);;nResetForm(SharePointForm1);;nResetForm(SharePointForm1_1);;nRequestHide()
C’est pas l’idéal parce-qu’on fait appel au SharePointForm1_1 qui est sur un autre écran mais ça devrait marcher quand même…
Sinon toutes les propriétés OnNew, OnEdit, OnView et OnCancel peuvent rester telles quelles mais où tu remplaces le “&” par “;;” comme expliqué précédemment.
Essaie déjà ça et voyons ce que ça donne…
Voilou… N’hésite pas si t’as encore besoin d’aide… 😉
CommentID=aVQVHAclsugb8pd, PostID=4VVrNK447keN2Ek