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.
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:
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.
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.
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.
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.
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.
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.
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).
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.
Um auf Daten zugreifen zu können, die im Rahmen von OData (Open Protocol Data) bereitgestellt werden, kann der Provider ODataDataProvider verwendet werden.
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.
JSON-Objekte werden oft als Datenaustauschformat zwischen Services verwendet. Diese Daten können über den Provider JsonDataProvider auch List & Label zugänglich gemacht werden.
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.