combit List & Label 30 - .NET Hilfe
Einführung in die Programmierung / Weitere wichtige Konzepte / Datenprovider
Datenprovider

Die Datenversorgung in List & Label erfolgt über Datenprovider. Dies sind Klassen, die das Interface IDataProvider aus dem Namespace combit.Reporting.DataProviders implementieren. In diesem Namespace sind bereits eine Vielzahl von Klassen enthalten, die als Datenprovider fungieren können.

Für augenscheinlich nicht direkt unterstützte Dateninhalte findet sich meist trotzdem ein passender Provider. Businessdaten aus Anwendungen können in der Regel über die Klasse ObjectDataProvider übergeben werden, liegen die Daten in kommaseparierter Form vor kann der CsvDataProvider verwendet werden. Viele andere Datenquellen unterstützen die Serialisierung nach XML, so dass dann der XmlDataProvider verwendet werden kann. Wenn nur einige wenige zusätzliche Informationen übergeben werden sollen, so ist auch dies direkt möglich. Ein Beispiel in Zusätzliche Inhalte übergeben zeigt dies.

Die folgende Übersicht listet die wichtigsten Klassen und die von Ihnen unterstützten Datenquellen auf.

 

Allgemeine Provider

AdoDataProvider

Für den Zugriff auf standardisierte ADO.NET Objekte steht die Klasse AdoDataProvider zur Verfügung und ermöglicht den Zugriff auf Daten der folgenden Elemente:

ListLabel LL = new ListLabel();

AdoDataProvider provider = new AdoDataProvider(CreateDataSet());
LL.DataSource = provider;

LL.Print();

LL.Dispose();

 

DataProviderCollection

Ermöglicht die Kombination mehrerer anderer Datenprovider in einer Datenquelle. Der Provider DataProviderCollection kann zum Beispiel Daten aus mehreren DataSet-Klassen kombinieren oder unterstützt sogar die Mischung aus XML und eigenen Objektdaten. Zusätzlich ist es auch möglich die unterschiedlichen hinzugefügten Datenprovider mit Hilfe von AddCrossProviderRelation in Relation zu bringen.

 

DataSource

Dieser Datenprovider nimmt eine Sonderstellung ein, da er als Komponente direkt aus der Visual Studio Toolbox eingefügt werden kann. Die DataSource-Komponente verfügt über einige wenige Eigenschaften, die auch über die SmartTags zur Verfügung stehen. Die wichtigste Eigenschaft ist ConnectionProperties. Über den dahinterliegenden Editor kann direkt aus der Entwicklungsumgebung eine Verbindungszeichenfolge (Connection String) erstellt werden, die den Zugriff auf folgende Datenquellen ermöglicht:

Einmal konfiguriert steht die Datenquelle im Auswahlfenster für die DataSource der ListLabel-Komponente zur Verfügung und kann so direkt zugewiesen werden. Über den Link "Berichtsdesigner öffnen..." in den SmartTags der ListLabel-Komponente kann auch der Designer direkt aus der Entwicklungsumgebung geöffnet werden, so dass keine einzige Codezeile mehr notwendig ist, um auf Daten einer DataSource zuzugreifen.

 

ObjectDataProvider

Damit ist es einfach möglich direkt auf Daten/Objekte aus dem Business-Layer der Anwendung zuzugreifen und diese List & Label als Datenquelle bereitzustellen. Welche Typen von Objekten und ein einfaches Beispiel können Sie der Klasse ObjectDataProvider im Detail entnehmen.

 

XmlDataProvider

Ermöglicht den einfachen Zugriff auf XML-Daten. Es werden keine Schemainformationen aus XML-/XSD-Dateien verwendet und keine Constraints/Randbedingungen behandelt. Der Haupteinsatzzweck dieser Klasse ist der schnelle und einfache Zugriff auf verschachtelte XML-Daten.

ListLabel LL = new ListLabel();

XmlDataProvider provider = new XmlDataProvider(@"c:\users\public\data.xml");
LL.DataSource = provider;

LL.Design();
LL.Dispose();

 

Provider für Datenbanken

DbCommandSetDataProvider

Erlaubt es, mehrere IDbCommand Implementierungen in einer Datenquelle zu kombinieren. Der Provider DbCommandSetDataProvider kann z.B. dazu verwendet werden, um auf mehrere SQL-Tabellen zuzugreifen (siehe AddCommand) und Relationen zwischen diesen zu definieren (siehe AddRelation). Eine andere Möglichkeit ist es Daten aus bspw. Microsoft SQL- und Oracle-Datenbanken in einer Datenquelle zu kombinieren.

 

OleDbConnectionDataProvider

Der .NET Namespace System.Data stellt die Klasse OleDbConnection zur Verfügung, um bspw. auf Microsoft Access Datenbankdateien zugreifen zu können. Der Provider OleDbConnectionDataProvider kann sich direkt damit verbinden und die Daten List & Label zur Verfügung zu stellen.

OracleConnectionDataProvider

Der Datenprovider OracleConnectionDataProvider kann verwendet werden, um Daten aus einer Oracle Datenbank zu verwenden und nutzt dabei den ADO.NET Treiber Oracle.ManagedDataAccess.Client (nicht im Lieferumfang enthalten).

 

SqlConnectionDataProvider

Der .NET Namespace System.DataSqlClient stellt die Klasse SqlConnection zur Verfügung, um direkt auf Microsoft SQL Server Datenbanken zugreifen zu können. Der Provider SqlConnectionDataProvider kann sich direkt damit verbinden und die Daten List & Label zur Verfügung zu stellen. Über die Eigenschaft SupportedElementTypes können die Daten für List & Label zur weiteren Eingrenzung bspw. nur Tabellen und/oder auch die Sichten/Views beschränkt werden.

Sollten jedoch individuelle SQL-Anweisungen als Datenquelle benötigt werden, so steht hierzu der Provider DbCommandSetDataProvider zur Verfügung.

 

Provider für Web Schnittstellen

ODATADataProvider

Um auf Daten zugreifen zu können, die im Rahmen von OData (Open Protocol Data) bereitgestellt werden, kann der Provider ODataDataProvider verwendet werden.

 

RestDataProvider

Die Daten, die von einer REST-Abfrage zurückliefert werden, können mit dem Provider RestDataProvider so verwendet werden, dass diese List & Label als Datenquelle verwenden kann.

 

JsonDataProvider

JSON-Objekte werden oft als Datenaustauschformat zwischen Services verwendet. Diese Daten können über den Provider JsonDataProvider auch List & Label zugänglich gemacht werden.

 

Weitere Datenprovider

Die oben aufgeführten Datenprovider entsprechen nur einer kleinen Auswahl an bereits verfügbaren Datenprovider. Im Namespace combit.Reporting.DataProviders können alle weiteren Datenprovider eingesehen werden. Darüber hinaus haben Sie auch die Möglichkeit über die Schnittstelle IDataProvider einen Datenprovider für die eigene maßgeschneiderte Datenquelle zu schreiben.