Bonjour à toutes et tous,
je tente de comprendre le fonctionnement de l’évènement “Avant l’action d’enregistrement” d’un formulaire lié à une table dans LOOBase.
En effet, avec l’exemple très simple ci-joint, je tente d’afficher un message “Toto” lorsque je modifie un enregistrement de la table “Tâches” dans le formulaire “Tâches”. Je m’attends donc à ce que le message s’affiche qu’une seule fois, mais en fait il s’affiche deux fois: pourquoi donc ?
Exemple_Avant_action_enregistrement.odb.zip (11.2 KB)
Je vous remercie par avance pour votre aide,
Pascal
Merci par avance pour votre aide,
Pascal
Bonjour Pascal,
l’événement intercepté RowChangeEvent
se produit 2 fois :
- La première fois sa source est un objet
org.openoffice.comp.svx.FormController
qui gère le formulaire (-> on a changé de ligne dans la grille) - La seconde fois, la source est un objet
com.sun.star.comp.forms.ODatabaseForm
qui gère la connexion à la base via le SQL (-> on va actualiser les données dans la grille).
Tu peux interroger la source de l’événement et ne traiter que celle qui t’intéresse :
Sub Toto(pEvt As Object)
oSource = pEvt.Source
If oSource.ImplementationName = "com.sun.star.comp.forms.ODatabaseForm" Then
print "toto"
End If
End Sub
(merci pour le rappel @fpy
Bonjour Jfn,
merci pour ton aide. Effectivement ce la résout mon problème.
Merci beaucoup !