Erfassungsdatum vorbelegen?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Gernotjr
Beiträge: 5
Registriert: Sa, 14.09.2013 16:01

Erfassungsdatum vorbelegen?

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Erfassungsdatum vorbelegen?

Beitrag 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
Gernotjr
Beiträge: 5
Registriert: Sa, 14.09.2013 16:01

Re: Erfassungsdatum vorbelegen?

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Erfassungsdatum vorbelegen?

Beitrag 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
RobertG
********
Beiträge: 2066
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Erfassungsdatum vorbelegen?

Beitrag 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
Dateianhänge
Default_Datum_Jetzt.odb
Setzt das aktuelle Datum im Formular, wenn die Zelle leer ist.
(13.24 KiB) 223-mal heruntergeladen
Antworten