Hallo Hansa,
also bei den Rechnungen läuft das wie folgt. Du hast in deinem Formular sagen wir einmal oben ein Panel auf dem du die Rechnungsdaten z.B. in Form von DBEdit Feldern hast. Diese sind der Tabelle Rechnungen zugeordnet. Nehmen wir an, diese Tabelle hat nur 5 Felder:
1. RechNr I
2. Name A 30
3. Strasse A 30
4. Ort A 30
5. Datum D
Wenn du oben einen Schalter hast "Neue Rechnung", dann machst du nur:
Rechnungen.Append;
Damit hast du einen neuen Datensatz erzeugt und alle Felder sind leer. Jetzt trägt der Nutzer alle Werte für die 5. Felder ein. (RechNr könnte auch automatisch erstellt werden.) und irgendwann drückt er "Rechnung speichern". Dann ordnest du diesem Schalter zu:
Rechnungen.Post
Im unteren Panel hast du nun ein Grid für die Positionen und eine Nav Komponente. Dem OnNewRecord - Ereignis ordnest du folgenden Code zu:
Positionen.FieldByName('rechNr').AsInteger := Rechnungen.FieldByName('RechNr').Value;
Das Feld RechNr von Positionen zeigst du aber nicht an! (Visible := False)
Die Tabelle Positionen verknüpfst du jetzt noch über MasterSource mit der Tabelle Rechnungen.
Das war jetzt nur mal grob als Beispiel. Wenn du Detailfragen hast, frag einfach noch mal gezielt nach