Moin,
TDBF beinhaltet eine Property Mastersource sowie Masterfields. Aber irgendwie werden die nicht benutzt.
Ich habe eine Tabelle dokumente.dbf mit einer Personalnummer und eine personal.dbf mit den anderen Daten des Mitarbeiters.
Dann habe ich zwei dbgrid ins Formular gesetzt und eines mit der TDatasource dsdokumente und das andere mit dspersonal verbunden.
Es werden aber immer alle Personal Datensätze angezeigt.
Wie macht man das denn richtig?
TDBF Master Detailbeziehungen?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
-
- Beiträge: 1062
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: TDBF Master Detailbeziehungen?
zu meinen Clipper-Zeiten hab ich mich auch nie auf irgendwelche Master-Detail Konstrukte verlassen und hab die Steuerung immer selber gemacht.
Auf Lazarus übertragen würde ich sagen (ohne es getestet zu haben) im TDbf des der Tabelle Personal ins Afterscroll eine Suche im TDbf der Tabelle Dokumente eine Suche machen (mit der Personal-ID) - index setzen/benutzen nicht vergessen.
oder meinst du etwas anderes ?
Auf Lazarus übertragen würde ich sagen (ohne es getestet zu haben) im TDbf des der Tabelle Personal ins Afterscroll eine Suche im TDbf der Tabelle Dokumente eine Suche machen (mit der Personal-ID) - index setzen/benutzen nicht vergessen.
oder meinst du etwas anderes ?
Re: TDBF Master Detailbeziehungen?
Du brauchst einen Index in der Master-Tabelle und in der Detail-Tabelle für das Feld, das die Master-Details-Verknüpfung vermitteln soll. Dieser Index muss in beiden Tabellen ausgewählt sein. Dann muss in der Detail-Tabelle als MasterSource die DataSource mit der Master-Tabelle eingetragen sein, sowie in der Eigenschaft MasterFields das in der Master-Tabelle verwendete Index-Feld.fliegermichl hat geschrieben: Mi 14. Apr 2021, 11:38 TDBF beinhaltet eine Property Mastersource sowie Masterfields. Aber irgendwie werden die nicht benutzt. [...] Wie macht man das denn richtig?
Siehe beigefügte Beispiel:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
dbfMaster.FilePathFull := Application.Location + 'data';
dbfMaster.TableName := 'master.dbf';
dbfMaster.Open;
dbfMaster.IndexFieldNames := 'SYMBOL';
dbfDetail.FilePathFull := Application.Location + 'data';
dbfDetail.TableName := 'holdings.dbf';
dbfDetail.Open;
dbfDetail.MasterSource := dsMaster;
dbfDetail.MasterFields := 'SYMBOL';
dbfDetail.IndexFieldNames := 'SYMBOL';
end;
- Dateianhänge
-
dbf_master_detail.zip
- (9.13 KiB) 95-mal heruntergeladen
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: TDBF Master Detailbeziehungen?
Danke für die Infos. Ich teste das dann gleich mal.