Spezielles Datumsformat erzeugen

Papyrus 11.x
Win 10 Pro

Papyrus kennt ja Rechenfunktionen für Datenbank und Tabellen.
Wie kann ich die in einem normalen Text aufrufen?
Ich benötige das aktuelle Datum, das NUR aus Monat in Textform und Jahr als Zahl besteht.
Das steht aber nicht direkt zur Verfügung.
SQL und Programmieren kann ich.

Mit der Rechenfunktion gibt es diese Befehle nicht und die Mini-Tabelle lässt sich nicht an der gewünschten Stelle positionieren.

Mir würde es genügen, wenn ich wüsste, wie ich im normalen Text einen passenden Befehl einfügen kann. Das Handbuch hat mir da auf den Suchbefehl mit Datum nirgendwo einen Hinweis gegeben.

Mir genügt auch ein Tipp, in welchem Handbuchkapitel steht, wie es geht.

Vielen Dank im Voraus.

Moin Stephan.
Wir schrieben schon auf FB und es ließ mir keine Ruhe.
Es geht mit Bordmitteln von Papyrus.
Du muss zwei Querverweise (beliebiger Ausdruck) im Text anlegen. Den einen für das aktuelle Jahr und den zweiten für den aktuellen Monat. Das zugrunde gelegte Datum ist das Systemdatum. Die Notation sieht wie folgt aus:

Für das Jahr: YEAR(SYSDATE())

Für den Monat: MONTHNAME(SYSDATE())

Getestet unter Mac OS und mit Papyrus 11.x.

Gruß aus MG
Klaus

Es reicht ein Querverweis:
grafik
Ausgabe im Text: Februar 2024

Danke - das funktioniert super!

Was muss ich an diesem Aufruf ändern, damit ich bis zu 7 Tage nach dem Monatswechsel noch den vergangenen Monat dort drin stehen habe?

MONATSNAME(SYSTEMDATUM() - 7 * 24 * 3600) + " " + JAHR(SYSTEMDATUM())

Liefert nicht das gewünschte Ergebnis.

Ein Ansatzpunkt wäre, die Differenz zwischen dem Monatsanfang und dem aktuellen Datum zu berechnen. Wenn die Differenz kleiner 7 ist, soll der Vormonat ausgegeben werden, ansonsten der aktuelle Monat.

IF TOTALDAYS(AKTDATUM()) 
 - TOTALDAYS(CTOD("01." 
                  + MONAT(AKTDATUM()) 
                  + "." 
                  + JAHR(AKTDATUM))) < 7

THEN MONATSNAME(CTOD("1." 
                    + VAL(MONAT(AKTDATUM) - 1) 
                    + "." 
                    + JAHR(AKTDATUM)))

ELSE MONATSNAME(AKTDATUM())

Es fehlt noch ein Ausdruck für den Vormonat.

1 „Gefällt mir“

Ich hatte gedacht:
Ich kann doch vom aktuellen Datum einfach 7 Tage abziehen (in Sekunden oder Millisekunden) und dann das Datum ausgeben. Das wäre viel einfacher.

Dazu muss ich aber auf den Timestamp zurückgreifen.
Da muss ich mir die Beschreibung der zur Verfügung stehenden Befehle nochmal anschauen.
In C und PHP hätte ich das schon erledigt, evtl. sogar mit einem Trick über DOS. :wink: :stuck_out_tongue:
Nur in der Papyrus-Umgebung eben nicht …

Die Lösung lautet

MONATSNAME(AKTDATUM() - 7) + " " + JAHR(AKTDATUM())

MONATSNAME(AKTDATUM()-7) + " " + JAHR(AKTDATUM()-7)
Macht das gleiche beim Jahreswechsel.

Damit bekomme ich meine (Ab-) Rechnungen auch noch sauber ausgefüllt, wenn ich das erst innerhalb der ersten Woche des Folgemonats schaffe abzuarbeiten.

1 „Gefällt mir“