Frank (no reg): Stundeneingabe erstellen

Beitrag lesen

Hallo nochmal,

ich verwende für die Eingabe immer Schema F. ;)

Also die standard Eingabe-Seite zeigt mir die Tage der Woche aktuelle Woche per default) in Spalten an und die Projekte als Zeilen. Insofern liegst du mit deiner Idee schon recht gut.

Als Tabellenfuss mache ich dann eine Summierung der Stunden für den gesamten Tag. Mit etwas Programmlogik färbe ich diesen Betrag denn rot wenn er zu hoch ist, nur mal so als weiterführender Gedanke.

In den Zellen (Zelle = Kreuzung aus Zeile/Spalte) die sich ergeben, habe einen Button zum Hinzufügen eines neuen Stunden-Eintrags und einen für die Details von dem Projekt/Tag. Der Detail-Button gibt mir nach (unter) der Tabelle dann eine Liste von Kontierungen für Projekt/Tag. Von dort aus kann ich Einträge editieren und wieder löschen.

Weiterhin zeige ich in der Tabellenzelle selbst noch die Summe der Stunden für dieses/n Projekt/Tag.

Projekt    | Montag    | Dienstag  | ....      | Total     |
-----------|-----------|-----------|-----------|-----------|
Projekt X  | 6.50  D + |         + | ....      |      6.50 |
Projekt Y  | 1.00  D + | 2.75  D + | ....      |      3.75 |
-----------|-----------|-----------|-----------|-----------|
Total      | 7.50      | 2.75      | ....      |     10.25 |
-----------|-----------|-----------|-----------|-----------|

D ist der Detail-Button, + der "Neuer Eintrag"-Button.

Die Liste für die Details sieht dann zum Bleistift so aus:

Montag, 7.10.2006

Projekt    | Aufgabe   | Stunden   |
-----------|-----------|-----------|-----------|-----------|
Projekt X  | Doku      | 3.50      | Ändern    | Löschen   |
Projekt X  | Proggen   | 3.00      | Ändern    | Löschen   |
-----------|-----------|-----------|-----------|-----------|

Die Logik für die Anzeige ist imho nicht wirklich kompliziert oder über die Maßen aufwendig, aber so trivial wie <h1>Hello World</h1> ist es dann auch nicht. Es ist imho einfach eine Verwendung von <table> (ja, für tabellarische Daten darf man wirklich <table> verwenden) und Schleifen deiner Programmlogik.
Die Totals am Zeilen- oder Spaltenende kannst du dann entweder dynamisch in PHP über die Schleifen und Arrays berechnen oder als separate Abfrageergebnisse aus der DB Holen.

Die einzigen Schreibaufgaben (Inserts und Updates) solltest du vom eigentlichen Eingabeformular für die Stundenkontierung machen, der Rest sind alles nur Selects mit ein paar JOINs, vielleicht auch UNIONs.

Die Verwendung eines DBMS (Version) mit Unterstützung für Unterabfragen (Subqueries) könnte dir für die Selects ganz hilfreich sein.

Soetwas wäre eine gute Aufgabe für einen Job-Kandidaten, stelle ich gerade fest. 4 Std. sollten da genügen.

Grüsse
Frank