Hallo,
in Formularen binde ich häufig ein Makro an das Ereignis "Vor der Datensatzaktion". Wie ist es innerhalb des aufgerufenen Makros möglich, das auslösende Ereignis zu bestimmen?
Danke für Tipps
Oliver
auslösendes Ereignis ermitteln
Moderator: Moderatoren
-
- **
- Beiträge: 39
- Registriert: Fr, 27.11.2009 15:07
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: auslösendes Ereignis ermitteln
Hallo Oliver,
ich steh´grad irgendwie auf dem Schlauch...
was hast du denn genau vor?
Lg, Marci
ich steh´grad irgendwie auf dem Schlauch...

Lg, Marci
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
-
- **
- Beiträge: 39
- Registriert: Fr, 27.11.2009 15:07
Re: auslösendes Ereignis ermitteln
Moin Marcel,
Danke, daß Du mir klarmachst, daß ich mich da nicht verständlich ausgedrückt hab - ist manchmal nicht so einfach für mich, die eigenen Probleme verständlich rüberzubringen, wenn ich "mitten im Thema bin". Also:
Basic-Info:
-----------
Ich habe eine sqlite-Datenbank und verwende OOo Base 3.2.1 als Frontend. Die Datenbank ist für meine Verhältnisse sehr umfangreich (30Tabellen davon 14 zum Loggen) und ich möchte grade im Basic-Code, um den ich nicht herumkomme, wenn ich sinnvolle Benutzerschnittstellen per Formular schaffen will, möglichst nur das tun, was notwendig ist; der Gedanke heißt: Vermeidung statt Verwirrung. Da ich nicht der tolle Programmier-Hecht bin
geht's leider nur sehr langsam.
(momentanes) Problem:
---------------------------
In die Tabellen, die keine Logging-Tabellen sind (Logging-Tabellen haben immer den Namensanfang xlog_), schreibe ich bei jedem UPDATE und INSERT aus einer Variablen (die bereits gefüllt ist) in ein immer gleich lautendes Feld (id_staff_editor) die ID desjenigen, der ein INSERT/UPDATE durchgeführt hat. Wenn ein Datensatz gelöscht wird, erfolgt zunächst ein UPDATE des aktuellen Datensatzes (id_staff_editor), damit klar ist, wer die Löschung vorgenommen hat und erst im 2. Schritt das Löschen des Datensatzes. Die notwendigen Makros habe ich an die Formular-Eigenschaften-Ereignisse "Vor der Datensatzaktion" und "Löschen bestätigen" gebunden. Da ich das bei etlichen Formularen machen müßte, möchte ich das gerne vermeiden und das per Listener/Handler realisieren. Ich hab mir schon einen Teil zurecht-/abgetippt, aber dieses Konzept will mir nicht so recht in den Sinn!
Hilfe nehme ich dankbar an
Gruß
Oliver
Danke, daß Du mir klarmachst, daß ich mich da nicht verständlich ausgedrückt hab - ist manchmal nicht so einfach für mich, die eigenen Probleme verständlich rüberzubringen, wenn ich "mitten im Thema bin". Also:
Basic-Info:
-----------
Ich habe eine sqlite-Datenbank und verwende OOo Base 3.2.1 als Frontend. Die Datenbank ist für meine Verhältnisse sehr umfangreich (30Tabellen davon 14 zum Loggen) und ich möchte grade im Basic-Code, um den ich nicht herumkomme, wenn ich sinnvolle Benutzerschnittstellen per Formular schaffen will, möglichst nur das tun, was notwendig ist; der Gedanke heißt: Vermeidung statt Verwirrung. Da ich nicht der tolle Programmier-Hecht bin

(momentanes) Problem:
---------------------------
In die Tabellen, die keine Logging-Tabellen sind (Logging-Tabellen haben immer den Namensanfang xlog_), schreibe ich bei jedem UPDATE und INSERT aus einer Variablen (die bereits gefüllt ist) in ein immer gleich lautendes Feld (id_staff_editor) die ID desjenigen, der ein INSERT/UPDATE durchgeführt hat. Wenn ein Datensatz gelöscht wird, erfolgt zunächst ein UPDATE des aktuellen Datensatzes (id_staff_editor), damit klar ist, wer die Löschung vorgenommen hat und erst im 2. Schritt das Löschen des Datensatzes. Die notwendigen Makros habe ich an die Formular-Eigenschaften-Ereignisse "Vor der Datensatzaktion" und "Löschen bestätigen" gebunden. Da ich das bei etlichen Formularen machen müßte, möchte ich das gerne vermeiden und das per Listener/Handler realisieren. Ich hab mir schon einen Teil zurecht-/abgetippt, aber dieses Konzept will mir nicht so recht in den Sinn!
Code: Alles auswählen
Global myInsUpdListener
Sub AddInsUpdListener()
oForm = ThisComponent.drawpage.forms.getByName("MainForm")
myInsUpdListener = CreateUnoListener("InsUpdListener_","com.sun.star.sdb.XRowSetApproveListener")
oForm.addRowSetApproveListener(myInsUpdListener)
End Sub
Sub RemoveInsUpdListener
oForm.removeRowSetApproveListener(myInsUpdListener)
End Sub
Sub InsUpdListener_disposing(oEvent)
End Sub
Gruß
Oliver
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: auslösendes Ereignis ermitteln
Hi Oliver,
mit dem Listener kenn ich mich leider GAR ned aus. Ich würde deine Formular-Funktion auch nur über eine Sub realisieren und diese dann mit jedem Button "Speichern" verbinden.
Lg, Marci
mit dem Listener kenn ich mich leider GAR ned aus. Ich würde deine Formular-Funktion auch nur über eine Sub realisieren und diese dann mit jedem Button "Speichern" verbinden.
Lg, Marci
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]