Язык определения отчета (RDL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: Power BI построитель отчетов Power BI Desktop
Язык определения отчета (RDL) — это XML-представление определения отчета с разбивкой на страницы. Определение отчета содержит сведения о получении данных и о макете для отчета. RDL состоит из XML-элементов, которые соответствуют грамматике XML, созданной для Power BI. Вы можете добавить собственные пользовательские функции для управления значениями элементов отчета, стилями и форматированием, доступом к блокам кода в файлах определения отчета.
Применение языка определения отчетов способствует повышению уровня функциональной совместимости коммерческих продуктов формирования отчетов, поскольку позволяет определить общую схему, которая обеспечивает обмен определениями отчетов. Для работы с языком определения отчетов может использоваться любой протокол или программный интерфейс, применимый для XML. Язык определения отчетов представляет собой следующее.
- Схему XML для определений отчетов.
- Формат обмена для организаций и сторонних разработчиков.
- Расширяемую и открытую схему, поддерживающую дополнительные пространства имен и пользовательские элементы.
Спецификации RDL
Описание загрузки спецификаций для конкретных версий схемы см. в разделе Спецификация языка определения отчетов.
Определение схемы XML RDL
Файл языка определения отчета (RDL) проверяется с помощью файла определения схемы 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. Типы данных, второе издание).
Создание RDL
Язык определения отчетов характеризуется открытостью и расширяемостью, поэтому обеспечивает возможность построения целого ряда средств и приложений, позволяющих создавать код на языке определения отчетов на основе схемы XML этого языка.
Power BI построитель отчетов — это предпочтительный способ создания отчетов на основе языка RDL с разбивкой на страницы.
Одним из самых простых способов создания RDL из приложения является использование классов System.Xml Microsoft платформа .NET Framework пространства имен и System.Linq пространства имен. Особо следует отметить один из этих классов, XmlTextWriter , который может использоваться для написания кода на языке определения отчетов. С помощью XmlTextWriter можно создать полное определение отчета от начала до конца в любом приложении платформа .NET Framework. Разработчикам предоставляется также возможность расширять язык определения отчетов, добавляя пользовательские элементы отчета с пользовательскими свойствами. Дополнительные сведения о классе XmlTextWriter и System.Xml пространстве имен см. в руководстве разработчика microsoft платформа .NET Framework. Дополнительные сведения о запросах LINQ можно получить, выполнив поиск строки «LINQ to XML» на узле MSDN.
Для файлов определения отчета стандартным расширением файла является RDL. Тип MIME — text/xml.
Типы 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 | Свойство со значением текстовой строки, которое было нормализовано. |
Размер | Элемент размера должен содержать число (с символом запятой, используемым в качестве необязательного десятичного разделителя). За этим числом должен следовать указатель единицы измерения длины 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 | Строка |