AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TDBGrid mit Master/Detail?
Thema durchsuchen
Ansicht
Themen-Optionen

TDBGrid mit Master/Detail?

Offene Frage von "NoGAD"
Ein Thema von NoGAD · begonnen am 18. Apr 2021 · letzter Beitrag vom 25. Apr 2021
Antwort Antwort
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: TDBGrid mit Master/Detail?

  Alt 22. Apr 2021, 17:53
Danke für die Erklärung.

Ich habe versucht es zur Laufzeit einzubauen, es kommt immer die Fehlermeldung, dass das Feld 'book_author' nicht existiert.

Die Tabelle wurde erstellt, im Anschluss wird das Lookup-Feld angelegt. Mein Code für das Lookup-Feld sieht jetzt so aus:

Delphi-Quellcode:
var
  NewField: TField;
begin
    if Table2.FieldDefs.Updated = False then
      Table2.FieldDefs.Update;
    if Table12FindField('lfAuthor') = nil then
    begin
      NewField := TStringField.Create(Table2);
      NewField.FieldName := 'lfAuthor'; // Lookup Field Author
      NewField.SetFieldType(ftString); // String
      NewField.Size:=255;
      NewField.KeyFields := 'book_author'; // Field aus Table1
      NewField.LookUpDataset := Table1;
      NewField.LookUpKeyFields := 'id'; // Field aus Table2
      NewField.LookUpResultField := 'autor_nachname'; // Field aus Table2, welches über die id, die in 'book_author' steht, angezeigt werden soll
      NewField.FieldKind := fkLookup;
      NewField.DataSet := Table2;
    end;
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
548 Beiträge
 
Delphi 12 Athens
 
#2

AW: TDBGrid mit Master/Detail?

  Alt 22. Apr 2021, 18:42
Wenn Table1 die ID für den Lookup enthält, dann muss da die Lookup-Geschichte definiert werden. Eigentlich ganz einfach zusammencklickbar, wenn man persistente Felder benutzt.

Einfach Dataset - Feldeditor - Neues Feld bei Tabelle1.

Manuell sollte es aber auch gehen.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TDBGrid mit Master/Detail?

  Alt 22. Apr 2021, 21:13
Wenn Table1 die ID für den Lookup enthält, dann muss da die Lookup-Geschichte definiert werden. Eigentlich ganz einfach zusammencklickbar, wenn man persistente Felder benutzt.

Einfach Dataset - Feldeditor - Neues Feld bei Tabelle1.

Manuell sollte es aber auch gehen.

Die ID aus Tabelle1 ist eine Referenz auf Tabelle2, als Integer. Also in Tabelle2 stehen Werte, die im DBGrid erscheinen sollen, owohl eigentlich nur Tabelle1 im DBGrid angezeigt wird.

LG Mathias
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.756 Beiträge
 
Delphi 12 Athens
 
#4

AW: TDBGrid mit Master/Detail?

  Alt 22. Apr 2021, 22:13
Dann müsste es aber eher so aussehen:
Delphi-Quellcode:
      NewField := TStringField.Create(Table1);
      NewField.FieldName := 'lfAuthor'; // Lookup Field Author
      NewField.SetFieldType(ftString); // String
      NewField.Size:=255;
      NewField.KeyFields := 'book_author'; // Field aus Table1
      NewField.LookUpDataset := Table2;
      NewField.LookUpKeyFields := 'id'; // Field aus Table2
      NewField.LookUpResultField := 'autor_nachname'; // Field aus Table2, welches über die id, die in 'book_author' steht, angezeigt werden soll
      NewField.FieldKind := fkLookup;
      NewField.DataSet := Table1;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TDBGrid mit Master/Detail?

  Alt 23. Apr 2021, 05:34
Guten Morgen!

Nochmal zum Verständnis für mich:

das Feld lfAuthor darf nicht existieren, damit das ganze funktionieren soll?


@Uwe Raabe: Danke, leider gibt es immer noch den Fehler, dass das Feld: book_author (gibt es in table1) nicht existiert.

Lasse ich im Code: NewField.DataSet := Table1; weg, lauft es durch, aber das Lookup-Feld wird im DBGrid nicht angezeigt.

LG
Mathias
Ich vergesse einfach zu viel.

Geändert von NoGAD (23. Apr 2021 um 05:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.756 Beiträge
 
Delphi 12 Athens
 
#6

AW: TDBGrid mit Master/Detail?

  Alt 23. Apr 2021, 08:30
Mach doch mal ein komplettes Beispiel, damit wir genau wissen, was wo ist und was nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TDBGrid mit Master/Detail?

  Alt 25. Apr 2021, 23:05
Hallo,


es hat eine Weile gedauert, ich hatte noch andere Sachen zu tun.

Anbei mein Projekt.

In der Unit: Hauptformular.pas ist betreffende Passage ab Zeile 430.

Delphi-Quellcode:
function TForm_Hauptformular.Create_MyABSTable: Boolean;
{ :: Create Query(s) and Table(s) if not exists - }

Für die Kompilierung werden noch viele Komponenten benötigt, die ich teilweise selbst erstellt habe. Außerdem ABS Database.

Für Hinweise wäre ich sehr dankbar

Habt einen schönen Start in die neue Woche.
Angehängte Dateien
Dateityp: zip Bibo2.2.zip (1,79 MB, 12x aufgerufen)
Mathias
Ich vergesse einfach zu viel.
  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 01:10 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