2. 1. 13   Schichtplan

SYNTAX

Der Tcl-Befehl shiftCmd erlaubt Operationen mit einem Schichtplan-Objekt. Er hat die allgemeine Form:

    shiftCmd option ?arg arg ...?

option und  args bestimmen das exakte Verhalten des Befehls. Über die allgemeinen Objektbefehle hinaus sind folgende Befehle für Schichtplan-Objekte definiert:

OBJEKTPARAMETER

shiftCmd length
Gibt die Anzahl der Schalter (Länge der Schalterliste) des Schichtplanobjektes zurück.
 
shiftCmd first ?-exact? date


Gibt den Index des ersten Treffers aus. Wenn das gesuchte Datum nicht existiert, so wird der Index des Schalters mit dem nächst kleineren Datum ausgegeben. Wenn alle Daten kleiner als date sind, wird -1 ausgegeben.
Mit der Option -exact wird nach dem genauen Datum gesucht. Wenn das Datum nicht gefunden wurde, so wird so wird -1 ausgegeben.
Bei Mehrfachtreffern wird der Index des ersten Vorkommens ausgegeben.


shiftCmd get option ?option? ?option?


Gibt eine Liste der Eigenschaften der Schalter von shiftCmd aus wobei mindestens eine und maximal drei der folgenden Option angegeben werden müssen.

  • -index
  • Index des Schalters
  • -date
  • Datum des Schalters
  • -type
  • Typ des Schalters


    shiftCmd append ?date? ?type boolean?

    Hängt einen weiteren Schalter an den Schichtplan an. Wird date angegeben, wird der Schalter nach dem Schalter eingefügt, dessen Datum kleiner oder gleich der angegebenen Zeit ist. Ohne Angabe von date wird der Schalter immer am Ende (Index = length+1) angefügt und erhält automatisch die Schaltzeit des Vorgängers. Rückgabewert ist der Index, an dem der Schalter eingefügt wurde (0: Schalter wurde nicht angefügt).
    Bei Angabe von type und einem boolschen Wert wird der Typ des eingefügten Schalter gesetzt.
     
    shiftCmd insert index

    Fügt einen neuen Schalter vor dem Schalter index (= 1, 2, ..., length) ein. Enthält der Schichtplan bereits Schalter, wird die Schaltzeit automatisch auf die des Vorgängers gesetzt.
     
    shiftCmd insert option ?option? list


    Fügt eine Liste von Schaltern und ihren Zeitpunkten in den Schichtplan ein. Die Listenstruktur wird über die vorher angegebenen Optionen definiert. Zur Verfügung stehen

  • -date
  • Datum des Schalters
  • -type
  • Typ des Schalters


    shiftCmd copy shiftCmdName


    Erzeugt einen neuen Schichtplan mit dem Namen shiftCmdName und überträgt alle Objekteigenschaften (nicht die Namespaces) auf den neuen Schichtplan.


    shiftCmd remove index

    Entfernt den Schalter index (= 1, 2, ..., length) aus dem Schichtplan.
     
    shiftCmd clear

    Entfernt alle Schalter aus dem Schichtplan.
     
    shiftCmd type ?index? ?boolean?

    Abfrage oder Setzen des Typs eines Schalters. Der Typ eines Schalters kann "Ein" (1) oder "Aus" (0) sein. Ohne den Parameter index wird eine Liste der Typen aller Schalter zurückgegeben. Bei Angabe von index allein wird nur der Typ des entsprechenden Schalters ausgegeben. Wird außerdem boolean angegeben, wird der entsprechende Schalter index auf boolean gesetzt. Voreinstellung ist 1.
     
    shiftCmd cycle ?boolean?

    Abfrage oder Setzen der Zyklus-Eigenschaft eines Schichtplanobjektes. Die Zyklus-Eigenschaft bestimmt die Arbeitsweise des Schichtplanes. Er wird entweder als endlicher (0) oder zyklischer (1) Schichtplan interpretiert. Bei endlichen Schichtplänen gilt jeder Schalter nur einmal exakt zum angegebenen Zeitpunkt. Bei zyklischen Schichtplänen wiederholt sich die Schaltfolge nach dem letzten Schalter. Erster und letzter Schalter bilden die Zyklusdauer, zum Zeitpunkt des letzten Schalters beginnt die Folge von neuem mit dem ersten Schalter ad infinitum. Voreinstellung ist 0.
     
    shiftCmd date ?index? ?time?

    Abfrage oder Setzen der Schaltzeit eines Schalters. Die Reihenfolge der Schalter bestimmt auch ihre Schaltzeiten ([shiftCmd date 1] <= [shiftCmd date 2]). Negative Schaltzeiten werden als unendlich interpretiert. Ohne den Parameter index wird eine Liste der Schaltzeiten aller Schalter zurückgegeben. Bei Angabe von index allein wird nur die Schaltzeit des entsprechenden Schalters ausgegeben. Wird außerdem time angegeben, wird der entsprechende Schalter index auf time gesetzt. Die Schaltzeit eines Schalter kann nur zwischen den Zeiten des vorhergehenden und des nachfolgenden Schalters liegen (dateix-1 <= dateix <= dateix+1). Voreinstellung ist 0.