Lade...
 

CX_SPAN_DATE::SetRealStartOfPeriod

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
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)