報表定義語言 (SSRS)

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

RDL 會藉由定義可啟用報表定義交換的常用結構描述來提升商業報表產品的互通性。 適用於 XML 的任何通訊協定或程式設計介面都可以搭配 RDL 使用。 RDL 是:

  • 報表定義的 XML 結構描述。

  • 企業與協力廠商的交換格式。

  • 可支援其他命名空間和自訂元素的可延伸與開放結構描述。

RDL 規格

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

RDL XML 結構描述定義

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

例如,此結構描述包含 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.Xml 命名空間及 System.Linq 命名空間的 Microsoft .NET Framework 類別。 尤其是有一個類別 (亦即 XmlTextWriter 類別) 可用來撰寫 RDL。 有了 XmlTextWriter,您便可以在任何 .NET Framework 應用程式中從頭到尾產生完整的報表定義。 開發人員也可以擴充 RDL,其方式是加入具有自訂屬性的自訂報表項目。 如需 XmlTextWriter 類別和 System.Xml 命名空間的詳細資訊,請參閱《Microsoft .NET Framework 開發人員指南》。 如需有關 Language-Integrated Query (LINQ) 的詳細資訊,請在 MSDN 上搜尋 "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 字串

另請參閱

尋找報表定義結構描述版本 (SSRS)
將自訂組件與報表搭配使用
自訂報表項目