Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Das große WIE, Chart aktuallisieren, Daten in textfiles (https://www.delphipraxis.net/114821-das-grosse-wie-chart-aktuallisieren-daten-textfiles.html)

Stecky2000 1. Jun 2008 09:05


Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Ich hoffe ich poste hier an der richtigen Stelle, ich fand es recht passend.

Nun, ich habe, z. T. auch mit eurer Hilfe, ein Dienstplanprogramm geschrieben.
Ich habe mit MDI-Forms gearbeitet, mit StringGrids, mit import und export über (StringGridx.Rows[i].commatext), dynamische menüs, nachträgliche Bearbeitung von StringGridzellen über ownerdraw etc..

Klar, für Euch ist das peanuts, aber ich bin kein Programmierer, da bin ich schon recht stolz drauf.

Jetzt brauche ich aber einen kleinen Schubs in die richtige Richtung.

Also...

Ich habe in meinem Proggi z. B. 80 verschiedene Dienstpläne. Insgesamt werden damit ca. 2000 MA verplant.
Ich möchte eine Chart aufbauen in der ein Gebirge (Bedarfskurve) dargestellt wird und darüber die von den 80 Dienstplänen generierte Abdeckung in einer weiteren Linie.

Sowas hab ich schon mal gemacht, sollte kein Problem sein.

Das Problem liegt eher darin, dass die Daten für diese Dienstplanabdeckung z. Z. noch in eben der 80 Textfiles mit den Dienstplandaten liegen, mit Kommas getrennt.

Ich benutze keine Datenbanken, sondern nur diese Textfiles. Das soll auch möglichst so bleiben, da in unserem Betrieb kein BDE installiert werden kann (darf).

Jetzt die Große Frage:

Was für ein Aufbau wäre sinnvoll, um die Daten für die Grafik so schnell wie möglich bei Änderung eines einzelnen Dienstplanes neu zu berechnen?

Ich habe schon überlegt eine Routine zu schreiben, die aus z. B. einem Ini-file die Namen aller Dienstpläne nimmt und diese einzeln läd um die dortigen Abdeckungswerte im 5-Minuten-Raster einzulesen und zu addieren bis alle Pläne durch sind.

Nur hab ich den Verdacht, das wird zu langsam sein ( 80 Dienstpläne á 7 Kurven(Tage) mit 288 Zeilen)...

Sonst hätte ich noch die Idee, 7 Textfiles aufzubauen, für jeden Wochentag eins, und aus jedem Plan dort die Werte rein zu schreiben. Da ich eh nur einen Tag in der Grafik anzeige, brauche ich auch nur Daten für einen Tag. Hier weis ich nicht, wie ich damit umgehen kann, für jeden Plan eine Splate zu zuweisen. Wenn ich eine Plan lösche, müsste auch die Spalte eliminiert werden.

Also, ich hoffe Ihr versteht das Problem und könnt mir einige Tipps zur Entscheidungsfindung geben.

Danke schon mal.

mkinzler 1. Jun 2008 09:32

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Von der BDE würde ich sowieso abraten. Dein Problem schreit aber nach einer Datenbank.

In einer ordentlichen Datenbankstruktur kann man dann einfach Daten aus verschiedenen Dienstplänen zusammenfassen (pro Tag, pro MA, pro Dienstplan, pro ..)

marabu 1. Jun 2008 11:32

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Moin.

Die Entscheidung zwischen Textdateien und Datenbank ist nicht von der BDE-Installation abhängig. Werden die Daten direkt in den Textdateien bereit gestellt, dann bedeutet die Umstellung auf eine Datenbank, dass ein DB-Client erstellt werden muss, der die Pflege der Daten in der Datenbank möglich macht. Ansonsten gibt es genügend DB-Lösungen, die flexible Auswertungen per SQL zulassen, ohne dass eine Installation notwendig wird.

Auch wenn es weiter Textdateien sein sollen, dürfte es eigentlich kein Performanz-Problem geben. Ich würde die Anzeige nicht im Takt erneuern, sondern nur dann, wenn eine der Eingabedateien verändert wurde. Du könntest das Verzeichnis im Dateisystem über eine Programmfunktion überwachen lassen. Das Betriebssystem benachrichtigt dich sofort, wenn eine Datei verändert wurde.

Lesestoff: Obtaining Directory Change Notifications

Mit den einzelnen Funktionen als Suchworten in der DP findest du Code-Beispiele.

Freundliche Grüße

bluesbear 3. Jun 2008 19:49

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Hallo Stecky2000,
Zitat:

Zitat von Stecky2000
(...)Klar, für Euch ist das peanuts, aber ich bin kein Programmierer, da bin ich schon recht stolz drauf.(...)

Kein Programmierer zu sein? :mrgreen:
Ok ok, sorry.
Das einlesen von Textdateien ist sauschnell. Keine Frage, so kann man das machen.

Ich würde bei der Datenmenge sehr empfehlen, auf eine Datenbank, die Abkömmlinge von TDataSet mit sich bringt, umzusteigen.
Da geht das mit dem Update von daran angeknipperten grafischen Komponenten (meist völlig) automatisch. Du würdest dir eine Menge Arbeit ersparen, sofern ich deine Frage richtig verstanden habe.

Meine persönliche Empfehlung wäre Firebird und FibPlus.

Stecky2000 4. Jun 2008 07:36

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Hallo,


sorry dass ich so lange gebraucht habe um zu antworten.
Ich habe gerade Urlaub und habe mehr Stress als wenn ich arbeiten gehe :-(

Nun, wen marabu meint, es würde keinen Einfluss auf die Performance haben, wenn ich aus Textfiles einlese, dan will ich es so versuchen.

Ich habe schon öfter unter Delphi was mit Datenbanken gemacht, mit Paradox, mit Interbase und auch schon mit Oracle. Natürlich auch mit SQL, aber, ich will ein Programm haben, welches ich ohne BDE oder sonstigen Firlefanz mit samt seiner verzeichnisstruktur irgendwo hin kopiere und es ist alles da und funktioniert.

Ich denke, ich werde dazu bestimmt die Hilfe aus diesem Forum brauchen.

Ich habe mir überlegt, die Textfiles für die Tagesganglinien in Strukturen abzulegen, die es ermöglichen, immer nur Teile der Gesamtkurven bei Veränderung neu einzulesen.

Z.B.:

7 Gesamtkurven (7 Tage)
4 x 7 Teilkurven (4 Abteilungen, 7 Tage)
Pro Abteilung 3 Teilkurven x 7 Tage (Stamm, Fremd und Sonderpersonal)

Jetzt muss ich eine Logik entwickeln, die feststellt in welchem Bercih Änderungen statgefunden haben und welche Kurven neu berechnet werden müssen.

Desweiteren brauche ich vorher ein Logik, wie einzelne Dienstpläne in den Abteilungs-Textfiles gepfelgt werden. Sprich Wie wird dort beim Erstellen eines neuen Dienstplanes eine neu Spalte angelegt und fest mit dem Namen des Dienstplanes verdrahtet und wie wird diese Spalte beim Löschen eines Dienstplanes wieder geleert und freigegeben.

Viel Arbeit.

Über Tipps zu den Abteilungsdatenpfelgen wäre ich dankbar. Zur Zeit denke ich über ini-Files nach.

EDIT: sorry habe den letzten Post nicht gesehen:

Firebird und FBPlus habe ich noch nie gehört. Kann man das ohne zusätzliche Installationen wie BDE betreiben? Ist das Freeware?

mkinzler 4. Jun 2008 07:43

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Wie gesagt gibt es andere besseres wie die BDE. Teilweise auch ohne Installation

Hansa 4. Jun 2008 08:10

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Tip von Bluesbear nicht gesehen ? Die anderen auch nicht ? Statt Textfile Ini-Files ? Ist leider dasselbe. :mrgreen:

bluesbear 4. Jun 2008 15:40

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Zitat:

Zitat von Stecky2000
Firebird und FBPlus habe ich noch nie gehört. Kann man das ohne zusätzliche Installationen wie BDE betreiben? Ist das Freeware?

Firebird ist der Open Source Nachfolger von Interbase (Freeware), und kommt in der embedded Variante ohne Installation aus. Da muß nur eine DLL mit ins Programmverzeichnis.
FIBPlus ist eine Komponentensammlung (Querys und so) um darauf zuzugreifen. Leider kostet das was.

Du könntest versuchen, mit den Delphi-Interbase Komponenten auf Firebird zuzugreifen. Mit ein paar Einschränkungen sollte das gehen.

Stecky2000 4. Jun 2008 15:51

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Danke Bluesbear!

Ich versuche das ganze für mich ohne Kosten umzusetzen, ich weis ja gar nicht, ob meine Firma überhaupt gefallen an meinem Proggi findet.

Heut zu Tage träumen alle nur von "Intelligenten" Programmen mit "Optimierungsfunktionen" und mein Tool soll ja bloß einem Fachmann in seinem Bereich, in seiner Firme, in seiner Abteilung, das Erstellen von Dienstplänen und die Beurteilung der Effizienz komfortabel ermöglichen. Die Intelligenz kommt vom User...

Tja, deshalb auch die Textfiles. Ansonsten hätte ich die BDE und Paradox nehmen könne, da gibt es dann die Installationsprobleme (keine Rechte, keine von der Firma abgenommene Software).


Zu meiner Idee mit den Ini-Files...

Ich meinte es so:

- Inhalte der Dienstpläne befinden sich in Textdateien mit Endung .dpl.
- Daten für Kurven befinden sich z. B. in Textfiles wie z. B. Montag.KUR, Dienstag.KUR etc.
- In den Kurvendateien (Montag.KUR) gehört jede Spalte einem Dienstplan, diese werden bei Neuanlage eines Dienstplanes zugewiesen.
- In einem Ini-File steht drin, welchem Dienstplan, welche Spalte im der Kurvendatei gehört.

Liege ich komplett daneben, erfinde ich da völligen Quatsch?
Wenn dem so ist und der Weg definitiv nicht an einer Datenbank vorbei geht...

Gibt es keinen Weg Paradox-.db Dateien ohne BDE zu nutzen?

bluesbear 4. Jun 2008 16:39

Re: Das große WIE, Chart aktuallisieren, Daten in textfiles
 
Es muß ja nicht unbedingt Paradox sein. Ich habe spasseshalber ein wenig gegoogelt, vielleicht hilft dir ja das weiter:
http://www.wlsoft.de/delphi/index_0011.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz