Tagesdatum als Standardwert bei benutzerdefiniertes Feld

M_Eddy

Mitglied
Hallo zusammen,

ich habe gerade ein kleines Problem bei welchem ich mir selbst sehr blöd vorkomme, aber keine Lösung finde.
Wir planen ein benutzerdefiniertes Feld vom Typ "Datum" anzulegen und dort soll das Tagesdatum als Standardwert hinterlegt sein. Natürlich können wir das im AppDesigner oder im Code auch realisieren, aber wenn möglich würden wir hier gerne beim Sage Standard bleiben.

Weiß jemand, was in das Feld "Standardwert" eingetragen werden muss? Wir haben schon "GETDATE()", "TODAY()", "$DATE" und ähnliches probiert, aber ohne Erfolg.

Vielen Dank und viele Grüße

M_Eddy
 
Soweit ich weiß, kann man bei den Standardwerten im Administrator keine Funktionen verwenden?!

Wenn der Wert bei der Erfassung vorgeschlagen werden soll, müsste dies über den AppDesigner gelöst werden. Wenn das Datum automatisch im Datensatz erfasst werden soll, könnte man das Datum per SQL-Trigger setzen.
 
Das müsste eigentlich funktionieren, wenn der Beleg in dem Fall gespeichert wird:

Code:
ALTER TABLE KHKVKBelege ADD CONSTRAINT DF_DefaultDatum DEFAULT GETDATE() FOR USER_DatumDefault

Achtung:
Das macht also nur dann in der Datenbank direkt einen Eintrag beim Anlegen eines neuen Datensatzes.
Im Frontend wird in der Erfassung da noch nichts angezeigt!
Erst nach dem Speichern wäre das Feld gefüllt.
Soll im Frontend auch schon direkt was angezeigt werden, dann muss man im AppDesigner sich an die Felder hängen und den Standard-Wert dort vorbelegen.
 
Das müsste eigentlich funktionieren, wenn der Beleg in dem Fall gespeichert wird:

Code:
ALTER TABLE KHKVKBelege ADD CONSTRAINT DF_DefaultDatum DEFAULT GETDATE() FOR USER_DatumDefault

Das benutzerdefinierte Feld sollte beim Speichern des Datensatzes vom Belegobjekt gesetzt werden, daher wird die Lösung per Standardwert auf Tabellenebene nicht funktionieren?! Also Trigger oder AppDesigner, wie bereits vorgeschlagen.
 
Deswegen extra der Achtung-Text unter dem Schnippsel ;)
Ist das Feld im Frontend gefüllt bei der Anlage des Datensatzes, dann wird der Wert gesetzt, sonst der Default-Wert.

Der von Ihnen beschriebene Trigger würde auch im Frontend nichts vorbelegen, so dass das Ergebnis das gleiche wäre wie das Hinterlegen eines Default-Wertes.
 
Deswegen extra der Achtung-Text unter dem Schnippsel ;)
Ist das Feld im Frontend gefüllt bei der Anlage des Datensatzes, dann wird der Wert gesetzt, sonst der Default-Wert.
Soweit ich weiß, werden beim Speichern alle Felder von der Belegengine gesetzt, unabhängig davon, ob das Feld im Frontend gefüllt ist, von daher würde der Defaultwert nicht funktionieren?! Wenn es anders ist, wäre dies eine Alternative zum Trigger.

Der von Ihnen beschriebene Trigger würde auch im Frontend nichts vorbelegen, so dass das Ergebnis das gleiche wäre wie das Hinterlegen eines Default-Wertes.
Deswegen habe ich am 27.3. geschrieben: "Wenn der Wert bei der Erfassung vorgeschlagen werden soll, müsste dies über den AppDesigner gelöst werden.".
 
@diakh hat Recht. Leider wird immer ein Wert übergeben. Wenn nichts angegeben ist (auch wenn das Feld im Frontend nicht existiert). In dem Fall wird aktiv "NULL" übergeben, also greift der Default-Wert nicht.

Trotzdem danke für die Vorschläge :)
 
Zurück
Oben