分享方式:


報表定義語言 (SSRS)

報表定義語言 (RDL) 是 SQL Server Reporting Services (SSRS) 報表定義的 XML 表示法。 報表定義包含報表的資料擷取和配置資訊。 RDL 是由 XML 元素所組成,而這些元素會符合針對 Reporting Services 所建立的 XML 文法。 您可以自訂函數,藉由存取報表定義檔案中的程式碼組件以控制報表項目值、樣式和格式。

RDL 會藉由定義可啟用報表定義交換的常用結構描述來提升商業報表產品的互通性。 RDL 是:

  • 報表定義的 XML 結構描述。
  • 企業與協力廠商的交換格式。
  • 可支援其他命名空間和自訂元素的可延伸與開放結構描述。

必要條件

適用於 XML 的任何通訊協定或程式設計介面都可以搭配 RDL 使用。

RDL 規格

若要下載特定結構描述版本的規格,請參閱 Report Definition Language Specification(報表定義語言規格)。

RDL XML 結構描述定義

SSRS RDL 檔案的驗證是使用 XML 結構描述定義 (XSD) 檔案進行。 結構描述定義 RDL 元素可在 .rdl 檔案中何處發生的規則。 元素包括其資料類型和基數,也就是所允許的發生數目。 元素可能很簡單或很複雜。 簡單的元素沒有子元素或屬性。 複雜元素具有子元素,而且可以具有屬性。

例如,此結構描述包含 RDL 元素 ReportParameters,這是複雜類型 ReportParametersType

  • 依照慣例,元素的複雜類型是在元素名稱後面加上 Type 這個字。
  • ReportParameters 元素可由 報表 元素 (複雜類型) 所包含,而且可以包含 ReportParameter 元素。
  • ReportParameterType 是簡單類型,而且只能是下列值之一︰ BooleanDateTimeIntegerFloatString

如需 XML 結構描述資料類型的詳細資訊,請參閱 XML Schema Part 2: Datatypes Second Edition(XML 結構描述第 2 部分:資料類型第二版)。

RDL XSD 是在 ReportDefinition.xsd 檔案中提供的,這個檔案位於產品 CD-ROM 的 Extras 資料夾中, 也能透過下列 URL 在報表伺服器取得:https://servername/reportserver/reportdefinition.xsd

建立 RDL

RDL 具有開放和可延伸的特質,因此可以建立各種工具和應用程式,根據其 XML 結構描述產生 RDL。

Reporting Services 會提供多個工具來建置 RDL 檔案。 如需詳細資訊,請參閱 Reporting Services 工具

  • 從應用程式產生 RDL 的方法,就是使用 System.XmlSystem.Linq 命名空間的 Microsoft .NET Framework 類別。
  • 使用 XmlTextWriter 寫入 RDL。 有了 XmlTextWriter,您便可以在任何 .NET Framework 應用程式中從頭到尾產生完整的報表定義。 如需有關 XmlTextWriter 類別和 System.Xml 命名空間的詳細資訊,請參閱《Microsoft .NET Framework 開發人員指南》。

開發人員可以擴充 RDL,其方式是新增具有自訂內容的自訂報表項目。 如需有關 Language-Integrated Query (LINQ) 的詳細資訊,請在 Microsoft Developer Network 上搜尋 "LINQ to XML"。

報表定義檔案的標準副檔名是 .rdl。 您也可以開發用戶端報表定義檔案,其副檔名為 .rdlc。 這兩種副檔名的 MIME 類型為 text/xml。 如需詳細資訊,請參閱<Reporting Services 報表 (SSRS)>。

RDL 類型

下表列出用於 RDL 元素及屬性的類型。

類型 Description
二進位 具有 Base-64 編碼二進位值的屬性。
布林值 具有 truefalse 物件值的屬性。 除非另有指定,否則省略的選擇性布林物件值為 False
日期 具有 ISO8601 日期格式所指定之完整指定日期或日期時間值的屬性:YYYY-MM-DD[THH:MM[:SS[.S]]]。
列舉 具有字串文字值的屬性,此文字值必須是指定值清單中的一個值。
Float 具有浮點值的屬性。 使用句點 (.) 當做選擇性小數分隔符號。
整數 具有整數 (int32) 值的屬性。
語言 具有文字值的屬性,此文字值包含語言與文化特性代碼,例如「en-us」代表英文 (美國)。 該值必須是特定語言,或是在 Microsoft .NET Framework 中為其定義了預設語言的中性語言。
名稱 具有字串文字值的屬性。 名稱在項目的命名空間中必須是唯一的。 如果未指定,項目的命名空間會是具有名稱的最內層包含物件。
NormalizedString 具有正規化之字串文字值的屬性。
大小 大小元素必須包含一個數字 (含有一個句號字元,當做選擇性小數分隔符號使用)。 這個數字必須緊接著 CSS 長度單位的指示項,例如 cm、mm、in、pt 或 pc。 數字與指示項之間的空格是選擇性的。 如需詳細資訊,請參閱<CSS 值與單位參考>(英文)。

在 RDL 中, Size 的最大值是 160 英吋。 大小下限是 0 英吋。
String 具有字串文字值的屬性。
UnsignedInt 具有不帶正負號之整數 (uint32) 值的屬性。
變數 具有任何簡單 XML 類型的屬性。

RDL 資料類型

DataType 列舉會定義 RDL 中屬性、運算式或參數的資料類型。 下表列出說明 Common Language Runtime (CLR) 資料類型對應到 RDL 資料類型的方式。

CLR 類型 對應的資料類型
Boolean Boolean
DateTime、DateTimeOffset Datetime
Int16、Int32、UInt16、Byte、SByte 整數
Single、Double Float
String、Char、GUID、Timespan 字串