Що таке файл RPL?
Формат потоку RPL (макет сторінки звіту) — це внутрішній двійковий формат, який використовується MS SQL Server Reporting Services під час зв’язку з елементами керування переглядачем, щоб зменшити частину роботи з відтворення від сервера до клієнтського елемента керування переглядачем. Розробники можуть створювати користувацькі конструктори звітів за допомогою RPL, який генеруватиме RPL, а також спеціальні рендерери звітів, які обробляють і відображають файл RPL для відображення звітів.
Структури RPL
Потік RPL включає структуру потоку, структуру звіту, властивості звіту та перерахування. Кожна структура включає наступне:
Визначення структури.
Граматика доповненої форми Бекуса-Наура (ABNF) для структури.
Розрядна схема структури.
Визначення всіх полів, що містяться в структурі.
Ось короткі примітки щодо деяких структур RPL:
Структура потоку
Структура потоку складається з серії записів. Запис містить нуль або більше структурованих полів, які містять макет звіту.
Потік RPL
Потік RPL має містити лише один запис звіту, а потік має бути серією двійкових записів, які зберігають ієрархію звіту.
Запис
Запис — це основний будівельний блок, який використовується для збереження інформації про звіт. Запис складається з послідовності байтів різної довжини. Запис складається з двох компонентів:
- Тип запису
 - Дані запису, характерні для цього типу запису. Тип запису — це один байт, який визначає, який тип інформації визначено записом і як структура даних запису, що стосуються запису, впорядкована та структурована. Значення запису залежить від типу даних, які стосуються цього запису.
 
Прості структури типів даних
У наведеній нижче таблиці визначено типи даних у потоці RPL.
| Опис | формат | 
|---|---|
| Char | Представляє 16-бітне (2-байтове) числове (порядкове) значення. | 
| Байт | Представляє 8-бітне (1-байтове) ціле число без знаку. | 
| Int16 | Представляє 16-бітне (2-байтове) ціле число зі знаком. | 
| Single | Представляє 32-бітове (4-байтове) значення з плаваючою комою одинарної точності. | 
| Decimal | Представляє 128-бітний (16-байтний) тип даних. | 
| DateTime | Представляє 64-бітове (8-байтове) кодування значення дати й часу. | 
| Int64 | Представляє 64-розрядне (8-байтове) ціле число зі знаком. | 
| Int32 | Представляє 32-розрядне (4-байтове) ціле число зі знаком. | 
| Float | Представляє 32-бітове (4-байтове) значення з плаваючою комою одинарної точності. | 
| Boolean | Представляє 8-бітове (1-байтове) логічне значення булевого типу. Дійсні значення: true (1) і false (0). | 
| Long | Представляє 64-бітове (8-байтове) ціле число зі знаком. | 
| Рядок | Усі рядкові значення в протоколі ПОВИННІ бути UNICODE UTF-16. За замовчуванням усі значення String починаються з цілого числа, яке визначає довжину String. Рядкові значення представлені в протоколі у вигляді масиву байтів; кількість байтів ПОВИННА дорівнювати кількості символів у рядку, помноженій на два. | 
Структури звітів
Структури звіту містять визначення та розміри відповідних структур і елементів.
Наступний список визначає структури звіту:
- Доповідь
 - Версія
 - Властивості звіту
 - Зсув елемента масиву
 - Вміст сторінки
 - Сторінка
 - Властивості сторінки
 - Макет сторінки
 - Розділ
 - Простий розділ
 - Змішаний розділ
 - Властивості розділу
 - Елемент області тіла
 - Елемент заголовка сторінки
 - Елемент нижнього колонтитула сторінки
 - Елемент тіла
 - Властивості елемента
 - Спільні властивості елемента
 - Використовуйте властивості спільного елемента
 - InlineSharedElementProperties
 - NonSharedElementProperties
 - Стиль
 - SharedStyleProperties
 - NonSharedStyleProperties
 - ActionInfo
 - ActionInfoContent
 - Дія
 - ActionImageMapAreas
 - ActionInfoWithMaps
 - DynamicImageData
 - ImageConsolidationOffsets
 - Елемент звіту
 - Лінія
 - Імідж
 - ImageDataProperties
 - UseSharedImageDataProperties
 - InlineSharedImageDataProperties
 - NonSharedImageDataProperties
 - Дані зображення
 - ImageMapAreas
 - ImageMapArea
 - Діаграма
 - GaugePanel
 - Карта
 - Прямокутник
 - Підзвіт
 - RichTextBox
 - Вміст абзацу
 - TextRun
 - Абзац
 - RichTextBoxStructure
 - Таблікс
 - TablixContent
 - TablixStructure
 - TablixMeasurements
 - ColumnsWidths
 - Інформація про стовпець
 - Висота рядків
 - RowInfo
 - TablixRow
 - TablixRowCell
 - TablixCorner
 - TablixColumnHeader
 - TablixRowHeader
 - TablixBodyRowCells
 - TablixBodyRow
 - TablixBodyCell
 - TablixRowMembersDef
 - TablixColMembersDef
 - TablixMemberDef
 - Вимірювання
 - Вимірювання
 - ReportElementEnd
 
Властивості
Нижче наведено список властивостей, які можна використовувати в потоці RPL:
- ID
 - Підрахунок стовпців
 - Інтервал між стовпцями
 - Унікальне ім’я
 - Ім’я
 - Етикетка
 - Закладка
 - Підказка
 - ToggleItem
 - Опис
 - Місцезнаходження
 - ConsumeContainerWhiteSpace (RPL 10.6)
 - Мову
 - Час виконання – Автор
 - Автооновлення
 - Назва звіту
 - Висота сторінки
 - PageWidth
 - MarginTop
 - MarginLeft
 - MarginRight
 - MarginBottom
 - Стовпці
 - Назва сторінки (RPL 10.6)
 - Коса
 - Може рости
 - CanShrink
 - Значення
 - ToggleState
 - CanSort
 - SortState
 - Формула
 - IsToggleParent
 - TypeCode
 - Оригінальне значення
 - Це просто
 - ContentOffset
 - Назва потоку
 - Розміри
 - LinkToChild
 - PrintOnFirstPage
 - PrintBetweenSections (RPL 10.4)
 - FormattedValueExpressionBased
 - ProcessedWithError
 - ImageMIMEType
 - Назва зображення
 - Ширина
 - Висота
 - Горизонтальна роздільна здатність
 - Вертикальна роздільна здатність
 - RawFormat
 - Гіперпосилання
 - Посилання на закладку
 - DrillthroughId
 - DrillthroughUrl
 - BorderColor
 - BorderColorLeft
 - BorderColorRight
 - BorderColorTop
 - BorderColorBottom
 - BorderStyle
 - BorderStyleLeft
 - BorderStyleRight
 - BorderStyleTop
 - BorderStyleBottom
 - BorderWidth
 - BorderWidthLeft
 - BorderWidthRight
 - BorderWidthTop
 - BorderWidthBottom
 - PaddingLeft
 - PaddingRight
 - PaddingTop
 - PaddingBottom
 - Стиль шрифту
 - FontFamily
 - Розмір шрифту
 - FontWeight
 - Формат
 - TextDecoration
 - Вирівнювання тексту
 - Вертикальне вирівнювання
 - Колір
 - Висота лінії
 - Напрямок
 - Режим письма
 - UnicodeBiDi
 - Фонове зображення
 - Колір фону
 - Фонове повторення
 - Числівна мова
 - NumeralVariant
 - Календар
 - Рядки заголовків стовпців
 - Заголовок рядка Стовпці
 - ColsBeforeRowHeader
 - LayoutDirection
 - Шлях визначення
 - Рівень
 - MemberCellIndex
 - CellItemOffset
 - ColSpan
 - RowSpan
 - DefIndex
 - Індекс стовпця
 - RowIndex
 - Мітка групи
 - RecursiveToggleLevel
 - ListStyle
 - ListLevel
 - Номер абзацу
 - Відступ справа
 - Відступ зліва
 - Висячий відступ
 - SpaceBefore
 - SpaceAfter
 - Перша лінія
 - Розмітка
 - ContentTop
 - ContentLeft
 - ContentWidth
 - ContentHeight
 - Держава
 - CellItemState
 - MemberDefState
 
Перерахування
У наведеному нижче списку показано перерахування, які можна використовувати в потоці RPL:
- Параметри сортування
 - Розміри
 - ShapeType
 - ImageRawFormat
 - Стилі шрифтів
 - Вага шрифту
 - TextDecorations
 - Вирівнювання тексту
 - Вертикальні вирівнювання
 - Напрямки
 - Режими написання
 - UnicodeBiDiTypes
 - Календарі
 - Стилі меж
 - BackgroundRepeatTypes
 - ListStyles
 - Стилі розмітки
 - TypeCode
 - StateValues
 - TablixMemberStateValues
 - TablixMemberDefStateValues
 - Розмір RPLS