CX_PERIODIC_SPAN_TIME
Klassenhierarchie
- CX_CLASS
- CX_TERM
- CX_TIME
- CX_SPAN_TIME
- CX_PERIODIC_SPAN_TIME
- CX_SPAN_TIME
- CX_TIME
- CX_TERM
Beschreibung:
Mit dieser Klasse wird eine Menge von Zeitpunkten, die sich in einer bestimmten Zeitspanne befinden und in genau gleichen Abständen aufeinander folgen, abgebildet.
Es ist in jedem Fall eine Startzeit erforderlich. Falls kein Ende der Zeitspanne angegeben ist, wird dieses automatisch auf 24:00/0:00 festgelegt. Zeitspannen ohne Start, sowie ohne Start und Ende führen zu einer Fehlermeldung.
Beispiel:
Die periodische Zeitspanne "von 10.00 bis 11.00 Uhr alle 20 Minuten" beinhaltet die Zeitspanne "von 10.00 bis 11.00 Uhr", die in der folgenden Grafik visualisiert ist.
Zusätzlich hält sie noch den Abstand "20 Minuten", der bestimmte Zeitpunkte innerhalb der Zeitspanne beschreibt. Es werden durch diese Zeitangabe die Zeitpunkte "10.00, 10.20, 10.40 und 11.00 Uhr", wie aus der folgenden Abbildung ersichtlich, beschrieben.
Code-Beispiel:
Folgendes Beispiel erstellt eine Collection, die Zeitpunkte im Intervall "1 h" (jede Stunde) innerhalb der Zeitspanne "10.00 - 12.00" beinhaltet.
Zur weiteren Verarbeitung kann ein CX_TIMED_TRIGGER verwendet werden.
Var(sdate, ptime, value, term, trigger)
CreateTransObject(CX_SPAN_DATE) -> sdate
"24.5.1996-30.5.1996" sdate Put
CreateTransObject(CX_PERIODIC_SPAN_TIME) -> ptime
"10.00 - 12.00" ptime Put
CreateTransObject(CX_VALUE) -> value
"1 h" value Put
value ptime Call(SetFrequency)
CreateTransObject(CX_DATETIME) -> term
sdate term SetReference(date)
ptime term SetReference(time)
1 term Put (time.validEnum)
CreateTransObject(CX_TIMED_TRIGGER) -> trigger
term trigger Call(SetActionTerm)
trigger Call(TimeToNextEvent)
Darstellung am Bildschirm
Da diese Klasse von CX_SPAN_TIME abgeleitet ist, können die dort beschriebenen Möglichkeiten zur Ein-/Ausgabe des Zeitraums benutzt werden. Des weiteren muss noch die Frequenz, d.h. der Abstand zwischen den einzelnen Zeitpunkten, festgelegt werden. Da dieses Feld vom Typ CX_VALUE ist, kann die Ein-/Ausgabe in der dort gezeigten Weise erfolgen.
Im Zusammenhang mit diesen Darstellungsmöglichkeiten und bestimmten InstantView®- Anweisungen spielen die zum Objekt gehörigen Flags eine wichtige Rolle, da mit Ihnen die Darstellung des Objektes modifiziert werden kann.
Operatoren
Die folgenden Operatoren stehen für ein Objekt dieser Klasse zur Verfügung:
Operator | Kurzbeschreibung |
---|---|
+, - | Arithmetik |
>, <, = | Vergleiche |
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
Frequency | OBJECT | Intervall zwischen zwei Zeitpunkten | ||
GenerateTimes | COLL | Erzeugen aller Zeitpunkte | ||
SetFrequency | OBJECT | Setzen eines neuen Intervalls | ||
SetPeriodicSpanTime 231532 |
STRING, INTEGER | Periodische Zeitspanne aus der übergebenen Zeichenkette importieren | ||
AddHundredthSecond | Hundertstel-Sekunden-Addition | |||
AddSecond | Sekunden-Addition | |||
AddMinute | Minuten-Addition | |||
AddHour | Stunden-Addition | |||
DayTime | STRING | Tageszeit des Zeitpunktes | ||
Duration | OBJECT | Rückgabe der Zeitdauer | ||
Encompassed | (OBJECT) | INTEGER | "Enthalten in"-Test | |
EndOfPeriod | OBJECT | Endzeitpunkt berechnen | ||
ExportTimeNumber | INTEGER | STRING | Zeitangabe exportieren | |
HourOfTime | INTEGER | Stundenanteil der Zeit | ||
HundredthSecondOfTime | INTEGER | Hunderstel-Sekundenanteil der Zeit | ||
ImportTimeNumber | STRING, INTEGER | Zeitangabe importieren | ||
JoinPeriods | OBJECT | OBJECT | zwei übergebene Zeitspannen zu einer verbinden | |
MinuteOfTime | INTEGER | Minutenanteil der Zeit | ||
MLDayTime | MLSTRING | Mehrsprachige Tageszeit des Zeitpunktes | ||
MovePeriodToEndTime | OBJECT | Setzen der Startzeit ohne Verändern der Periode | ||
MovePeriodToStartTime | OBJECT | Setzen der Startzeit ohne Verändern der Periode | ||
NextTerm | OBJECT | OBJECT | der Zeitpunkt innerhalb des Zeitpunktes | |
Overlap | OBJECT | INTEGER | Überlappungstest | |
OverlappingPeriod | OBJECT | OBJECT | die Schnittmenge (Disjunktion) zweier Zeitspannen berechnen | |
RealEndOfPeriod | OBJECT | "echten" Endzeitpunkt berechnen | ||
RealStartOfPeriod | OBJECT | "echten" Startzeitpunkt berechnen | ||
SecondOfTime | INTEGER | Sekundenanteil der Zeit | ||
SetDuration | OBJECT | Setzen der Zeitdauer | ||
SetEndOfPeriod | OBJECT | Setzen der Endzeit mit Verändern der Periode | ||
SetHour | INTEGER | Setzen einer neuen Stunde | ||
SetHundredthSecond | INTEGER | Setzen einer neuen Hundertstel-Sekunde | ||
SetMinute | INTEGER | Setzen einer neuen Minute | ||
SetPeriodBorders | OBJECT, OBJECT | Setzen der Start- und Endzeit | ||
SetSecond | INTEGER | Setzen einer neuen Sekunde | ||
SetSpanTime 231532 |
STRING, INTEGER | Zeitspanne aus der übergebenen Zeichenkette importieren | ||
SetStartOfPeriod | OBJECT | Setzen der Startzeit mit Verändern der Periode | ||
SetTime 231532 |
STRING, INTEGER | Basiszeitpunkt der Zeitspanne aus der übergebenen Zeichenkette importieren | ||
StartOfPeriod | OBJECT | Startzeitpunkt berechnen | ||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
ValueInMinutes | INTEGER | Startzeit in Minuten | ||
ValueInSeconds | INTEGER | Startzeit in Sekunden | ||
ValueOfTime | INTEGER | Startzeit in hundertstel Sekunden |
* MA = Member-Access-Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
this | CX_TIME | Der Basiszeitpunkt | ||
frequency | CX_VALUE | Der Abstand, in dem die gewünschten Zeitpunkte aufeinander folgen. | ||
validEnum | ENUMCHAR | Der Typ der Zeitspanne: "0" = eine Zeitspanne mit Start und Ende; "1" = Start, aber es existiert kein Ende; "2" = Ende, aber es existiert kein Start; "3" = unendlicher Zeitraum ohne Start und Ende. | ||
duration | CX_VALUE | Die eigentliche Periode. Dabei wird bei einem Wert von "0" ein Zeitpunkt abgebildet. Des weiteren sind auch negative Perioden erlaubt. |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|