Lade...
 

CX_SPAN_DATE::SetRealEndOfPeriod

CX_SPAN_DATE::SetRealEndOfPeriod

Beschreibung:

Diese Funktion setzt ein neues "echtes" Enddatum für die Datumsperiode, wobei

der Start unverändert bleibt. Wird z.B. das Enddatum der Periode "7.5.1996 - 10.5.1996" auf den "13.5.1996" gesetzt, so wird die Datumsperiode "10.5.1996 - 13.5.1996" erzeugt. Soll die Periodenlänge nicht verändert werden, so ist die Funktion MoveRealEndOfPeriod zu benutzen. 
Anders als bei SetEndOfPeriod wird immer das ältere Grenzdatum gesetzt. Dies kann (bei nicht positiver Periodenlänge) auch das Setzen des StartOfPeriod zur Folge haben.
Durch Übergabe eines Null-Objektes wird jüngere Grenzdatum gelöscht. Die Datumsperiode wird damit halbseitig ungeschränkt (Typ FROM im validEnum) oder unendlich (Typ ENDLESS, falls bereits das RealStartOfPeriod NULL ist) .

Code-Beispiele:

1. In dem Beispiel-Programm wird eine Datumsperiode generiert und ihr

"echtes" Enddatum auf den "3.10.1990" gesetzt. (Das "echte" Startdatum bleibt.)

Var(date, sdate)                          // erzeuge die Daten
CreateTransObject(CX_SPAN_DATE) -> sdate
CreateTransObject(CX_DATE) -> date
"10.10.1990 - 1.10.1990" sdate Put       // setze Datumsperiode
"3.10.1990" date Put                     // setze das neue Startdatum
date sdate Call(SetRealEndOfPeriod)

Als Ergebnis enthält sdate die Datumsperiode "3.10.1990 - 1.10.1990". Die Periodenlänge bleibt also negativ.

2. Nun wird aus einer Datumsperiode mit nicht positiver Periodenlänge

eines mit positiver, da für die Wahl des älteren Grenzdatums der Zustand vor dem setzen entscheidet.

Var(date, sdate)                          // erzeuge die Daten
CreateTransObject(CX_SPAN_DATE) -> sdate
CreateTransObject(CX_DATE) -> date

"10.10.1990 - 3.10.1990" sdate Put       // setze Datumsperiode
"1.10.1990" date Put                     // setze das neue Startdatum
date sdate Call(SetRealEndOfPeriod)

Als Ergebnis enthält sdate die Datumsperiode "1.10.1990 - 3.10.1990".

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_SPAN_DATE das Datum(-sobjekt)
  Top-1 CX_DATE oder Null das neue Startdatum
Stack(Out) Top - -

Funktionsaufruf: Call(SetRealStartOfPeriod)