![]() |
Datenbank: ACCESS • Version: 2000 • Zugriff über: TADOConnection, TBetterADODataset, TDatasource
Master - Child - wie soll ich dies lösen
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. :wall: arbeite mit TADOConnection, TBetterADODataset, TDatasource vielen Dank Karl |
Re: Master - Child - wie soll ich dies lösen
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. |
Re: Master - Child - wie soll ich dies lösen
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 |
Re: Master - Child - wie soll ich dies lösen
:-D 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 |
Re: Master - Child - wie soll ich dies lösen
Hi!
Vorerst Danke! Aber ich versteh das nicht ganz - was meinst du mit dem view. Karl |
Re: Master - Child - wie soll ich dies lösen
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. :-D |
Re: Master - Child - wie soll ich dies lösen
vielen dank :bounce2: :bounce2: :bounce2:
hat zwar etwas gedauert, aber jetzt hab ichs dank eurer hilfe gruss karl |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
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