Im Falle einer Bestellung mit den zugehörigen Bestellposten kann es auch erwünscht sein, die "Master"-Daten, d. h. in diesem Beispiel die Daten der Orders-Tabelle als Variablen zu übergeben. So kann der Adressat dann z. B. in einem Textobjekt ausgegeben werden, die Posten im Tabellenobjekt.
Damit Ihnen die "OrderDetails"- Tabelle mit der benötigten Relation zum Einfügen im Tabellenstruktur-Dialog angeboten wird, müssen Sie zuvor mitteilen, dass Sie die Master-Daten als Variablen verwalten und somit schon in der äußersten Ebene des Tabellenobjekts die 1:n-verknüpfte OrderDetails- Tabelle zur Verfügung stellen möchten. Hierzu verwenden Sie LlDbSetMasterTable(). Die benötigten Aufrufe wären also
LlDbAddTable(hJob, "Orders",
"Bestellungen");
LlDbAddTable(hJob, "OrderDetails",
"Bestellposten");
LlDbAddTableRelation(hJob, "OrderDetails", "Orders",
"Orders2OrderDetails",
NULL);
LlDbSetMasterTable(hJob, "Orders");
Der Ablauf der Druckschleife erfolgt dann analog zu oben, allerdings müssen Sie jetzt ggf. schon auf der äußersten Ebene (vgl. Kap. Mehrere unabhängige Tabellen) die geeignete Kind- Datenbanktabelle bereitstellen:
<wiederhole>
{
<Hole aktuellen
Tabellennamen>
(LlPrintDbGetCurrentTable)
<Hole
aktuelle
Sortierung>
(LlPrintDbGetCurrentTableSortOrder)
<Hole aktuelle
Beziehung>
(LlPrintDbGetCurrentTableRelation)
<Wenn Beziehung
leer>
<Generiere ein passendes
DataTable-Objekt>
<sonst>
<Generiere ein passendes
Kind-DataTable-Objekt>
<Rückgabewert=DruckeTabelle(DataTable)>
}
<bis
Rückgabewert <> LL_WRN_TABLECHANGE>
<beende
Ausdruck>
(LlPrintEnd)