![]() |
Tabellenverknüpfungen
Hallo,
1) eine "Basistabelle" ca. 1000 Datensätze enthält sowas wie ein Inhaltsverzeichnis = ID, Nummer, Bezeichnung. Diese Basistabelle wird für eine Reihe von Formularen als Inhaltsverzeichnis in einem TreeView benutzt. zugehörig sind jeweils 2) diverse "Detailtabelle" 1:1 mit Detailangaben bei Klick auf den Übersichtseintrag wird über den Schlüssel der Datensatz gesucht. Die Basistabelle hat 1000 Datensätze, die verschiedenen Detailtabellen noch keine. Der Benutzer skrollt auf dem Formular durch das Inhaltsverzeichnis, kann aber keine Daten eingeben, weil der Datensatz in der Detailtabelle fehlt. Es wäre seltsam, wenn der Benutzer einen neuen Datensatz anlegen muß, obwohl er durch die Übersicht skrollen kann. Ich könnte natürlich abfragen: Wenn Datensatz vorhanden ok, wenn nicht anlegen. Aber das ist wohl ein ziemlicher Overhead weil es dann immer passiert. Wie kann man sowas machen? Verzeiht meine vielleicht dumme Frage, vielleicht ist es ganz einfach!? Hoffentlich habt Ihr meine Frage auch verstanden. ![]() |
Re: Tabellenverknüpfungen
Hallo,
erzähl' uns mal bitte, wie Du bisher die Daten holst: z. B. per SQL oder über TTable und Locate oder... Dann wird es eventuell einfacher, Dir eine für Dein konkretes Problem passenden Lösungsvorschlag zu machen. |
Re: Tabellenverknüpfungen
Zitat:
|
Re: Tabellenverknüpfungen
Hallo,
Zitat:
|
Re: Tabellenverknüpfungen
Klar, damit kann er entweder den zurückgelieferten Datensatz der Detailtabelle verwenden oder feststellen, dass es noch keinen gibt. Anlegen muss er dann aber trotzdem einen, damit die Verknüpfung aufgebaut werden kann.
|
Re: Tabellenverknüpfungen
Hallo,
Zitat:
|
Re: Tabellenverknüpfungen
Joa das ist die Frage. Liest sich im Beitrag halt so, dass er ohne Datensatz auch keine Controls anzeigen kann / will.
Zitat:
|
Re: Tabellenverknüpfungen
Zitat:
Die Frage ist, wie kommt der Impuls zum Anlegen eines neuen Detaildatensatzes wenn der Anwender editieren will. |
Re: Tabellenverknüpfungen
Nochmal ne Frage zur Datenstruktur
- Die Liste mit den Krankheitsbildern (?) gibt es die einmal für alle Patienten oder einmal je Patient? Deine Frage beantwortet sich daraus, was der Nutzer machen muss um zu editieren. Langt das draufklicken im Tree, dann muss das dein Impuls sein. Suchen -> wenn nicht gefunden -> anlegen. Alternativ kannst du die Eingabemaske auch immer anzeigen und einen Speichern-Knopf einbauen, der dann entweder den vorhandenen Datensatz aktualisiert oder eben einen neuen anlegt. |
Re: Tabellenverknüpfungen
Hallo,
würde das nicht reichen?
Delphi-Quellcode:
Im zweiten Dataset mit dem Schlüssel des ersten Dataset suchen, wenn gefunden, den zweiten Dataset in den Editiermodus setzen, andernfalls einen Datensatz mit Append anhängen.
If ADODataSet2.Locate('Schlüsselspalte',ADODataSet1.FieldByName('Schlüsselspalte').AsString,[loCaseInsensitive]) then begin
ADODataSet2.Edit; end else begin ADODataSet2.Append; end; Beim Speichern wird dann in beiden Fällen mit Post der Inhalt in die Datenbank geschrieben. Bei einem neuen Datensatz im zweiten Dataset könnte man aber auch noch entscheiden, ihn nicht zu schreiben, sofern alle Felder leer geblieben sind, sprich: keine Eingabe erfolgte. [EDIT]hat Schreibfehler gefunden[/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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 by Thomas Breitkreuz