AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Master - Child - wie soll ich dies lösen
Thema durchsuchen
Ansicht
Themen-Optionen

Master - Child - wie soll ich dies lösen

Ein Thema von karl der große · begonnen am 20. Mär 2005 · letzter Beitrag vom 20. Mär 2005
Antwort Antwort
karl der große

Registriert seit: 4. Mär 2005
40 Beiträge
 
#1

Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 19:31
Datenbank: ACCESS • Version: 2000 • Zugriff über: TADOConnection, TBetterADODataset, TDatasource
Hallo!

Hab ein schwieriges Problem!

Hab folgende Tabellen mit den jeweilig relevanten Feldern

Mitarbeiter
Nummer
(darin stehen alle Mitarbeiterdaten mit der Mitarbeiternummer)

Objektkunde
Objektnummer
(darin stehen alle Projekte der Firma)

Stunden
Mitarbeiternummer
Datum
Objektnummer
erbrachte Leistung
(in dieser Tabelle werden die geleisteten Arbeitszeiten erfasst, nach Mitarbeiternummer, Datum und entsprechender Objektnummer)

Stundentag (Hilfstabelle)
Tag (Datum)
Mitarbeiternummer
Objektnummer
(diese Tabelle habe ich als Hilfstabelle angelegt, da ich nicht weiss, wie es anders funktionieren sollte)

Möchte nun ein VirtualStringTree aufbauen, der wie folgt aussieht

Ich wähle vorab ein Objekt über die Objektnummer - diese steht also fest. Für dieses Objekt soll er folgenden Tree anzeigen

Mitarbeiter 1
Datum
erbrachte Leistung
erbrachte Leistung
Datum
erbrachte Leistung
erbrachte Leistung
Mitarbeiter 2
Datum
erbrachte Leistung
erbrachte Leistung
Datum
erbrachte Leistung
erbrachte Leistung

usw.

kann mir jemand sagen, wie ich die einzelnen Commandtext's aufbauen muss, dass es funktionert
versuche nun schon seit mehreren Stunden eine Lösung zu finden, aber ich bin langsam am verzweifeln.

arbeite mit TADOConnection, TBetterADODataset, TDatasource

vielen Dank
Karl
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#2

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 19:57
Hallo Karl,

ich verstehe jetzt nicht so ganz den Aufbau deiner Tabellen (speziell Stunden & StundenTag), dass ist doch das gleiche, oder?

Ich versuche mal es zu verstehen. Du hast Objekte die Mitarbeiter verwaltet werden und nun willst Du erfassen wie lange ein Mitarbeiter an dem Objekt gearbeitet hat. Sprich den Tag und die Zeit.

Da reicht doch eine Hilftabelle auch, - aber nur wenn ich richtig verstanden - dann würde ich das ganze so aufbauen:

Hilfstabelle:
ID PrimaryKey
Mitarbeiter_ID
Objekt_ID
Begin_Bearbeitung (Datum+Uhrzeit)
Ende_Bearbeitung (Datum+Uhrzeit)
Erbrachte_Leistung
usw.

Dann kannst Du einfach per SQL die entsprechenden DB durchgehen. So wie Du das schon hast.
Gruß

Albi
  Mit Zitat antworten Zitat
karl der große

Registriert seit: 4. Mär 2005
40 Beiträge
 
#3

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 20:14
Hallo Albi!

Also folgendes:

Ich habe Projekte - in der Tabelle Objektkunden stehen die ganzen Projektdaten - auch die zentrale Objektnummer

In der Tabelle Mitarbeiter stehen alle Mitarbeiterdaten

In der Datei Stunden stehen alle gearbeiten Stunden aller Mitarbeiter auf allen Projekten inkl. aller sonstigen Daten der geleisteten Arbeit

In der Datei Stundentag stehen nur die Objektnummer, die Mitarbeiternummer und das Datum

Was ich nun brauche ist folgendes:

einen VirtualStringTree der nach vorher erfolgter Objektauswahl folgendes anzeigt:

Mitarbeiter
Datum
erbrachte Leistung
etc.

Meine Probleme in Kurzform

Nicht alle Mitarbeiter haben auf dem ausgewählten Objekt gearbeitet
Nicht alle Stunden eines Mitarbeiters betreffen das ausgewählte Objekt

ich habs zuvor ohne die Hilfstabelle stundentag versucht und hab dann bei einem Mitarbeiter, der an einem Tag drei verschiedene Leistungen für das selbe Projekt erledit hat,
im virtualStringTree dreimal das selbe Datum als Node erhalten mit jeweils einem Untereintrag

es sollte aber so sein, dass er den Mitarbeiter einmal hinschreibt, dann nur einmal das jeweilige Datum und dann von diesem Mitarbeiter in der dritten Ebene des Trees alle geleisteten Arbeiten des einen Mitarbeiters an dem einen Tag.

ich hoffe ich konnte mein problem etwas beschreiben

danke

karl
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#4

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 20:31
also ich würde dass über folgende Beziehungen lösen und die Datenbanken so aufbauen.

Haupttabelle Objekte
Objektid, Bez, ... als Felder

Untertabelle Zeiten
Objektid, Datum, Mitarbaiter, geleistete Zeit, ... als Felder

beim auswählen eines Objekts sqldataset mit gruppierung das für das gewählte Objekt jeweils 1 record pro
gefundene Arbeitszeit eines bestimmten Mitarbeiters je Datum liefert.(könnte ne view sein) -> wäre die 1. und 2. ebene des Baums.

diese Sätze abarbeiten und bei jedem Satz weitere Abfrage die für den aktiven Mitarbeiter an diesem Tag
die Sätze seiner Arbeitszeiten liefert 3. ebene des Baums

müsste imho so funktionieren
  Mit Zitat antworten Zitat
karl der große

Registriert seit: 4. Mär 2005
40 Beiträge
 
#5

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 20:43
Hi!

Vorerst Danke!

Aber ich versteh das nicht ganz - was meinst du mit dem view.

Karl
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#6

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 20:52
du brauchst die tabelle stundentag nicht

mach einfach mit der abfrage entwurfansicht in access eine abfrage in der du die tabellen Mitarbeiter-Objektkunde-Stunden in eine beziehung zu einander setzt

also von objektkunde.id auf stunden.objektid und von stunden.mitarbeiterid auf mitarbeiter.id abfrage speichern und gruppierung nach datum und mitarbieterid müsste dir (sortiert) genau das recordset liefern was du brauchst.

wenn die abfrage gespeichert ist kannst du mit betterdataset darauf zugreifen wie eine tabelle.
  Mit Zitat antworten Zitat
karl der große

Registriert seit: 4. Mär 2005
40 Beiträge
 
#7

Re: Master - Child - wie soll ich dies lösen

  Alt 20. Mär 2005, 23:06
vielen dank

hat zwar etwas gedauert, aber jetzt hab ichs dank eurer hilfe

gruss karl
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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