報表定義語言 (RDL) 是 SQL Server Reporting Services 報表定義的 XML 表示法。 報表定義包含報表的數據擷取和配置資訊。 RDL 是由符合針對 Reporting Services 建立之 XML 文法的 XML 元素所組成。 您可以藉由存取報表定義檔案內的程式碼元件,來新增自己的自定義函式,以控制報表專案值、樣式和格式。
RDL 藉由定義可交換報表定義的通用架構,來提升商業報表產品的互作性。 任何搭配 XML 使用的通訊協定或程式設計介面都可以與 RDL 搭配使用。 RDL 為:
報表定義的 XML 架構。
適用於企業和第三方的交換格式。
可延伸和開放的架構,可支援其他命名空間和自訂元素。
RDL 規格
若要下載特定架構版本的規格,請參閱 報表定義語言規格。
RDL XML 架構定義
SQL Server Reporting Services 報表定義語言 (RDL) 檔案是使用 XML 架構定義 (XSD) 檔案進行驗證。 架構會定義 .rdl 檔案中可發生 RDL 元素之位置的規則。 元素包含其數據類型和基數,也就是允許的發生次數。 元素可以是簡單或複雜的。 簡單元素沒有子元素或屬性。 複雜元素確實具有子系和選擇性屬性。
例如,架構包含 RDL 元素 ReportParameters,這是複雜型別 ReportParametersType。 依照慣例,元素的複雜類型是元素的名稱,後面接著一個字 Type。
ReportParameters元素可以被Report元素(複雜類型)包含,並且可以包含ReportParameter元素。
ReportParameterType是一種簡單型別,只能是下列其中一個值:Boolean、DateTime、Integer、 Float或 String。 如需 XML 架構數據類型的詳細資訊,請參閱 XML 架構第 2 部分:數據類型第二版。
RDL XSD 位於產品 CD-ROM 的 Extras 資料夾中的 ReportDefinition.xsd 檔案中。 您也可以透過下列 URL 在報表伺服器上使用: https://servername/reportserver/reportdefinition.xsd.
建立 RDL
由於 RDL 的開放且可延伸本質,因此可以建置各種工具和應用程式,以根據其 XML 架構產生 RDL。
Reporting Services 提供多個工具來建置 RDL 檔案。 如需詳細資訊,請參閱 Reporting Services 工具。
從應用程式產生 RDL 的最簡單方法之一,是使用 Microsoft .NET Framework 的 System.Xml 命名空間和 System.Linq 命名空間的類別。 其中有一個類別叫做 XmlTextWriter 的類別,特別可以用來撰寫 RDL。 使用 XmlTextWriter,您可以在任何 .NET Framework 應用程式中,從頭到尾產生完整的報表定義。 開發人員也可以新增具有自定義屬性的自定義報表項目來擴充 RDL。 如需 XmlTextWriter 類別和 System.Xml 命名空間的詳細資訊,請參閱Microsoft .NET Framework 開發人員指南。 如需 Language-Integrated 查詢 (LINQ) 的詳細資訊,請在 MSDN 上搜尋 “LINQ to XML”。
報表定義檔案的標準擴展名為 .rdl。 您也可以開發具有 .rdlc 擴展名的用戶端報表定義檔案。 這兩個延伸模組的MIME類型都是 text/xml。 如需報表的詳細資訊,請參閱 Reporting Services 報表 (SSRS) 。
RDL 類型
下表列出 RDL 元素和屬性中使用的類型。
| 類型 | 說明 |
|---|---|
Binary |
具有Base-64編碼的二進位值屬性。 |
Boolean |
具有 true 或 false 做為 物件值的屬性。 除非另有指定,否則省略的選擇性布爾物件 False值為 。 |
Date |
具有以ISO8601日期格式指定之完整日期或日期時間值的屬性:YYYY-MM-DD[THH:MM[:SS[。S]]]. |
Enum |
具有字串文字值的屬性,其值必須是指定清單中的其中一個。 |
Float |
擁有浮點數值的屬性。 句點 (.) 會當做選擇性的小數分隔符使用。 |
Integer |
具有整數 (int32) 值的屬性。 |
Language |
包含語言和文化特性代碼之文字值的屬性,例如美式英文的 「en-us」。。 此值必須是特定語言或中性語言,而默認語言定義於 Microsoft .NET Framework 中。 |
Name |
具有字串文字值的屬性。 名稱在專案的命名空間內必須是唯一的。 如果未指定,則專案的命名空間是包含名稱的最內層物件。 |
NormalizedString |
具有已正規化字串文字值的屬性。 |
Size |
size 元素必須包含數字(可以選擇用句點作為小數分隔符號)。 數字後面必須接著 CSS 長度單位的指示項,例如 cm、mm、in、pt 或 pc。 數位與指示項之間的空格是選擇性的。 如需大小指定項的詳細資訊,請參閱 CSS 長度單位參考。 在 RDL 中,的最大值 Size 為 160 in。 大小下限為0英分。 |
String |
具有字串文字值的屬性。 |
UnsignedInt |
具有無符號整數值的屬性(uint32)。 |
Variant |
具有任何簡單 XML 類型的屬性。 |
RDL 資料類型
DataType 列舉會定義 RDL 中屬性、運算式或參數的數據類型。 下表顯示 Common Language Runtime (CLR) 數據類型如何對應至 RDL 資料類型。
| CLR 類型 | 對應的數據類型 |
|---|---|
| 布爾邏輯 | 布爾邏輯 |
| DateTime、DateTimeOffset | 日期時間 |
| Int16、Int32、UInt16、Byte、SByte | 整數 |
| 單人、雙人 | 浮動 |
| String、Char、GUID、Timespan | 繩子 |