Webseiten-Werkzeuge

Benutzer-Werkzeuge


Hilfsprogramm p2fDate

Anforderung

Hin und wieder kommt es vor, dass in einem Dokument ein Datum oder eine Uhrzeit gedruckt werden muss, die im eigentlichen Druckdatenstrom nicht enthalten ist, wohl aber auf einer Zeitangabe im Druckdatenstrom basiert. Ein typischer Anwendungsfall ist das Avis eines Lastschrifteinzugs auf einer Rechnung, das seit der Einführung von SEPA mit dem konkreten Einzugsdatum versehen werden muss.

Kann oder soll das Programm zur Erzeugung der Rechnungen nicht entsprechend abgeändert werden, muss print2forms das Datum des Einzugs berechnen.

Realisierung

Für Fälle, in denen das normale Leistungsspektrum von print2forms nicht ausreicht, gibt es bei der Definition von Formularen ein System-Anfragefeld. Mit Hilfe diese Feldes kann während der Erzeugung eines Formulars ein beliebiges externes Programm aufgerufen werden, das dann die verlangte Aufgabe übernimmt. Dabei können auch Parameter an das Programm übergeben werden, die die zu lösende Anforderung definieren.

Für die Anforderungen der Datumsberechnung wurde das Programm p2fDate geschrieben. Das Programm wurde als sogenannte Systemfeldapplikation geschrieben, die nur innerhalb eines print2forms-Formulars in einen System-Anfragefeld verwendet werden kann.

Die Leistungsmerkmale des Programms sind:

  • Setzen von Bezugsdatum und Bezugszeit in europäischen und amerikanischen Formaten
  • Berechnung eines neuen Datums oder einer neuen Uhrzeit durch Addition oder Subtraktion von Zeitspannen (Auflösung in Sekunden)
  • Bereitstellung der Ergebnisse in europäischen und amerikanischen Formaten

Ein Aufruf der Systemfeldapplikation ohne Parameter über die Kommandozeile (DOS-Box, Eingabeaufforderung, Konsole) zeigt eine kurze Beschreibung, die möglichen Parameter und ein paar beispielhafte Aufrufe an. Auch die Rückkehrwerte des Programms sind aufgelistet:

  p2fDate V1.0  (c) 2013 by SPE Systemhaus GmbH
  
  Description:
   Adds or subtracts an amount of time from the
   actual date and returns the resulting date in
   format 'DD.MM.YYYY' or 'DD.MM.YYYY HH:MM:SS'.
  
  Program parameters are:
   Optional parameters:
   -iDD.MM.YYYY Set base date to given date
   -iYYYY/DD/MM Set base date to given date
   -iMM/DD/YYYY Set base date to given date
   -iHH:MM:SS   Set base time to given time
   -a<offset>   Time to add in seconds
   -s<offset>   Time to subtract in seconds
   -d           Return date
   -t           Return time
   -y           Return day of year
   -n           Return name of day 1 = Monday
   -u           Return US format 'MM/DD/YYYY'
  
  General return codes:
      0 - Success
     -1 - Failed
     -2 - Unknown program option
     -3 - Program option expected
     -4 - Time to add must be positive
     -5 - Time to subtract must be positive
     -6 - Add and subtract must be used exclusively
     -7 - Unknown input format
      n - Windows error code
  
  Usage in system request field:
   p2fDate -a432000
      Today plus five days as 'DD.MM.YYYY'
   p2fDate -d -s86400
      Yesterday as 'DD.MM.YYYY'
   p2fDate -a3600 -d -t
      In one hour as 'DD.MM.YYYY HH:MM:SS'
   p2fDate -n
      Name of today as 'N'
   p2fDate -d -y -u
      Name of today as 'MM/DD/YYYY DDD'
  
  print2forms (R)  is a registered trademark
                   of SPE Systemhaus GmbH



Aufruf im System-Anfragefeld

Für eine Datumsberechnung (hier als Beispiel ein SEPA Lastschriftavis) muss innerhalb eines Formulars zum einen ein System-Anfragefeld zur Berechnung des Datums und ein Textfeld zur Ausgabe des Datums eingefügt werden.

Im System-Anfragefeld wird mit der Feldauswahl das Datum im Format 'DD.MM.YYYY' aus der Rechnung entnommen, und dem Programm mit dem Parameter '-i\Datum Deutsch:1' als Bezugswert übergeben. Sicherheitshalber (es könnte ganz kurz vor Mitternacht sein) wird die Zeit fest auf Mittag gestellt. Der Parameter '-d' wählt als Rückgabewert ein Datum, welches durch Addition von 604800 Sekunden (7 Tage) auf das Bezugsdatum entsteht.

Die Angabe Ausführung abwarten im System-Anfragefeld sorgt dafür, dass mit dem Druck des Formulars gewartet wird, bis die Systemfeldapplikation beendet wurde und die angefragten Daten wirklich zur Verfügung stehen. Die Angabe des Zeichensatzes ist in diesem Fall unkritisch, weil die Kommandos für p2fDate nur ASCII-Zeichen enthalten.

Im Textfeld schliesslich wird das durch p2fDate errechnete Datum mittels der Referenz '~Datum Deutsch:1' in den Text des Avis aufgenommen.

Beispiele

Hier einige weitere Berechnungsbeispiele:

p2fDate -d Datum des Drucks im europäischen Format 'DD.MM.YYYY'
p2fDate -d -u Datum des Drucks im amerikanischen Format 'MM/DD/YYYY'
p2fDate -d -s86400 Datum von Gestern
p2fDate -d -a86400 Datum von Morgen
p2fDate -a3600 -d -t Datum und Uhrzeit in einer Stunde im Format 'DD.MM.YY HH:MM:SS'
p2fDate -a432000 Datum des Drucks plus fünf Tage im Format 'DD.MM.YYYY'
p2fDate -d -t Datum des Drucks im Format 'DD.MM.YYYY HH:MM:SS'
p2fDate -i27.02.2013 -a604800 -d '06.03.2013'


Hinweise

  • Vor seiner erstmaligen Benutzung muss das Programm p2fDate in das Installationsverzeichnis von print2forms kopiert worden sein. Der Aufruf im System-Anfragefeld kann dann, wie hier gezeigt, ohne Pfadangabe erfolgen.
  • Das Programm p2fDate kann nur über ein System-Anfragefeld mit Parametern aufgerufen werden. Der Grund dafür liegt darin, dass noch weitere Parameter benötigt werden, die vom Client oder Gateway vor dem eigentlichen Aufruf berechnet und in das sichtbare Aufrufkommando eingebaut werden müssen. In einer Konsole kann das Programm lediglich ohne Parameter aufgerufen werden, um die Hilfeinformation zu lesen.
  • Für die Verwendung des Programms p2fDate ist ein Eintrag in der Lizenzdatei der verwendeten Management-Konsole erforderlich.
print2forms/tips/tip43.txt · Zuletzt geändert: 2018-08-31 10:07 (Externe Bearbeitung)