Поделиться через


Язык определения отчетов (SSRS)

Язык определения отчетов (RDL) — это XML-представление определения отчета SQL Server Reporting Services (SSRS). Определение отчета содержит сведения о получении данных и о макете для отчета. RDL состоит из XML-элементов, которые соответствуют грамматике XML, созданной для служб Reporting Services. Вы можете настроить функции для управления значениями элементов отчета, стилями и форматированием, доступом к сборкам кода в файлах определения отчета.

Применение языка определения отчетов способствует повышению уровня функциональной совместимости коммерческих продуктов формирования отчетов, поскольку позволяет определить общую схему, которая обеспечивает обмен определениями отчетов. Язык определения отчетов представляет собой следующее.

  • Схему XML для определений отчетов.
  • Формат обмена для организаций и сторонних разработчиков.
  • Расширяемая и открытая схема, которая поддерживает больше пространств имен и пользовательских элементов.

Необходимые компоненты

Для работы с языком определения отчетов может использоваться любой протокол или программный интерфейс, применимый для XML.

Спецификации RDL

Описание загрузки спецификаций для конкретных версий схемы см. в разделе Спецификация языка определения отчетов.

Схема XML определения языка RDL

RDL-файл SSRS проверяется с помощью файла определения схемы XML (XSD). Схема определяет правила применения элементов языка определения отчетов в RDL-файле. Элемент включает его тип данных и кратность, что является числом допустимых вхождений. Элементы бывают простыми и составными. Простой элемент не имеет дочерних элементов или атрибутов. Сложный элемент имеет дочерние элементы и может иметь атрибуты.

Например, следующая схема включает элемент ReportParametersна языке определения отчетов, имеющий сложный тип ReportParametersType.

  • По соглашению сложный тип элемента — это имя элемента, за которым следует слово Type.
  • Элемент ReportParameters может входить в элемент Report (сложного типа) и в свою очередь содержать элементы ReportParameter .
  • ReportParameterType — это простой тип, который может принимать только одно из следующих значений: Boolean, DateTime, Integer, Floatили String.

Дополнительные сведения о типах данных схем XML см. в статье XML Schema Part 2: Datatypes Second Edition(Схема XML, часть 2. Типы данных, второе издание).

Схема XSD для языка определения отчетов доступна в файле ReportDefinition.xsd, расположенном в папке Extras на компакт-диске продукта. Он также доступен на сервере отчетов по следующему URL-адресу: https://servername/reportserver/reportdefinition.xsd

Создание RDL

Создание средств и приложений, которые создают RDL на основе схемы XML из-за открытой и расширяемой природы RDL.

Службы Reporting Services предоставляют несколько средств для создания файлов RDL. Дополнительные сведения см. в разделе Инструментальные средства служб Reporting Services.

  • Создайте RDL из приложения с помощью классов System.Xml Microsoft платформа .NET Framework пространств имен и System.Linq пространств имен.
  • Используйте XmlTextWriter для записи RDL. С помощью XmlTextWriter можно создать полное определение отчета от начала до конца в любом приложении платформа .NET Framework. Дополнительные сведения о классе XmlTextWriter и System.Xml пространстве имен см. в руководстве разработчика Microsoft платформа .NET Framework.

Разработчики могут расширить RDL, добавив настраиваемые элементы отчета с настраиваемыми свойствами. Дополнительные сведения о языковом интегрированном запросе (LINQ) выполните поиск по запросу LINQ to XML в сети разработчиков Майкрософт.

Стандартное расширение файла определения отчета — RDL. Вы можете разрабатывать файлы определения клиентских отчетов, которые имеют расширения rdlc. Типом MIME для обоих расширений является text/xml. Дополнительные сведения см. в отчетах служб Reporting Services (SSRS).

Типы RDL

Следующая таблица содержит список типов, используемых в элементах и атрибутах RDL.

Тип Описание
Binary Свойство с закодированным в base-64 двоичным значением.
Boolean Свойство объекта со значением true или false . Если иное не указано, то значением дополнительного объекта Boolean будет False.
Дата Свойство с полностью указанной датой или датой-временем в формате даты ISO8601: YYYY-MM-DD[THH:MM[:SS[.S]]].
Enum Свойство со строковым значением, которое может быть одним из списка определенных значений.
Число с плавающей запятой Свойство со значением с плавающей точкой. Точка (.) используется как необязательный десятичный разделитель.
Целое число Свойство со значением целого типа (int32).
Язык Свойство с текстовым значением, которое содержит код языка и культуры, например «en-us» для американского варианта английского языка. Значение должно быть определенным языком или нейтральным языком, для которого язык по умолчанию определен в microsoft платформа .NET Framework.
Имя Свойство со значением текстовой строки. Имена должны быть уникальны внутри пространства имен элемента. Если не указано, пространством имен для элемента считается самое внутреннее пространство имен, содержащее объект с именем.
NormalizedString Свойство с нормализованным текстовым значением строки.
Размер Элемент size должен содержать число с символом точки, используемым в качестве необязательного десятичного разделителя. Конструктор для единицы длины CSS, например cm, mm, in, pt или pc, должен соответствовать номеру. Пробел между числом и указателем является необязательным. Дополнительные сведения см. в справочнике по значениям и единицам CSS.

В RDL максимальное значение Size равно 160 дюймам. Минимальный размер — 0 дюймов.
String Свойство со значением текстовой строки.
UnsignedInt Свойство со значением целого числа без знака (uint32).
Variant Свойство со значением любого простого типа XML.

Типы данных RDL

Перечисление DataType определяет тип данных атрибута, выражения или параметра в RDL. В следующей таблице показано соответствие типов данных CLR типам данных RDL.

Типы CLR Соответствующий тип данных
Логический Логический
DateTime, DateTimeOffset Дата/время
Int16, Int32, UInt16, Byte, SByte Целое
Single, Double Тип с плавающей запятой
String, Char, GUID, Timespan Строка