Warum zeigt die Feld-/Variablenliste Relationen nicht an?

Hinweis: Ab List & Label in der Version 29 werden im Designer für Windows neben den 1:1 Relationen nun auch die 1:n Relationen in der Feld-/Variablenliste angezeigt. Weitere Details dazu beschreibt der Artikel Erweiterter Drag & Drop-Support im Designer.

Problem

Sie melden über Ihre Anwendung eine oder mehrere Relationen zwischen verschiedenen Tabellen an, übergeben diese anschließend an List & Label und sehen die Relation jedoch nicht in der Feld-/Variablenliste des Designers? Dieser Artikel beschreibt warum das so ist.

Lösung

Grundlegend ist es wichtig zu verstehen, dass die Feld-/Variablenliste im Designer standardmäßig keine Informationen über die angemeldete Datenstruktur an sich enthält, sondern lediglich die Datenfeldstruktur-Informationen aller angemeldeten Tabellen abbildet, die in der Datenquelle gefunden und an List & Label übergeben werden.

Die eigentliche Datenstruktur ist in dem Datenquellen-Auswahldialog ersichtlich, wenn innerhalb eines Berichtscontainers ein neues Element angelegt wird, beispielsweise eine Tabelle oder ein Diagramm:

image

Erkennen Sie den Unterschied der Tabelle Customers im Vergleich zum ersten Screenshot? Diese hat eine Relation zur Untertabelle Orders, welche selbst auch nochmal eine Relation zur Tabelle Order Details hat.

Aber warum ist das so? Der Hintergrund ist, dass jede Tabelle einzeln für sich platziert werden kann. So kann die Tabelle Order Details entweder einzeln als “Root”-Element platziert werden (sie steht auch einzeln zur Auswahl). Ebenso kann diese Tabelle Order Details aber auch als Unterelement über die Relation zu Customers gewählt werden.

Die Feld-/Variablenliste zeigt also lediglich die verfügbaren Tabellen mit ihren Inhalten (also die Tabellenfelder) an. Da nun jedoch jede Tabelle auf verschiedenen Ebenen in der Hierarchie erscheinen kann (das hängt von den übergebenen Relationen ab), wird sie allerdings nur einmal in der Baumstruktur hinzugefügt.

Lediglich eine Ausnahme gibt es, was die Anzeige in der Feld-/Variablenliste angeht. Und zwar sind es die 1:1 relational bezogenen Bezeichner der übergeordneten Tabellen (wir sprechen oftmals von der 1:1 Rückrelation: 1 Kunde kann mehrere Bestellungen haben, jede Bestellung ist jedoch genau einem Kunden zugeordnet). Um bei dem Beispiel der Kunden und den untergeordneten Bestellungen zu bleiben: es kann also durchaus erforderlich sein, Kundendaten zu drucken, die sich auf eine Auftragszeile in der Tabelle Orders beziehen:

Man sieht dann die Beziehung, wenn auch in umgekehrter Reihenfolge.