Berichtsdefinitionssprache (Report Definition Language, RDL) (SSRS)
Report Definition Language (RDL) ist eine XML-Darstellung einer SSRS-Berichtsdefinition (SQL Server Reporting Services). In einer Berichtsdefinition sind Informationen zum Datenabruf und Datenlayout für einen Bericht enthalten. RDL besteht aus XML-Elementen, die der für Reporting Servicesentwickelten XML-Grammatik entsprechen. Sie können die Funktionen zum Steuern von Berichtselementwerten, -stilen und -formatierungen anpassen, indem Sie auf Code-Assemblys in Berichtsdefinitionsdateien zugreifen.
RDL fördert die Interoperabilität von kommerziellen Produkten zur Berichterstellung durch die Definition eines allgemeinen Schemas, das den Austausch von Berichtsdefinitionen ermöglicht. RDL ist:
- ein XML-Schema für Berichtsdefinitionen
- ein Austauschformat für Unternehmen und Drittanbieter
- ein erweiterbares und offenes Schema, das weitere Namespaces und benutzerdefinierte Elemente unterstützt.
Voraussetzungen
Alle Protokolle und alle programmgesteuerten Schnittstellen, die mit XML funktionieren, können mit RDL verwendet werden.
RDL-Spezifikationen
Informationen zum Herunterladen von Spezifikation für bestimmte Schemaversionen finden Sie im Thema zum Angeben der Berichtsdefinitionssprache.
RDL-XML-Schemadefinition
Eine SSRS-RDL-Datei wird mithilfe einer XSD-Datei (XML Schema Definition) überprüft. Das Schema definiert die Regeln dafür, wo RDL-Elemente in einer RDL-Datei auftreten können. Ein Element schließt seinen Datentyp und seine Kardinalität ein, also die Anzahl der erlaubten Vorkommen. Ein Element kann einfach oder komplex sein. Ein einfaches Element besitzt keine untergeordneten Elemente oder Attribute. Ein komplexes Element verfügt über untergeordnete Elemente und kann Attribute aufweisen.
Das Schema enthält beispielsweise das RDL-Element ReportParameters, das den komplexen Typ ReportParametersTypeaufweist.
- Gemäß der Konvention ist ein komplexer Typ für ein Element der Name des Elements gefolgt von dem Wort Type.
- Ein ReportParameters -Element kann im Report -Element (einem komplexen Typ) enthalten sein und selbst ReportParameter -Elemente enthalten.
- Ein ReportParameterType ist ein einfacher Typ, bei dem es sich nur um einen der folgenden Werte handeln kann: Boolean, DateTime, Integer, Floatoder String.
Weitere Informationen zu XML-Schema-Datentypen finden Sie unter XML Schema Part 2: Datatypes Second Edition.
Die RDL-XSD steht in der Datei "ReportDefinition.xsd" zur Verfügung, die sich im Ordner "Extras" auf der Produkt-CD-ROM befindet. Sie ist auch auf dem Berichtsserver über die folgende URL verfügbar: https://servername/reportserver/reportdefinition.xsd
.
RDL erstellen
Erstellen Sie Tools und Anwendungen, die RDL auf der Grundlage ihres XML-Schemas generieren, da RDL offen und erweiterbar ist.
Reporting Services bietet mehrere Tools, mit denen Sie RDL-Dateien erstellen können. Weitere Informationen finden Sie unter Reporting Services-Tools.
- Generieren Sie RDL aus einer Anwendung, indem Sie die Microsoft .NET Framework-Klassen der Namespaces System.Xml und System.Linq verwenden.
- Verwenden Sie den XmlTextWriter, um RDL zu schreiben. Mit XmlTextWriterkönnen Sie eine vollständige Berichtsdefinition in jeder .NET Framework -Anwendung von Grund auf erstellen. Weitere Informationen zur XmlTextWriter-Klasse und dem Namespace System.Xml finden Sie im Entwicklerhandbuch zu Microsoft .NET Framework.
Entwickler können RDL erweitern, indem sie benutzerdefinierte Berichtselemente mit benutzerdefinierten Eigenschaften hinzufügen. Wenn Sie weitere Informationen zu Language Integrated Query (LINQ) benötigen, suchen Sie auf Microsoft Developer Network nach „LINQ to XML“.
Die Standarddateierweiterung für eine Berichtsdefinitionsdatei ist .rdl. Sie können Clientberichtsdefinitions-Dateien mit der Erweiterung .rdlc entwickeln. Der MIME-Typ für beide Erweiterungen ist text/XML. Weitere Informationen finden Sie unter Reporting Services-Berichte (SSRS).
RDL-Typen
Die folgenden Tabelle führt die in RDL-Elementen und Attributen verwendete Typen auf.
type | Beschreibung |
---|---|
Binär (Binary) | Eine Eigenschaft mit einem Base-64-codierten Binärwert. |
Boolean | Eine Eigenschaft, die den Wert true oder false für ein Objekt annehmen kann. Sofern nichts anderes angegeben ist, hat ein nicht angegebenes, optionales Boolean-Objekt den Wert False. |
Datum | Eine Eigenschaft mit einem vollständigen date- oder datetime-Wert, der im ISO8601-Datumsformat angegeben ist: JJJJ-MM-TT[THH:MM[:SS[.S]]] |
Enum | Eine Eigenschaft mit einem Zeichenfolgen-Textwert, der einem Wert aus einer Liste mit angegebenen Werten entsprechen muss |
Float | Eine Eigenschaft mit einem Gleitkommawert. Als optionales Dezimaltrennzeichen wird ein Punkt (.) verwendet. |
Integer | Eine Eigenschaft mit einem ganzzahligen (int32) Wert |
Sprache | Eine Eigenschaft mit einem Textwert, der einen Sprach- und Kulturcode enthält, z. B. "en-us" für Englisch (USA). Der Wert muss entweder eine bestimmte Sprache oder eine neutrale Sprache angeben, für die eine Standardsprache im Microsoft .NET Framework definiert ist. |
Name | Eine Eigenschaft mit einem Zeichenfolgen-Textwert Namen müssen innerhalb des Namespaces des Elements eindeutig sein. Ist der Namespace nicht angegeben, entspricht er dem innersten enthaltenden Objekt, das über einen Namen verfügt. |
NormalizedString | Eine Eigenschaft mit einem normalisierten Zeichenfolgen-Textwert. |
Größe | Ein Größenelement muss eine Zahl mit einem Punkt als optionalem Dezimaltrennzeichen enthalten. Ein Kennzeichner für eine CSS-Längeneinheit, beispielsweise cm, mm, in, pt oder pc muss auf die Zahl folgen. Ein Leerzeichen zwischen der Zahl und dem Kennzeichner ist optional. Weitere Informationen finden Sie unter: CSS Values and Units Reference (CSS-Werte und Einheitenreferenz). In RDL beträgt der maximale Wert für Size 160 Zoll. Die minimale Größe beträgt 0 Zoll. |
String | Eine Eigenschaft mit einem Zeichenfolgen-Textwert |
UnsignedInt | Eine Eigenschaft mit einem ganzzahligen Wert (uint32) ohne Vorzeichen |
Variant | Eine Eigenschaft mit einem beliebigen einfachen XML-Typ. |
RDL-Datentypen
Die DataType-Enumeration definiert den Datentyp eines Attributs, Ausdrucks oder Parameters in RDL. Die folgende Tabelle zeigt die Zuordnung von CLR-Datentypen (Common Language Runtime) zu RDL-Datentypen.
CLR-Typ(en) | Entsprechender Datentyp |
---|---|
Boolean | Boolean |
DateTime, DateTimeOffset | Datetime |
Int16, Int32, UInt16, Byte, SByte | Integer |
Single, Double | Float |
String, Char, GUID, Timespan | String |