共用方式為


使用報表資料集中的欄位

資料集欄位是用來提供報表項目之間的連結,例如資料表和圖表及報表資料。欄位可以是查詢所傳回之資料行的直接連結,或者可以是您所定義的導出欄位。

資料集欄位與內建欄位不同。內建欄位是 Reporting Services 所提供的一組預先定義的欄位,可在處理報表時提供報表資訊,例如報表名稱或時間戳記。如需詳細資訊,請參閱<使用運算式中的內建欄位參考 (Reporting Services)>。

若要在報表中顯示資料集欄位值,您可將它們拖曳到設計介面上的文字方塊或是資料區資料格,或是拖曳到圖表和量測軌的放置區。資料集欄位可代表數值和非數值資料,以及資料庫中其他類型的資料,例如鑽研報表、影像和訂閱者電子郵件地址的 URL。

使用欄位集合

資料集欄位是由資料集查詢以及您所定義之任何導出欄位所指定。在您建立資料集之後,如果您在 [報表資料] 窗格中展開此資料集節點,就可以檢視資料集欄位集合。每當您變更資料集的查詢時,系統就會自動重新整理資料庫欄位。

您可藉由建立運算式來手動指定導出欄位。導出欄位可用來建立不存在於資料來源上的新值。例如,導出欄位可代表新值、一組欄位值的自訂排序次序,或是轉換成另一個資料類型的現有欄位。如需詳細資訊,請參閱<如何:加入、編輯或刪除報表資料窗格中的欄位>。

將資料集欄位與報表項目連結

下列報表項目可以顯示資料集中的資料:文字方塊、資料表、矩陣、清單、圖表和量測軌。若要將欄位與報表項目連結,您可以從 [報表資料] 窗格拖曳欄位,或是使用報表項目上的欄位選取器圖示。例如,將欄位與圖表類別目錄放置區連結的最簡單方法,就是使用欄位選取器。如果要將 Tablix 與現有的資料列群組連結,您可以將欄位拖曳到 Tablix 資料列群組區域,以便加入其他巢狀欄位。當您將欄位拖曳到 Tablix 主體區域時,您可以加入新的資料行,其中包含了為此欄位所自動填入的預設值。

如需有關在設計介面上的報表項目中加入欄位的詳細資訊,請參閱<設計報表配置>中的特定報表項目類型。

如果您在資料集欄位集合中沒有看到預期的結果,請參閱<報表疑難排解:將報表匯出為特定檔案格式>。

了解預設運算式

文字方塊可以是報表主體中的文字方塊報表項目,或是 Tablix 資料區資料格中的文字方塊。當您將欄位與文字方塊連結時,文字方塊的位置會決定欄位參考的預設運算式。在報表主體中,文字方塊值運算式必須指定彙總和資料集。如果報表中只有一個資料集存在,系統會為您建立這個預設運算式。如果是代表數值的欄位,預設彙總函數為 Sum。如果是代表非數值的欄位,預設彙總函數為 First。

在 Tablix 資料區中,預設欄位運算式取決於您加入欄位之文字方塊的資料列和群組成員資格。Sales 欄位的欄位運算式 (當加入到資料表之詳細資料列中的文字方塊時) 為 [Sales]。如果您將相同的欄位加入到群組首中的文字方塊,預設運算式就是 (Sum[Sales]),因為群組首會顯示群組的摘要值,而非詳細資料值。當報表執行時,報表處理器會評估每一個運算式,並替代報表中的結果。

使用擴充欄位屬性

支援多維度查詢的資料來源 (如 SQL ServerAnalysis Services) 可支援欄位上的欄位屬性。欄位屬性會出現在查詢的結果集中,但是在 [報表資料] 窗格中則看不到。欄位屬性仍然可供您的報表使用。若要參考欄位的屬性,請將欄位拖曳到報表上,然後將預設屬性 Value 變更為您想要之屬性的欄位名稱。例如在 Analysis Services Cube 中,您可以針對 Cube 資料格中的值來定義格式。可以使用欄位屬性 FormattedValue 來取得格式化的值。若要直接使用該值,而不是使用值並設定文字方塊的格式屬性,請將欄位拖曳到文字方塊,並將預設運算式 =Fields!FieldName.Value 變更為 =Fields!FieldName.FormattedValue。

[!附註]

並非所有 Field 屬性都可用於所有資料來源。Value 和 IsMissing 屬性是為所有資料來源定義的。其他預先定義的屬性 (例如多維度資料來源的 Key、UniqueName 和 ParentUniqueName) 只有在資料來源有提供這些屬性時,才受到支援。某些資料提供者可支援自訂屬性。如需詳細資訊,請參閱<建立報表資料集>中有關適用於資料來源類型之擴充欄位屬性的特定主題。例如,如果是 SQL ServerAnalysis Services 資料來源,請參閱<使用 Analysis Services 資料集的擴充欄位屬性>。

使用欄位資料類型

當您建立資料集時,資料來源上欄位的資料類型可能不完全是報表中使用的資料類型。資料類型可能會經歷一或兩個對應層。資料處理延伸模組或資料提供者可以將資料來源中的資料類型對應到 Common Language Runtime (CLR) 資料類型。資料處理延伸模組所傳回的資料類型會從 .NET Framework 對應到 Common Language Runtime (CLR) 資料類型的子集。

了解資料集欄位集合中的資料類型

在資料來源上,資料會使用此資料來源所支援的資料類型來儲存。例如,SQL Server 資料庫中的資料必須是其中一個支援的 SQL Server 資料類型,例如 nvarchar 或 datetime。當您從此資料來源擷取資料時,資料會透過與資料來源類型相關聯的資料處理延伸模組或資料提供者來傳遞。根據資料處理延伸模組而定,資料可從資料來源使用的資料類型轉換成資料處理延伸模組所支援的資料類型。Reporting Services 會使用與 Business Intelligence Development Studio 一起安裝之 Common Language Runtime (CLR) 版本所支援的資料類型。

報表資料會透過資料提供者或資料處理延伸模組,從資料來源傳送到報表處理元件。在每一個階段,資料都是由資料類型來表示,如以下清單所述:

資料提供者會將結果集中的每一個資料行從原生資料類型對應到 Microsoft.NET Framework CLR 資料類型:

  • 資料來源:您所連接之資料來源類型版本所支援的資料類型。

    例如,適用於 SQL Server 2005 資料來源的一般資料類型包括 int、datetime 和 varchar。SQL Server 2008 所導入的資料類型已經加入 date、time、datetimetz 和 datetime2 的支援。如需詳細資訊,請參閱<資料類型 (Transact-SQL)>。

  • 資料提供者或資料處理延伸模組:當您連接到資料來源時,您所選取之資料處理延伸模組的資料提供者版本所支援的資料類型。根據 .NET Framework 的資料提供者會使用 CLR 所支援的資料類型。

    例如,.NET Framework 所支援的一般資料類型包括 Int32 和 String。DateTime 結構支援日曆上的日期和時間。.NET Framework 2.0 Service Pack 1 針對具有時區時差的日期導入了 DateTimeOffset 結構的支援。如需包含時區之日期的詳細資訊,請參閱:

    [!附註]

    報表伺服器會使用報表伺服器上所安裝及設定的資料提供者。[預覽] 模式下的報表撰寫用戶端會使用用戶端電腦上所安裝及設定的資料處理延伸模組。您必須同時在報表用戶端和報表伺服器環境下測試您的報表。

  • 報表處理器:資料類型是根據當您安裝 Reporting Services 時所安裝的 CLR 版本。SQL Server 2008Reporting Services 會安裝根據 .NET Framework 2.0 Service Pack 1 的 CLR。

    例如,SQL Server 2008 已導入報表處理器用於新日期和時間類型的日期類型,如下表所述:

    SQL 資料類型

    CLR 資料類型

    描述

    Date

    DateTime

    僅限日期

    Time

    TimeSpan

    僅限時間

    DateTimeTZ

    DateTimeOffset

    包含時區時差的日期和時間

    DateTime2

    DateTime

    包含毫秒的日期和時間

如需有關 SQL Server 資料庫類型的詳細資訊,請參閱<資料類型 (Database Engine)>和<日期和時間資料類型與函數 (Transact-SQL)>。如需有關 CLR 資料類型的詳細資訊,請參閱<使用基底型別>。

如需有關 Microsoft.NET Framework 資料提供者資料類型的詳細資訊,請參閱<資料型別對應 (ADO.NET)>。

如需詳細資訊,請參閱<在運算式中使用資料類型 (Reporting Services)>和<報表定義語言資料類型>。