Relationale Datenstrukturen in List & Label abbilden

Datenquelle: Arbeiten mit den .NET-Datenprovidern

Wenn ein Datenprovider von List & Label in .NET eingesetzt wird, wird die Datenstruktur (inklusive der benötigten Relationen) immer automatisch ausgelesen. Hierbei werden bereits eine Vielzahl unterschiedlicher Datenprovider für unterschiedlichste Datenquellen mitgeliefert - siehe auch combit.Reporting.DataProviders Namespace. Hier ein paar Beispiele:

  • Beim ObjectDataProvider sind die Relationen so abgebildet, dass im Hauptobjekt einfach eine Property als Liste definiert ist und somit ergibt sich eine Relation Master > Detail.

  • Kommt der SqlConnectionDataProvider zum Einsatz, so wird über die SchemaInfo in der Datenbank die relationale Struktur automatisch ausgelesen und aufbereitet.

  • Verwendet man hingegen den DbCommandSetDataProvider, weil man beispielsweise einzelne Commands (jedes Command ist dabei eine eigene Tabelle) definieren möchte, ohne die gesamte Datenbank abfragen zu müssen, so lässt sich dies über AddRelation umsetzen.

  • Alternativ ist es möglich, in .NET seinen eigenen Datenprovider zu schreiben. Dies erfolgt über das Interface IDataprovider.

Steuerung des Datenmodells

List & Label unterscheidet zwischen Feldern und Variablen, was deren Verwendung und Gültigkeit in einem Bericht beeinflusst. Details dazu finden sich auch unter Variablen, Felder und Datentypen.

Im Standard werden die Daten aus den Datenstrukturen des verwendeten Datenproviders immer als Tabellen mit Feldern definiert. Damit nun aber Kopfdaten als Variablen (Master) und die Positionsdaten als Tabelle mit Feldern (Details) verwendet werden können, benötigt das verwendete List & Label-Objekt weitere Informationen.

Welche Tabelle im angemeldeten Datenmodell ist denn nun aber die Haupttabelle (Master) und soll für die Kopfdaten/Variablen angemeldet werden? Das kann mit Hilfe der beiden Eigenschaften AutoMasterMode und DataMember (Master) gesteuert werden; die damit relational verknüpften Tabellen werden dann automatisch als Tabellen mit Feldern angemeldet:

LL.AutoMasterMode = LlAutoMasterMode.AsVariables;
LL.DataMember = "Customers";

Weitere Beispiele

Die List & Label-Installation bietet hierzu diverse Programmierbeispiele. Unter anderem zeigt das Beispiel DataBinding Sample 2 unter \Beispiele\Microsoft .NET\... die Steuerung des Datenmodells mit AutoMasterMode und DataMember.