Element "Kalender-Modul"

<< Click to Display Table of Contents >>

Navigation:  Konfigurierung Webinterface > Individuelles Maskenlayout > Elemente im individuellen Maskenlayout >

Element "Kalender-Modul"

Mit dem Kalender können Abläufe wie z.B. Prozesse oder Changes aus individuellen Masken heraus dargestellt werden. Dabei können die Ansichten über Zeitfenster definiert werden (Tagesansicht, Arbeitswochenansicht, Wochenansicht, Monatsansicht).

 

Hinweis: Jahresansicht

Bei Anzeige wird die Zeit automatisch an die Zeitzone des Webbenutzers angepasst.

 

 

Attribute

 

links,oben,Breite,Höhe

Position und Größe

 

AutoMoveAndResize

siehe auch AutoMoveAndResize

 

visible

Legt fest, ob das Element nach Initiierung der Maske angezeigt wird.

 

andere

Siehe „Kalender konfigurieren“

 

 

Funktionen

 

addItem(table, objid, from_year, from_month, from_day, from_hour, from_minute, to_year, to_month, to_day, to_hour, to_minute, is_all_days, text)

Fügt ein Zeitfenster hinzu.

 

addRelation(fromTable, fromObjID, toTable, toObjID, from_location, to_location, color, thick, pfeil_from_to_show, pfeil_to_from_show)

Fügt eine Beziehung hinzu, die als eine orientierte Linie (mit Pfeil) dargestellt wird.

 

fromTable, fromObjID

Identifiziert das erste Objekt

 

toTable, toObjID:

Identifiziert das zweite Objekt

 

from_location, to_location:

Definiert, wo in dem Zeitfenster (=Balken) die Linie beginnt und wo sie endet.

Werte:

"B“: von Beginn

„E“: von Ende

„M“: von Mittel

 

color, thick:

Farbe und Stärke der Linie

 

pfeil_from_to_show:

Legt fest, ob der Pfeil vom ersten Objekt auf das zweite Objekt zeigt (--------->)

 

pfeil_to_from_show:

Legt fest, ob der Pfeil vom zweiten Objekt auf das erste Objekt zeigt (<---------)

 

clearItems()

Löscht alle Zeitfenster.

 

getHeight(),  getLeft(),  getPosition(),  getSize(), getTop(), getWidth(), setHeight(height), setLeft(left), setPosition(left,top), setSize(width,height), setTop(top), setWidth(width)

siehe auch Position und Größe

 

getIsTimeaxisHorizontal()

Gibt zurück, ob die Uhrzeit horizontal (true) oder vertikal (false) angezeigt wird.

 

getItem(index)

Gibt ein Zeitfenster zurück.

 

getItems()

Gibt alle Zeitfenster zurück.

 

getViewMode()

Gibt den Anzeigemodus als Zeichenfolge zurück.

 

month

Monat

week7

Woche

week5

Arbeitswoche

day

Tag

year

Jahr

 

refresh()

Kalender wird neu dargestellt.

 

setAutoRefresh(bARefresh)

Legt fest, ob nach Aufruf von folgenden Funktionen

-setViewMode*

-setTimeaxisHorizontal

-setTimeaxisVertical

-toggleTimeaxis

-setDate

der Kalender neu dargestellt wird. Standardmäßig wird der Kalender neu dargestellt.

Diese Funktion ist sinnvoll, wenn Sie z.B. gleichzeitig den ViewMode und das Datum ändern wollen.

 

Beispiel: 2x neu dargestellt

var RU=rimacon._userform, RUC=rimacon._userform._customer;

RU.Calendar1.setViewModeMonth()

RU.Calendar1.setDate(2016,5,2);

 

In diesem Fall würde der Kalender zweimal neu dargestellt, was aus Sicht der Webbenutzer lange dauert.

 

Beispiel: 1x neu dargestellt

var RU=rimacon._userform, RUC=rimacon._userform._customer;

RU.Calendar1.setAutoRefresh(false);

RU.Calendar1.setViewModeMonth()

RU.Calendar1.setDate(2016,5,2);

RU.Calendar1.setAutoRefresh(true);

RU.Calendar1.refresh();

 

setDate(date_as_string)

Legt das aktuell angezeigte Datum fest. Format 'TT.MM.JJJJ' .

 

setDate(year,month,day)

Legt das aktuell angezeigte Datum fest.

 

setItems(items)

Legt alle Zeitfenster fest.

 

setTimeaxisHorizontal()

Die Uhrzeit wird horizontal angezeigt.

 

setTimeaxisVertical()

Die Uhrzeit wird vertikal angezeigt.

 

setViewModeDay(timeaxis_horizontal)

Legt die Tagesansicht fest. Wenn timeaxis_horizontal true ist, wird die Uhrzeit horizontal angezeigt.

 

setViewModeMonth()

Legt die Monatsansicht fest.

 

setViewModeWeek5(timeaxis_horizontal)

Legt die Arbeitswochenansicht fest. Wenn timeaxis_horizontal true ist, wird die Uhrzeit horizontal angezeigt.

 

setViewModeWeek7(timeaxis_horizontal)

Legt die Wochenansicht fest. Wenn timeaxis_horizontal true ist, wird die Uhrzeit horizontal angezeigt.

 

setViewModeYear(days_horizontal)

Legt die Jahresansicht fest. Wenn days_horizontal true ist, werden die Tage horizontal angezeigt.

 

show(bShow)

Zeigt oder versteckt das Objekt.

 

showAllRelations()

Zeigt oder versteckt alle Beziehungen.

 

toggleTimeaxis()

Wechselt die Uhrzeitanzeige zwischen horizontal und vertikal.

 

 

Ereignisse

 

onUpdateItems

Dieses Ereignis wird bei jedem Refresh ausgeführt und ermöglicht eine Modifizierung der Zeitfenster.

 

onItemClick

Dieses Ereignis wird durch Anklicken eines Zeitfensters (z.B. Prozess) ausgeführt.

Variable ctx enthält die Kontextinformationen. Attribute der Variable ctx sind:

ctx.event : Browser event-Objekt

ctx.Item: Objekt des Typs „Item“, siehe „Objekttyp“

 

onItemDblClick

Dieses Ereignis wird durch Doppelklick auf ein Zeitfenster (z.B. Prozess) ausgeführt.

 

onEmptyAreaClick

Durch Klicken in einen leeren Bereich der Maske können Funktionen für das Ereignis onEmptyAreaClick durchgeführt werden.

Kontextvariablen:

ctx.Datetime: Lokale Zeit-Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“.

ctx.server.Datetime: Serverzeit-Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“.

ctx.UsedTime: Objekt von Typ boolean. True, wenn die Zeit genutzt wird. False, wenn nur Datum (ohne Zeit) genutzt wird.

 

onItemWasMoved

Dieses Ereignis wird ausgeführt, wenn der Webbenutzer ein Zeitfenster verschiebt.

Kontextvariablen:

ctx.Item: Objekt des Typs „Item“ .

ctx.from: Lokale Zeit-Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“.

ctx.to: Lokale Zeit. Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“ .

ctx.server.from: Serverzeit. Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“.

ctx.server.to: Serverzeit. Objekt des Typs „rimacon.ProjectCalendar.InternalDatetime“.

 

Objekttyp Item

Der Objekttyp „Item“ repräsentiert ein konkretes Zeitfenster.

Hierfür gibt es folgende Attribute:

 

Table

 

ObjID

 

Start

Objekt von Typ rimacon.ProjectCalendar.InternalDatetime

End

Objekt von Typ rimacon.ProjectCalendar.InternalDatetime

IsAllDay

Objekt von Typ boolean

Text

 

TextColor

 

BorderColor

 

BGColor

 

 

Objekttyp rimacon.ProjectCalendar.InternalDatetime

 

Der Objekttyp “rimacon.ProjectCalendar.InternalDatetime” beschreibt Datum und Zeit über die Attribute:

Year

 

Month

1-2

Day

1-31

Hour

0-23

Minute

0-59

ToString()

Datum und Zeit im Format TT.MM.JJJJ h:m

ToJSdate()

Datum und Zeit als Javascript-Date-Objekt

 

Kalender konfigurieren

Uhrzeit - Start und Ende:

Definiert den Zeitraum in den Ansichten Tagesansicht, Arbeitswochenansicht und Wocheansicht. Davon unabhängig kann im Web die 0-24-Darstellung ein- oder ausgeschaltet werden.

 

Standardansicht:

Die Standardansicht wird direkt nach dem Öffnen verwendet. Sie können hierbei zwischen den Ansichten Tagesansicht, Arbeitswochenansicht, Wochenansicht und Monatsansicht wählen.

 

Zeitachse:

Definiert, ob die Zeitachse horizontal oder vertikal angezeigt wird. Dies wird in allen Ansichten, außer in der Monatsansicht, betrachtet.

.

Minuten pro Zeile:

Definiert, wie viele Minuten durch eine Zeile der Ansichten Tagesansicht, Arbeitswochenansicht und Wochenansicht repräsentiert werden sollen. Soll eine Viertelstunde in einer Zeile ausgegeben werden, geben Sie 15 Minuten an. Eine Stunde wird dann in vier Zeilen gesplittet.

Diese Einstellung kann im Webinterface geändert werden.

 

Den Kalender bei Initiierung nicht generieren:

Wenn angekreuzt, wird der Kalender bei Initiierung der Maske nicht generiert. Dies ist sinnvoll, wenn der Inhalt von anderen Komponenten abhängig ist, die während der Initiierung der Maske noch nicht bekannt sind.

 

Zeitfensterquelle(n) benutzen:

Aktiviert oder deaktiviert die definierten Zeitfensterquellen.

 

Das Herz des Kalenders sind Zeitfenster, die in Zeitfensterquellen definiert werden. Die Anzahl der Zeitfensterquellen ist unbeschränkt. In der Regel ist eine Quelle jedoch ausreichend.

 

Die Verwaltung der Zeitfensterquellen erfolgt in der Zeitfensterquellenliste. Eine Konfiguration erfolgt über einen Doppelklick oder über „Bearbeiten“.

 

Maske Zeitfensterquelle

Zeitfenster liegen in einer Tabelle der Datenbank. Es gibt drei Möglichkeiten, woher die Zeitfenster stammen können:

 

1. Sollen die Zeitfenster nicht weiter gefiltert werden, müssen lediglich die Zeitfensterquellen definiert werden. Aktivieren Sie die Option „Zeitfensterquelle(n) nutzen“.

 

2. Um die Daten Ihren Anforderungen entsprechend spezifisch zu filtern, definieren Sie zunächst die Zeitfensterquellen. Über „Ereignis“ – onUpdateItems – getItems () stehen alle Zeitfenster zur Verfügung, die dann über weitere Funktionen verwaltet werden können. Aktivieren Sie auch hier die Option „Zeitfensterquelle(n) nutzen“.

 

3. Sollen die Zeitfenster nur auf Javascript-Ebene gesteuert werden, muss die Option „Zeitfensterquelle(n) nutzen“ inaktiv (!) sein. In diesem Fall werden die Zeitfenster nicht (!) in onUpdateItems, sondern über andere Ereignisse wie z.B. afterFormInit gesteuert.

 

In der nachfolgend erläuterten Maske wird der Standardfall (d.h. Quelle in Datenbank) konfiguriert.

 

Reiter Zeitraum

Javascriptname:

Dieser Name wird für die Kalenderfilter genutzt (siehe dort).

 

Ganztätiges Ereignis:

Hier können Sie definieren, ob es sich bei dem Zeitfenster nur um das jeweilige Datum oder das Datum und die dazugehörige Zeit handelt.

 

Quelle:

Die Quelle wird entweder als reines SQL oder als eine veröffentlichte Tabelle inkl. Erweiterung wie „inner join, where, ...“ definiert.  Das "Ergebnis" ist grundsätzlich ein SQL-Befehl. Die Spalten können hierbei als Quelle für weitere Einstellungen genutzt werden.

Über die Textfelder „von“, „bis“, „angezeigter Text“ und die dazugehörigen Buttons definieren Sie den Anfang und das Ende des Zeitfensters und den im Web angezeigten Text.

 

Reiter Farben

Jedes Zeitfenster kann farbig spezifisch dargestellt werden. Sie können die Hintergrundfarbe, die Farbe des Textes und des Rahmens auswählen.

 

Diese Farben werden über ein ausgewähltes Farbschema gesteuert. Der Kalender enthält 25 vordefinierte Farbkombinationen. Der Hintergrund der Balken wird bei diesen vordefinierten Kombinationen jeweils mit gradientem Farbverlauf dargestellt. Möchten Sie andere Farben verwenden, erfolgt die Anzeige einfarbig.

 

Farbschemata

 

1.  Standard

Alle Zeitfenster werden mit rimacon-vordefinierten Farben (blau) dargestellt.

 

2. Individuell

Alle Zeitfenster werden in den von Ihnen definierten Farben dargestellt.

 

3. Farbe für FK oder Auswahlspalte

Die Farbenkombination wird nach FK oder Auswahlspalte vordefiniert. Z.B. „status=geplant” blau, “status=fertig” grün.

 

4. aus Spalten

Die drei Farben werden auf SQL-Ebene definiert.

 

Kalender filtern

Grundsätzlich kann der Kalender auf vier Ebenen gefiltert bzw. gesteuert werden.

 

Generell

In Zeitfensterquelle-SQL kann ein SQL-Where genutzt werden

 

Im Webinterface

Im Webinterface kann die Zeitfensterquelle über das Kalender-Filter-Element und vordefinierte Checkboxen gefiltert werden, wobei jede Checkbox

a.einem Wert in einer vordefinierten Spalte (z.B. Status = erledigt) entsprechen kann

b.mehreren Werten in einer vordefinierten Spalte (z.B. Status = erledigt oder bestellt) entsprechen kann

c.einem SQL-Where-Ausdruck (z.B. Prozess-Budget >=1000,00 EUR und Prozess-Budget <=5000,00 EUR) entsprechen kann

 

Die Checkbox-Gruppe kann auch ignoriert werden.

 

Checkboxen innerhalb einer Gruppe werden als logisches oder, die gesamten Checkboxengruppen als logisches und betrachtet.

 

Beispiel: Objekte, die bestellt oder geplant sind und Kosten zwischen 1000,00 EUR und 5000,00 EUR verursachen:

 

Gruppe 1:

[x]

Bestellt

[  ]

Defekt

[x]

Geplant

 

Gruppe 2:

[  ]

Budget <1000 €

[x]

Budget 1000 – 5000 €

[  ]

Budget > 5000 €

 

Nachträglich in Javascript

Nach dem Auslesen der Daten aus den Zeitfensterquellen stehen alle Zeitfenster über ein Javascript-Ereignis zur Verfügung und können weiter spezifisch gesteuert werden.

 

Zeitfenster über Javascript generieren

Zeitfensterquellen können sowohl über die Management Console als auch manuell über Javascript hinzugefügt werden.