Liste periodisch wiederkehrender Ereignisse
Das Script erstellt, abhängig vom Startdatum und der Anzahl der vorgegebenen Array-Elemente, eine Liste. Die Einträge des Arrays werden nacheinander in die Aufzählung eingebunden und der Datumswert neu berechnet.
|
|
Rufbereitschaft, Notdienst, Schichtplan, Treppenhausreinigung, ...
Eine dynamische Liste periodisch wiederkehrender Ereignisse soll automatisiert erstellt werden. Dabei soll das Script die vorgegebenen Array-Werte, nacheinander in die Liste einbeziehen. Der Datumswert soll gemäß einer Vorgabe jedesmal erhöht und angezeigt werden. Die Kalenderwoche wird errechnet.
1 Am einfachsten ist es, ich erkläre das an einem Beispiel. Hier meine Vorgaben:
| Typ |
Name |
hier im Beispiel |
| Array |
WerteArray |
"Meier", "Beckers", "Schulze", "Schmitz", "Müller" |
| Variable |
StartDatum |
January 3, 2009 |
| Variable |
TageZyklus |
7 |
| Variable |
AnzahlTermine |
5 |
| Variable |
Beschreibung |
"Treppenhaus" |
Daraus wird diese Liste mit 5 Terminen erzeugt:
Anwendungen: Dienstplan, Bereitschaftsdienst, Müllabfuhr, Fahrdienst, Notdienst, ...
Eine solche Berechnug wird zur lokalen Nutzung normalerweise mit Exel oder Access erstellt. Zur Darstellung auf einer Webseite kann sie mit JavaScript erzeugt werden. Sie können die HTML-Seite aber auch einfach ausdrucken und den Plan aufhängen, fertig.
Das sieht dann so aus: Vorschau
2 Vorzüge der Liste
1) Anzahl der Array-Elemente
Die Liste wird automatisiert die Array-Elemente (hier 5 Namen der Mieter) in die Liste mit einbeziehen. Wenn sie 7 Elemente eintragen, würde die Liste stattdessen 7 Werte (Namen) in die Liste einbeziehen. Die 7 Elemente würden in der vorgegebenen Reihenfolge nacheinander erscheinen. Nach dem letzten Element (in der 7. Woche) würde dann wieder mit dem ersten Element begonnen.
2) regelmäßige Termine
Der von ihnen eingetragene Abstand in Tagen (hier 7), legt den zeitlichen Abstand der wiederkehrenden Termine fest. Ob es nun der Termin für die Entsorgung des Papiermülls mit 21 tägigem Abstand, die Tage für den Eisprung ihrer 3 Freundinnen oder der Mondzyklus sein soll, das Script wird ihnen die Daten genau berechnen. Nicht nur theoretisch können sie auch eine Dezimalzahl als Wert eintragen. Für den Mondzyklus z.B. den Wert 29.53059 (synodischer Monat).
3) Länge der Liste
Die Anzahl der zu listenden Termine legen sie in der Variablen 'AnzahlTermine' fest.
4) Erscheinungsbild
Das Erscheinungsbild der Liste bestimmen sie selbst. Hintergrundfarbe der Terminzeilen können mit CSS fetgelegt werden. Sie können vor jedem Termin eine kleine Grafik anzeigen lassen.
Aufwand
- CSS-Anweisungen im Head notieren
- JavaScript im Body notieren
- Eckdaten für die Terminliste eintragen
- Farben anpassen (wenn sie möchten)
- Grafiken festlegen (wenn sie möchten)
verwendete Grafiken: (rechtsklicken zum Download)
alternativ:
Anpassungen
a Eckdaten
var StartDatum = new Date("January 3, 2009");
var TageZyklus = 7;
var Beschreibung = "Treppenhaus";
var AnzahlTermine = 5;
var WerteArray = new Array("Meier", "Beckers", "Schulze", "Schmitz");
Startdatum: englische Bezeichnungen für den Monat eintragen!
January, February, March, April, May, June,
July, August, September, October, November, December
b Grafiken
Ich verwende Grafiken mit Dateinamen, die fortlaufend nummeriert sind. Die erste Grafik hat einen Dateinamen mit der Endnummer Null. Beispiele:
pers0.gif, pers1.gif, pers2.gif, ...
kal0.gif, kal1.gif, kal2.gif, ...
Sie tragen (Pfad +) den ersten Teil des durchnummerierten Dateinamens ohne fortlaufende Nummer und die Dateiendung ein. Beispiel:
Für die Serie 'pers0.gif' , 'pers1.gif' , 'pers2.gif' , 'pers3.gif' ist das
var Grafik = "pers";
var Endung = ".gif";
Grafiken finden sie in meiner MINI-IMAGE-BOX bei Symbolen für Listen und Aufzählungen.
c Farben
Ich verwende CSS-Anweisungen um das Erschenungsbild der Tabelle festzulegen. Anpassungen können sie dort eintragen.
<style type="text/css">
<!--
.bgcolorZeile00 {
background-color: #EAF4FF;
}
.bgcolorZeile01 {
background-color: #FAFAFA;
}
.bgcolorZeile02 {
background-color: #F0E1FF;
}
#rand03 {
border-collapse: collapse;
border-bottom: 1px solid #BBDBFF;
}
#rand03 td, #rand03 th {
border-bottom: 1px solid #BBDBFF;
}
-->
</style>
das war's schon

Das war's schon! Wenn sie mehr über Funktion und Anpassungen erfahren möchten, lesen sie ab hier weiter. Sie können bei diesem Script die Anzahl der Elemente erweitern, indem sie im Array weitere Eintäge notieren.
Aufgabe des Scripts
Ein Array (Register) enthält x Elemente. Abhängig von der Anzahl der vorgegebenen Array-Elemente soll eine Liste von Terminen erstellt werden, die zeilenweise dargestellt werden. Die Einträge im Register sollen nacheinander entnommen und in die Aufzählung eingebunden werden. Nach einem Durchlauf des Registers beginnt die Entnahme der Elemente wieder von vorne. In jeder Zeile der Terminliste wird ein Datumswert angezeigt, der von Zeile zu Zeile um den Vorgabewert (zeitlicher Abstand im Beispiel = 7 Tage) erhöht wird.
Der Wochentag des Datumswertes und die Kalenderwoche wird angezeigt.
Vorgaben:
- Startdatum für die Liste
- Arrayelemente als Text
- zeitlicher Abstand als Zahl (in Tagen)
- Anzahl der Termine
- Beschreibungstext (z.B. Treppenhaus)
Beispiele:
Beispiel 01
Anzahl der Array-Elemente: 5
aaaa = new Array("Meier", "Beckers", "Schulze", "Schmitz", "Müller");
Startdatum für die Liste Treppenhaus ist Montag 07.01.2008 in der 01. Kalenderwoche.
Treppenhaus putzen Mietobjekt Breslauer Str. 22
| | Wer | Was | | Tag | Datum | Kalenderwoche |  | Meier | Treppenhaus | am | Montag | 07.01.2008 | 01. Kalenderwoche |  | Beckers | Treppenhaus | am | Montag | 14.01.2008 | 02. Kalenderwoche |  | Schulze | Treppenhaus | am | Montag | 21.01.2008 | 03. Kalenderwoche |  | Schmitz | Treppenhaus | am | Montag | 28.01.2008 | 04. Kalenderwoche |  | Müller | Treppenhaus | am | Montag | 04.02.2008 | 05. Kalenderwoche |  | Meier | Treppenhaus | am | Montag | 11.02.2008 | 06. Kalenderwoche |  | Beckers | Treppenhaus | am | Montag | 18.02.2008 | 07. Kalenderwoche |  | Schulze | Treppenhaus | am | Montag | 25.02.2008 | 08. Kalenderwoche |  | Schmitz | Treppenhaus | am | Montag | 03.03.2008 | 09. Kalenderwoche |  | Müller | Treppenhaus | am | Montag | 10.03.2008 | 10. Kalenderwoche |  | Meier | Treppenhaus | am | Montag | 17.03.2008 | 11. Kalenderwoche |  | Beckers | Treppenhaus | am | Montag | 24.03.2008 | 12. Kalenderwoche |  | Schulze | Treppenhaus | am | Montag | 31.03.2008 | 13. Kalenderwoche |  | Schmitz | Treppenhaus | am | Montag | 07.04.2008 | 14. Kalenderwoche |  | Müller | Treppenhaus | am | Montag | 14.04.2008 | 15. Kalenderwoche |  | Meier | Treppenhaus | am | Montag | 21.04.2008 | 16. Kalenderwoche |  | Beckers | Treppenhaus | am | Montag | 28.04.2008 | 17. Kalenderwoche |  | Schulze | Treppenhaus | am | Montag | 05.05.2008 | 18. Kalenderwoche |  | Schmitz | Treppenhaus | am | Montag | 12.05.2008 | 19. Kalenderwoche |  | Müller | Treppenhaus | am | Montag | 19.05.2008 | 20. Kalenderwoche |
Beispiel 02
Anzahl der Array-Elemente: 3
bbbb = new Array("Frühdienst", "Spätdienst", "Nachtdienst");
Startdatum für die Liste Dienstplan ist Montag 07.01.2008 in der 01. Kalenderwoche.
Schichtplan für Jupp Zupp
| | Dienstplan | Name | | Tag | Datum | Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 05.05.2008 | 18. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 12.05.2008 | 19. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 19.05.2008 | 20. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 26.05.2008 | 21. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 02.06.2008 | 22. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 09.06.2008 | 23. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 16.06.2008 | 24. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 23.06.2008 | 25. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 30.06.2008 | 26. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 07.07.2008 | 27. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 14.07.2008 | 28. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 21.07.2008 | 29. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 28.07.2008 | 30. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 04.08.2008 | 31. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 11.08.2008 | 32. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 18.08.2008 | 33. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 25.08.2008 | 34. Kalenderwoche |  | Nachtdienst | Jupp Zupp | am | Montag | 01.09.2008 | 35. Kalenderwoche |  | Frühdienst | Jupp Zupp | am | Montag | 08.09.2008 | 36. Kalenderwoche |  | Spätdienst | Jupp Zupp | am | Montag | 15.09.2008 | 37. Kalenderwoche |

|