Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

Re: Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

von sschultewolter » Sa, 28.05.2016 11:15

Habe es heut Nacht noch hinbekommen.
tr.PNG
tr.PNG (21.93 KiB) 3548 mal betrachtet
tr.PNG
tr.PNG (21.93 KiB) 3548 mal betrachtet
Nun suche ich noch nach einer Möglichkeit, dass der Datensatz beim Wechsel in den nächsten Datensatz nicht automatisch gespeichert wird.
Müsste dazu für das Ereignis "Vor dem Datensatzwechsel" eine Abfrage reinbekommen,

1) Wenn nichts geändert wurde, schalte zum nächsten Datensatz
2) Wenn etwas geändert wurde, Abfrage über MsgBox, ob Datensatz gespeichert werden soll. (Entscheidung Ja oder Nein). Danach zum nächsten Datensatz
Dateianhänge
t.PNG
t.PNG (3.09 KiB) 3548 mal betrachtet

Re: Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

von RobertG » Sa, 28.05.2016 09:27

Hallo sschultewolter,

mit dem Datum dürftest Du keine Probleme haben, wenn Du das direkt in der Tabellenerstellung von MySQL löst:

Code: Alles auswählen

... `Updatedatum` DATE NULL DEFAULT NULL ON UPDATE CURRENT_DATE() ....
Das geht natürlich auch mit einem Timestamp.

Und wenn die Datenbankanmeldung nicht über die Zugangsdaten nur eines Nutzer erfolgt:

Code: Alles auswählen

... `Updateuser` VARCHAR(50) NULL DEFAULT NULL ON UPDATE CURRENT_USER() ....
Wenn ich Deinen Makrocode sehe, dann habe ich die Vermutung, dass dort nur der Text auf der Benutzeroberfläche geändert wird, aber keine Abspeicherung erfolgt.

Mit

Code: Alles auswählen

SUB save(oEvent AS OBJECT)
	oForm = oEvent.Source.Model
	oForm.updateString(oForm.findColumn("fd_EDIT_USER"),"Stefan")
END SUB
gebunden an die Datensatzaktion dürftest Du mehr Erfolg haben. Dann wird auch etwas geschrieben. Es geht auch

Code: Alles auswählen

SUB save(oEvent AS OBJECT)
	oForm = oEvent.Source.Model
	oFeld = oForm.getByName("fd_EDIT_USER")
	oFeld.BoundField.updateString("Stefan")
END SUB
Je nachdem, wie Dein Feld im Formular bzw. in der Tabelle heißt.
Bei der Datensatzaktion solltest Du den folgenden Hinweis aus dem Handbuch vielleicht beachten:
Datensatzaktion: Dies ist z. B. das Abspeichern mittels Button. Im Test ergibt sich, dass die Aktion Vor der Datensatzaktion regelmäßig doppelt erscheint, d. h. Makros werden direkt nacheinander zweimal abgearbeitet. Dies liegt daran, dass hier unterschiedliche Funktionen (Implementationen) ausgeführt werden. Beide sind mit Namen versehen: org.openoffice.comp.svx.FormController und com.sun.star.comp.forms.ODatabaseForm. Wenn innerhalb des Makros mit oForm.ImplementationName der entsprechende Name abgefragt wird, so kann das Makro auf eine Ausführung begrenzt werden.
Gruß

Robert

Re: Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

von sschultewolter » Fr, 27.05.2016 23:42

Also dass der Name bei einem Ereignis eingetragen wird, habe ich mit einem Makro geschafft, nur finde ich kein passendes Ereignis für diese Aktion. Hatte gedacht, es würde mit dem Ereignis "Vor Datensatzaktion" klappen, jedoch ist hier das Problem, dass wenn ich die Datensätze durchklicke, dieses jedes Mal ausgeführt wird :(

Re: Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

von F3K Total » Fr, 27.05.2016 15:52

Hi,
ich kenne mich mit MySQL nicht aus, habe deswegen eben kurz gegoogelt.
Die Aufgabe läßt sich am einfachsten innerhalb der MySQL-Datenbank mit einem Trigger, siehe z.B. hier, lösen.
Gruß R

Zuletzt bearbeitet von %Benutzer% am %Datum% im Forumular

von sschultewolter » Fr, 27.05.2016 12:28

Hallo,

ich habe ein Frontend für MySQL mit OO Base seit längerem realisiert. Nun arbeitet damit mehr als 1 Person. In der Regel ist es so, dass keine Daten verändert werden. Nun gibt es aber immer mal wieder Gründe, das ganze etwas zu verändern.

Nun suche ich nach einer Funktion, die beim Speichern eines Datensatzes das aktuelle Datum und den Benutzer setzt. Ich habe derzeit schon 2..3 Makros im Einsatz, die einen Pfad benutzdefinierten Pfad öffnen, sobald eine Aktion auf dem Button erfolgt.

Wie mache ich das nun am besten mit dem Datum? Der Benutzername kann im Makro festhinterlegt sein.


---

Ein Versuch:

Code: Alles auswählen

SUB save
fd_EDIT_USER.Text = "Stefan"
END SUB
aufzurufen, wenn das Ereignis "Vor dem Submit" erfolgt. Scheint aber nicht das richtige zu sein.

Nach oben