Seite 1 von 1
Erfassungsdatum vorbelegen?
Verfasst: So, 15.09.2013 17:58
von Gernotjr
Hallo,
ich habe eine OO Datenbank in der ich Belege erfasse. Um Dinge besser nachvollziehen zu können, ist ein Feld das Erfassungsdatum - welches ich momentan bei jedem neuen Beleg von Hand fülle
Das muss doch besser gehen. Soweit ich verstehe sind dafür Makros zuständig, oder? Wie kann ich entweder an der Tabelle oder im Formular ein Makro eintragen, welches das Feld Erfassungsdatum mit dem aktuellen Tag füllt,
sofern es leer ist (damit bei der Korrektur an alten Belegen das Datum nicht wieder überschrieben wird).
Hier im Forum bin ich noch nicht fündig geworden. Wer kann mir helfen - gerne auch mit einem Link zum relevanten Teil der Doku.
Danke,
Gernot
Re: Erfassungsdatum vorbelegen?
Verfasst: So, 15.09.2013 18:05
von F3K Total
Genot,
dafür benötigbst du kein Makro. Die interne HSQL Datenbank kann das selber.
Angenommen deine Tabelle zur heißt
Tabelle1, die Spalte, in der das Datum stehen soll, heißt
Datum, dann
gib einmalig unter Extras/SQL ... diesen Befehl ein:
Code: Alles auswählen
Alter table "Tabelle1" alter column "Datum" set default current_date
In dem Augenblick, in dem du einen neuen Datensatz speicherst, wird das aktuelle Datum gesetzt, es ist überschreibbar.
Gruß R
Re: Erfassungsdatum vorbelegen?
Verfasst: Fr, 20.09.2013 22:24
von Gernotjr
Danke R,
wenn ich direkt auf der Datenbank arbeite klappt das. Aber um einigermaßen komfortabel Belege inkl. Positionen zu erfassen habe ich ein Formular. Und das berücksichtigt leider nicht diesen Defaultwert
Weitere Vorschläge?
Grüße,
Gernot
Re: Erfassungsdatum vorbelegen?
Verfasst: Fr, 20.09.2013 22:50
von F3K Total
Hallo,
da liegst Du falsch.
F3K Total hat geschrieben:In dem Augenblick, in dem du einen neuen Datensatz speicherst, wird das aktuelle Datum gesetzt
Einfach kein Datum eintragen, Datensatz speichern. Geht definitiv im Formular genauso.
Gruß R
Re: Erfassungsdatum vorbelegen?
Verfasst: Sa, 21.09.2013 10:57
von RobertG
Hallo Gernot,
Base behandelt Defaultwerte und Standardwerte der GUI unterschiedlich. Default-Werte werden in der Datenbank definiert und springen dann ein, wenn ein neuer Datensatz abgespeichert wird, aber keinen Wert für das entsprechende Feld erhält. Standardwerte der GUI sind bei einer Eingabe direkt im Feld sichtbar, müssen also auch gegebenenfalls gelöscht werden.
Du möchtest den Datumswert vorher sehen, bevor er in die Tabelle eingefügt wurde? Das geht dann mit dem folgenden Makro:
Code: Alles auswählen
SUB Datum_aktuell
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM unoDate
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oFeld = oForm.getByName("datDatum")
IF isEmpty(oFeld.Date) = 0 THEN
unoDate = createUnoStruct("com.sun.star.util.Date")
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)
unoDate.Day = Day(Date)
oFeld.BoundField.updateDate(unoDate)
END IF
END SUB
Das Formular dazu wurde mit dem Assistenten erstellt. Deshalb die entsprechenden Bezeichnungen des Formulars und des Datumfeldes.
Gruß
Robert