CX_SPAN_DATE::SetRealStartOfPeriod
Beschreibung:
Diese Funktion setzt ein neues "echtes" Startdatum für die Datumsperiode, wobei das
Ende unverändert bleibt. Wird z.B. das Startdatum der Periode "7.5.1996 -
10.5.1996" auf den "3.5.1996" gesetzt, so wird die Datumsperiode
"3.5.1996 - 10.5.1996" erzeugt. Soll die Periodenlänge nicht verändert
werden, so ist die Funktion MoveRealStartOfPeriod zu
benutzen.
Anders als bei SetStartOfPeriod wird immer das jüngere
Grenzdatum gesetzt. Dies kann (bei nicht positiver Periodenlänge) auch das
Setzen der Periodenlänge und damit indirekt das Setzen des EndOfPeriod zur
Folge haben.
Durch Übergabe eines Null-Objektes wird das ältere
Startdatum gelöscht. Die Datumsperiode wird damit halbseitig ungeschränkt (Typ
TO im validEnum) oder unendlich (Typ ENDLESS,
falls bereits das RealEndOfPeriod NULL ist) .
Code-Beispiele:
1. In dem Beispiel-Programm wird eine Datumsperiode generiert und ihr
"echtes" Startdatum
auf den "3.10.1990" gesetzt. (Das "echte" Enddatum 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(SetRealStartOfPeriod)
Als Ergebnis enthält sdate die Datumsperiode "10.10.1990 -
3.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 jüngeren Datums der Zustand vor dem setzen entscheidet.
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
"12.10.1990" date Put
// setze das neue Startdatum
date sdate Call(SetRealStartOfPeriod)
Als Ergebnis enthält sdate die Datumsperiode "10.10.1990 -
12.10.1990".
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)