Übergabe der Master-Daten als Variablen

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)