CX_SPAN_DATE::SetNetDuration
Beschreibung:
Diese Funktion setzt gleichzeitig die Periodenlänge und den Netto-Typ
für eine Datumsperiode. Wie bei SetDuration
kann diese auch einen negativen Wert, wie z.B. "-3 Tage", annehmen.
Bei Übergabe einer Zeiteinheit gröber als "Tage", wird dieser Betrag
nur für Brutto (Netto-Typ, ALL_TERMS) beibehalten. Ansonsten wird immer in
Tagen umgerechnet. Eine Netto-Periodenlänge kann also nicht Datumsperiode
sein.
Durch Funktionen, wie z.B. SetEndOfPeriod, wird die
Duration auch indirekt gesetzt. Auch in diesem Fall wird der Netto-Typ auf Brutto (ALL_TERM)
zurückgesetzt.
Code-Beispiel:
In dem Beispiel-Programm werden aus einer Brutto-definierten Datumsperiode
zunächst die Arbeitstage gewonnen und diese dann in der Datumsperiode gespeichert
Var(sdate)
// erzeuge die Datumsperiode
CreateTransObject(CX_SPAN_DATE) -> sdate
"2.10.1990 - 15.10.1990" sdate Put
// setze sie Brutto
WORKINGDAY sdate Call(NetDuration)
// ermittle Arbeitstage in der Datumsperiode (diese bleibt noch unverändert)
WORKINGDAY sdate Call(SetNetDuration) // setze
Netto(Arbeitstage)
sdate Call(Duration)
// liefert auch Netto-Dauer, nämlich die gespeicherte
Der Rückgabewert ist "9 Tage". (9 Arbeitstage in "2.10.1990 -
15.10.1990")
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_SPAN_DATE | das Datum(-sobjekt) |
Top-1 | INTEGER | Konstante des Netto-Typs | |
Top-2 | CX_VALUE | die neue Periodenlänge | |
Stack(Out) | Top | - | - |
Funktionsaufruf: Call(SetNetDuration)