Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datumtabelle mit Einträgen über Eingabefelder. (https://www.delphipraxis.net/154784-datumtabelle-mit-eintraegen-ueber-eingabefelder.html)

Sievo 24. Sep 2010 19:03

Datumtabelle mit Einträgen über Eingabefelder.
 
Hallo alle zusammen,

ich habe ein mittel bis schwerwiegendes Problem.
Für mich Schwerwiegend für euch wahrscheinlich nur ein mittleres ;)

Also es geht darum ich muss ein Programm über Delphi schreiben und habe so gut wie keine Ahnung von Delphi.

Ich hoffe trotzdem das ihr mir helfen wollt und könnt!

Und zwar muss das Programm verschiedene Einträge in einer tabelle anzeigen.

Die tabelle sollte so aussehen das oben ein Datumsstrahl vom 01.01.2010 bis 31.12.2010 zu sehen ist! Also in der ersten Spalte das Datum und in der 2 der Tag.

Links in einer Zeile stehen sozusagen Uhrzeiten! Also insgesammt aufgebaut wie in Stundenplan. Dann muss ich durch eingeben über Felder die einzelnen betreffenden Abschnitte markieren und die Informationen müssen dadrin stehen.

Also z.b vom 14.12.2010 bis 21.12.2010 immer um 8 Uhr.
Also ist jetzt ein durchgehender markierter Kasten vom 14 bis zum 21.12.2010.

Sorry aber ich hab keine Ahnung wie ich es besser erklären kann! :(

Ich hoffe das mir Leute von euch helfen können!
Ich habe versucht dieses über TstringGrid oder TdrawGrid zu machen aber ich scheiter schon daran den frotlaufenden Datumsstrahl ein zu bauen!

Oder sagen wir so wie die Befehle sind und wie ich diese verbinden kann.

Gruß

Sievo!

mkinzler 24. Sep 2010 19:16

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Hier würde sich villeicht was Fertiges anbieten
VisualPlanIT
TMS Planer

haentschman 24. Sep 2010 19:31

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Hallo Sievo,
erst mal willkommen in der DP. :dp:

Zeig uns doch mal was du schon hast. Am besten hängst du das Projekt mal als ZIP an, damit wir auch die Visuellen Dinge sehen können.

Sievo 24. Sep 2010 20:22

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
So erstmal Danke das sich welche gemeldet haben :)

Und danke für die 2 Dateien ich bin schon fleißig am suchen :)

Ich hab sozusagen nur die Anwendungsdatei wie es aussehen soll!! Also sagen wir so es soll nicht so aussehn weil ich möchte dieses Programm ja anders schreiben :)

Ich hab nur keine Ahnung wie genau ich das machen soll und deswegen hoffe ich das mir hier Leute von euch erklären können wieso weshalb und warum ich solche Befehle nutzen soll!Also mal zum anschauen das Fertige Programm im Anhang!

Sir Rufo 24. Sep 2010 23:00

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Zitat:

Zitat von Sievo (Beitrag 1051773)
Sorry aber ich hab keine Ahnung wie ich es besser erklären kann! :(

Ein Bild sagt mehr als tausend Worte

Sievo 24. Sep 2010 23:26

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay =)

Also das daunten ist meine bis jetzige arbeit!

Wie man sieht sind die Datumsverläufe da aber die Zellengröße stimmt nicht!

Außerdem fehlen die Tage also Montag Dienstag etc unter dem Datum!

Delphi-Quellcode:
procedure TForm1.StringGrid1Enter(Sender: TObject);

var
  i, z: Integer;
  tmpDatum: TDate;
  Tag: String;
begin
  tmpDatum := StrToDate('01.01.' + FormatDateTime('yyyy', now));

  for i:=1 to 365 do

  StringGrid1.Refresh;
  for i:=1 to 365 do
  begin

    for z:=1 to 365 do
    begin
      if z = i then
        break;
      tmpDatum:= tmpDatum + 1;
    end;
    StringGrid1.Cells[i, 0]:= FormatDateTime('dd.mm', tmpDatum);
    tmpDatum := StrToDate('01.01.' + FormatDateTime('yyyy', now));
    StringGrid1.ColWidths[i] := 30;
  end;
        StringGrid1.Cells[0,0] := 'Datum';
        StringGrid1.Cells[0,1] := 'Wochentag';
        StringGrid1.Cells[0,2] := 'LKW 1';
        StringGrid1.Cells[0,3] := 'LKW 2';
        StringGrid1.Cells[0,4] := 'LKW 3';
end;
Ich muss sagen ich hab das da oben geschrieben kann es mir aber auch net erklären wieso es funktioniert :) habe es meist aus foren und anderen Einträgen zusammen gebaut!

Also wenn mir einer erklären kann was genau die Zeilen bewirken dann wäre das sehr nett!

Ich will das Programm ja nicht nur schreiben sondern auch verstehen!

Vielen Dank!

Sievo 25. Sep 2010 00:38

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also das Problem meiner Spaltenbreite hab ich auch gelöst!

Aber Heute morgen beschäftigt mich die Frage wie bekomm ich die Wochentage zu meinem Datum!
Also erste Zeile ist das Datum und dadrunter soll der Wochentag!

Siehe Screenshot!

Gruß Sievo

Sievo 25. Sep 2010 10:39

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Eine andere Frage wäre

Mach ich es mir vllt zu schwer?
Weil es gibt Leute die sagen das der Tdbgrid dafür am besten ist!?

Welche Art würdet ihr mir empfehlen!?
Es handelt sich ja eigentlich nur im Datensätze die ich dann auch noch aus einer Datei einlesen lassen muss und auch die eingetragenen Daten abspeichern muss!

Gruß Sievo

Sir Rufo 25. Sep 2010 14:18

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Wie gesagt, ein Bild würde mehr sagen .... aber

Nicht ein Bild von dem was du bereits hast, sondern ein Bild, wie es aussehen soll.

Also mal ein Bild wie das aussehen soll und gib die passenden Daten dazu, auf deren Basis dieses Bild so angezeigt werden soll.

Sievo 25. Sep 2010 14:20

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Alles klar ich mach mich sofort dran!

Vielen Dank!

Siehe Seite 2

Sievo 25. Sep 2010 14:32

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hoffe damit ist es verständlich!

Mein Größtes Problem ist die Verknüpfung der 4 Eingabefelder!
Einmal die Verknüpfung die überprüft um welches Fahrzeug es sich handelt!
Dann die Verknüpfung welches Startdatum gewählt wurde!
Als 3 sollte dann ja durch die Dauer des Auftrages der Bereich abgesteckt werden also von wann bis wann der Auftrag ist.
Und als Letztes muss dann in diesem Bereich die Kundennummer angezeigt werden und der Bereich mit einer Hintergundfarbe hervorgehoben werden.

Der Zeitstrahl sollte am besten immer für eine bestimmte Kalenderwoche sein die man sich aussuchen kann von diesem Jahr!


Bedingungen sind:

1. Einlesen und Darstellen der Angaben aus der Datei Auftrag.txt.
2. Erfassen und Darstellen eines neuen Auftrages. Im Falle einer Überlappung mit dem bestehenden Auftrag sollte(n) die Konfliktwoche(n) farbig hervorge-hoben werden.
3. Löschen eines bestehenden vom Benutzer gewählten Auftrages (bestimmt durch Fahrzeugnummer und Anfangsdatum bzw. Klick auf der Dispotafel).
4. Speicherung der auf der Dispotafel dargestellten Aufträge in der Datei AuftragOut.txt (Format wie bei Auftrag.txt).

Chillkröte 25. Sep 2010 19:55

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
für den wochentag kannst du die funktion DayOfWeek nutzen
wie sieht denn die Auftrag.txt aus? zum einlesen erstmal: TStringlist

für die kalenderwoche kannst du ja ein combobox nutzen in denen die jeweilige woche eingetragen ist

Sievo 25. Sep 2010 20:57

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi und danke erstmal ^^

Also Kalenderwoche hab ich eigentlich gelöst zwar nicht zu 100% meinem geschmack aber müsste klappen siehe screen!

Die txt datei hefte ich dir unten mal an!

Chillkröte 25. Sep 2010 21:06

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
also ich würd die aufträge erstmal in eine stringlist einlesen

und dann wenn du es so hast: 1 21 5 2010 2 12
den string zerstückeln (copy,pos,delete wären zu nennen) die jeweiligen einträge dann irgendwo abspeichern

also ich würd die combobox nutzen in die du dann [1. - 52.] Woche auswählen kannst
und dann in dem stringgrid nur die jeweiligen tage eintragen

dadurch wird das stringgrid nicht so unübersichtlich

Sievo 25. Sep 2010 21:18

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Okay Chillkröte das klingt schonmal gut =)

Ich bin jetzt nicht der Delphi pro ist in meinem Studium nur ein kleiner Teil und ich kann mit dem zerstückeln nichts anfangen ^^ aber ich werde das mal mit den boxen probieren.

Wenn du vllt nen tipp hast wo ich mich da einlesen kann oder wie ichs mir einfacher machen kann dann hau ihn bitte raus :)

Das Problem ist ja wie bekomm ich die in die combobox rein und dann noch wie verknüpfe ich die mit der tabelle damit wenn ich mir eine aussuche die auch angezeigt wird =)

Wenn du verstehst was ich meine ^^ kann mich da net so genau ausdrücken ^^ zur zeit mach ich das ja über das Edit feld oben über der Tabelle und dann mit dem button Anzeigen suchen was auch nicht so wirklich klappt ^^

Chillkröte 25. Sep 2010 21:44

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
die combobox hat eine property items
diese kannst du dann im OI füllen
einfach die Nummer 1 - 52 dort eintragen

dann im OnChange Event der Combobox den Text der Combobox auslesen

mit zerstückeln meine ich sowas zb (geht vllt auch eleganter)

Delphi-Quellcode:
var
i : integer;
s,a : string;
begin
s := '1 21 5 2010 2 12'
i := pos(' ',s);
a := copy(s,1,i);
delete(s,1,i+1);
das kann man dann rekursiv machen bis keine leerzeichen mehr vorhanden sind

zum nachlesen ist immer die hilfe ganz gut, die Delphi Reference, Grundlagen Tutorials (bzw überhaupt Tutorials)

Sievo 25. Sep 2010 21:57

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Okay also das mit der Combobox versuch ich gerade hab auch die 53 wochen eingetragen aber verstehe nicht so recht wie ich es jetzt schaffe das wenn ich die 1 in der combobox aussuche er mir also das datum in der striggrid vom 01.01.2010 bis zum 07.01.2010 anzeigt.

Kannst du mir da helfen?

Hoffe du weißt was ich meine!

ich hab nur das hier gefunden

If Combobox1.Text = 1 Then --> Aber was kommt jetzt hier hin?

Sir Rufo 25. Sep 2010 22:38

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Irgendwie machst du alles durcheinander aber dafür nicht richtig strukturiert.

Teile dein Projekt in Teilbereiche auf. Dann kannst du auch (so wie hier gefordert) pro Frage einen Thread aufmachen.

Überlege Dir zunächst eine Datenstruktur
Code:
TAuftrag
  Kunde
  Fahrzeug
  Datum
  Dauer
Das wird deine Basis.

Diese Daten legt man intern z.B. in einer Liste ab (TObjectList)

Ausgehend davon kommen dann die anderen Funktionsbereiche
- Speichern/Laden
- Anzeige
- Dateneingabe

Bei Gelegenheit stelle ich dir mal ein kleines Beispiel rein

Sievo 25. Sep 2010 22:43

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Okay ich Danke dir Sir Rufo!

Dann werd ich das mal so angehen und meine Tabelle Schritt für Schritt aufbauen!

Vielen Dank nochmal!

Auf dein Beispiel bin ich gespannt ^^

Chillkröte 25. Sep 2010 22:51

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
du musst auf jeden fall erstmal das datum der jeweiligen woche haben
es reicht ja wenn nur der 1. tag gemerkt wird

und dann trägst du das in deine liste ein

Delphi-Quellcode:
var
sg : stringgrid
begin
sg.cells[1,0] := 'Der jeweilige 1. Tag'
sg.cells[2,0] := 'Der jeweilige 2. Tag'
usw
//edit: cells korrigiert

Sievo 25. Sep 2010 23:21

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Okay ich danke dir!! :)

Werds mal morgen versuchen für Heute ist Schluss =)

Sir Rufo 25. Sep 2010 23:44

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
So hier mal ein Beispielprojekt

Sievo 26. Sep 2010 01:09

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Hmm also ich hab das jetzt mal runtergeladen aber kann die programme nicht starten!

Also den quellcode kann ich mir angucken er sagt mir nur das irgendeine source fehlt!

Ich Danke dir! Werd mich da später mal durchfuchsen! :)

Sir Rufo 26. Sep 2010 01:50

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Eigentlich sagt der COmpiler schon genau welche Source fehlt.

Es ist auf jeden Fall hilfreich, wenn du in deinem Profil deine Delphi Version hinterlegst.
(Das hat nix mit Prahlerei zu tun, sondern jede Delphi-Version hat spezielle Eigenschaften, bzw. auch mehr oder weniger Funktionen)

Sievo 26. Sep 2010 11:47

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey okay hab ich gemacht!

Und hier unten ist der Fehler wenn ich das Programm starten will!

Der andere Fehler ist das nicht eine Source fehlt sondern eine Resouce nicht gefunden werden kann und dann wird ein Pfad angegeben mit C:\Benutzername usw.

mkinzler 26. Sep 2010 11:48

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Wo unten?

Sir Rufo 26. Sep 2010 12:04

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Nimm die Zeile einfach raus ... Das kennt Turbo Delphi nicht.

Die fehlende Resource sollte automatisch erstellt werden.

Sievo 26. Sep 2010 12:13

AW: Datumtabelle mit Einträgen über Eingabefelder.
 
Okay cool Danke!!

Jetzt läuft es!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.

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