Lade...
 

CX_SPAN_DATE - Netto-Periodenlängen

Netto-Periodenlängen

Datumsperioden verfügen über ein (Start-)Datum und eine Periodenlänge (Dauer). Verschiebt man das Startdatum um diese Periodenlänge gelangt man zum Enddatum. Hierbei muss jedoch das Startdatum nicht genau um diese, z.B., Tage verlängert werden. Alternativ kann das Enddatum auch so bestimmt werden, dass zwischen diesem und dem Startdatum genau so viele Tage einer bestimmten Kategorie sind, wie mit der Dauer angegeben wurden.
Im letzteren Fall spricht man von einer Netto-Datumsperiode, im ersten von einer Brutto-Datumsperiode.

Eine Netto-Beschreibung einer Datumsperiode stellt in bestimmten Anwendungsfällen die einzige exakte Darstellung der wirklichen Daten dar.

Beispiel:

Urlaubspläne werden in Unternehmen grundsätzlich auf Basis von Arbeitszeitkonten erstellt.
D.h.: Jeder Mitarbeiter verfügt pro Jahr über ein bestimmtes Kontingent an Urlaubstagen. Wenn jetzt z.B. ein Mitarbeiter in der Datumsperiode "29.06.2001 - 13.07.2001" Urlaub hat, so werden hierfür von seinem Arbeitszeitkonto nicht etwa 14 sondern natürlich nur 10 Tage abgebucht.

Unabdingbar für die Bestimmung von Tages-Kategorien ist ein - applikationsweiter oder lokaler - Kalender in dem abgelesen werden kann, zu welchen Kategorien jeder Tag gehört.
ClassiX® hält diese Zuordnung in den sogenannten Locales fest.
In der obigen Grafik wird der Kalender durch graue Zonen visualisiert, auf denen kein Urlaubstag platziert werden darf. Deswegen werden die balkenförmigen Urlaubszeiten für diese Zonen unterbrochen. Beim Verschieben dieser Balken verschieben sich diese Auslasszeiten auch mit, so dass die Balken immer genau die selbe Anzahl an Urlaubstagen enthalten.
Weitere Erläuterungen zu der Darstellung von Datumsperioden im oben gezeigten XGantt-Control finden Sie in den Beschreibungen der z.Z. im CyberEnterprise® verwendeten ActiveX-Controls.

Eine Nettoangabe der Periodenlänge muss sich nicht immer auf Arbeitstage beziehen. Vielmehr ist jede der Datums-Typ-Kategorien sowie deren Kombinationen verwendbar. So kann eine Datumsperiode auch genau die Tage umfassen, die keine Arbeitstage sind (NO_WORKINGDAY). Die einzige Einschränkung ergibt sich für Tage, die zu mehreren Kategorien (z.B. Feiertag und Gedenktag) gehören. Wie in der Beschreibung des Datenfeldes validEnum angegeben, werden solche Tage entweder der einen oder anderen Kategorie zugeschlagen (im Beispiel Gedenktag (Kat. 3)).

Um die Nettotage einer Datumsperiode zu bestimmen, muss diese nicht in der entsprechenden Kategorie angegeben sein. Vielmehr wird bei der Abfrage der NetDuration über die gleichlautende Funktion diese gegebenenfalls berechnet.
Eine Speicherung in der Kategorie, über die die wirklichen Daten definiert sind (z.B. Arbeitstage für Urlaub), ist meistens performanter und schützt vor Verfälschungen.

Beispiel für solche Verfälschungen ist eine Urlaubs-Datumsperiode "1.10.1990 - 7.10.1990". Wurde diese Brutto am Anfang des Jahres 1990 angelegt, so wurden hierfür 5 Arbeitstage vom Arbeitszeitkonto abgezogen. Da im Laufe des Jahres der 3.10.1990 zum Feiertag erklärt wurde, umfasst dieses Intervall nun nur noch 4 Arbeitstage. Wird das Arbeitszeitkonto nicht nachträglich geändert, gehen dem Arbeitgeber ein Urlaubstag verloren.
Wäre diese Datumsperiode hingegen korrekt als "5 Arbeitstage Netto ab 1.10.1990" angelegt, so führt die Änderung des Kalenders (verschieben eines Feiertages) nun zum Intervall "1.10.1990 - 8.10.1990". Der zusätzliche freie Tag wird also hinten angehangen ohne, dass eine Änderung der Daten notwendig wäre.