Hallo Leute, sorry dass ich so lange gebraucht habe, bis ich geantwortet habe.
Ich bin allen sehr dankbar für die Hilfe und die Tipps.
Ich denke aber, dass ich z. T. nicht richtig verstanden werde, was definitiv nur an mir liegt.
Ich hoffe, Ihr seid mir nicht böse.
Ich bin an deutschlands größtem Flughafen für einen Bereich mit über 2000 Mitarbeitern für Personalbedarfsplanung und Dienstplangestalltung zuständig.
Vor vielen Jahren, hatten wir einen Studenten der Informatik studiert hat. Der hat damals ein Dienstplanprogramm auf Excel-Basis programmiert, mit Makros und einem Pascal Modul für die Berechnung.
Das Ding ist in die Jahre gekommen, ich musste es erweitern und den neuen Bedürfnissen anpassen.
Leider ist es sehr Fehlerträchtig, wegen tausender von Formeln, Bedarf eines besonderen Laufwerkbuchstabens etc.. Ich bin mittlerweile der einzige der das Ding noch bedienen kann.
Im Endeffekt bekomme ich aus Excel 5 Bedarfskurven über 24 Stunden. 4 für unsere 4 untergeordneten Abteilungen, eine Addition dieser 4. Das ganze muss man sich X 7 Tage vorstellen.
Im Endeffekt funktioniert es so, dass man immer aufbauend auf den Dienstplänen der vergangenen Saison aufsetzt und Änderungen durchführt um die Abdeckungskurve, die von den ganzen Dienstplänen erzeugt wird, optimal an die Bedarfskurve anzupassen.
Jetzt stelle sich einer vor, pro Abteilung gibt es verschieden Dienstplantypen:
Stamm in Gruppen
Stamm in Einzeldienstplänen
Stamm Verfügungsschichten
Fremd eine bestimmten Fa.
Fremd Studenten
In den Gruppenplänen werden z.T. in einem Plan über 300 MA verwaltet, in Einzeldienstplänen 1 MA.
Jetzt ändere ich an einem Plan eine Zeit. Dann muss ich ein Makro ausführen welches wiederum ein Pascal Modul aufruft und Berechnungen durchführt, dauert ca. 5 Sek.. Dann muss ich den Plan mit den berechneten Daten speichern und schliessen. Danach muss ich die Exceldatei mit den Grafiken aufrufen die alle Dienstpläne dieser Abteilung einliest und in der Kurve darstellt.
Danach noch die Exceldatei mit den Grafiken für alle 4 Abteilungen aufrufen, aktualisieren, speichern....
Ist sehr aufwendig.
Wenn man mal zum Schluss gekommen ist, müssen die Dienstplandaten in eine von der Personalabteilung verwendetes und vom Betriebsrat abgenommenes Excelsheet übernommen werden (copy-paste).
Die Daten der Abdeckung wiederum in ein Excelsheet welches in einem Word Dok verankert ist....
Meine Idee ist ein DPL-Programmwelches eine Saisonverwaltung besitzt, mit kopieren, löschen etc. (hab ich bereits programmiert). Die Dienstpläne sollen in einem dynamisch erzeugtem Menü nach Abteilungen und verschiedenen anderen Unterkategorien geordnet dargestellt werden (hab ich bereits programmiret).
Es soll bei Änderung einer Date in einem Dienstplan sofort im Hintergrund die Abdeckungskurve berechnen und gleichzietig von Dienstplan erzeugte Bedarfe (Pause, Dienst- und Gruppengespräche) berechnen.
Zusätzlich berechnet es online verschiedenste Daten die im Plan angezeigt werden (hab ich bereits programmiert).
Dann kommt der teil den ich hier versucht habe umzusetzen.
Es soll die Berechnungen sofort in Charts umsetzen und zwar wenn möglich ohne Wartezeit. Und das gelingt mir mit der Datenbank nicht.
Ich bin dabei ein Modul zu schreiben, welches ausgehend vom geänderten Plan nur diese Dienstplankategorie, der betroffenen Abteilung neu berechnet und zwar im
RAM im StringGrid und sofort im Chart visualisiert.
Ich stelle mir 4 StringGrids im Hintergrund vor, nicht visuell
, für die Daten jeweils aller Dienstplankategorien einer jeweiligen Abteilung. Und dann noch ein 5 StringGrid zur Addition der 4 Abteilungsstringgrids und Visualisierung in einem Gesamt-Chart.
Letztendlich speichern die Pläne alle ihre Daten in Textfiles mit Komma getrennt ab. Es gibt Textfiles für Dienstplandaten und welche für die Kurvendaten. Wenn es schlimm kommt, ändere ich einen Einzeldienstplan, in dessen Kategorie 25 - 30 Pläne existieren. Diese werden dann eingelesen, berechnet und ins StringGrid geschrieben. Das dauert unter einer Sekunde. Gehe ich auf die
DB dauert es zwischen 5 und 10 Sekunden.
Das bedeutet, für mich sieht es danach aus, als ob eine Lösung mit Textfiles und StringGrids definitv schneller ist als eine Datenbanklösung.
Desweiteren gibt es eigentlich keinen Bedarf, die Daten in einer Datenbank zu halten ausser die Darstellung in eine Grafik und die ist im StringGrid schneller.
Dennoch gibt es bestimmt viel Potential, die Berechnung der Dienstpläne weiter zu beschleunigen.
So, lange Geschichte, aber mir war es wichtig zu erklären, warum ich mich so entschieden habe wie ich es habe. Ich bin der Nutzer des Programmes, mein eigener Kunde. Und mein Hauptaugenmerk liegt auf der Performance. Dennoch bin ich wirklich sehr dankbar für Eure Hilfe und Eure Gedult.
Ich hoffe Ihr seid mir nicht böse, wenn ich nicht jeden Rat annehme und meinen Kopf durchsetze und unterstützt mich trotzdem weiter wenn ich Fragen habe.
Ich habe bereits viel hier von Euch mitnehmen können, z.B. das Anzeigen im StringGrid abweichend vom tatsächlichen Inhalt (OWNERDRAW), das Speichern der Daten in Textfiles, dynamische Menüs etc..
Also, in diesem Sinne.