數據集欄位代表來自數據連接的數據。 欄位可以代表數值或非數值數據。 範例包括銷售金額、總銷售額、客戶名稱、資料庫標識碼、URL、影像、空間數據和電子郵件位址。 在設計介面上,欄位會顯示為報表專案中的表達式,例如文字框、數據表和圖表。
報表有三種類型的欄位,並顯示在 [報表數據] 窗格中:數據集欄位、數據集匯出欄位和內建字段。
數據集欄位。 元數據,表示數據集查詢在數據源上執行時所傳回的欄位集合。
數據集計算欄位。 您為資料集建立的其他欄位。 每個計算欄位都是藉由評估您定義的運算式來創建。
內建欄位。 元數據,表示報表產生器所提供的欄位集合,提供報表資訊,例如報表名稱或處理報表的時程。 如需詳細資訊,請參閱內建的全域和使用者參考 (報表產生器和 SSRS)。
數據集域名會儲存為報表數據集定義的一部分。 如需詳細資訊,請參閱報表內嵌數據集和共用數據集(報表產生器及 SSRS)。
備註
您可以在報表產生器及 SQL Server Data Tools 的報表設計師中建立和修改報表定義 (.rdl)。 每個撰寫環境提供不同的方式來建立、開啟及儲存報表和相關專案。 如需詳細資訊,請至 microsoft.com 網站上查看 報表設計師和報表產生器 (SSRS) 的報表設計。
數據集欄位和查詢
數據集欄位是由資料集查詢命令和您定義的任何計算欄位所指定。 您在報表中看到的欄位集合取決於您擁有的資料集型態:
共用數據集。 欄位集合是在您直接將共用資料集新增至報表時,或在加入包含共用資料集的報表元件時,於共用數據集定義中查詢的欄位清單。 當報表伺服器上的共享數據集定義變更時,本機字段集合不會變更。 若要更新本機欄位集合,您必須重新整理本機共用數據集的清單。
內嵌數據集。 欄位集合是針對數據源執行目前查詢所傳回的欄位清單。
如需詳細資訊,請參閱 在報表數據窗格中新增、編輯、重新整理欄位(報表產生器及 SSRS)
計算欄位
您可以透過建立表達式來手動指定計算欄位。 匯出欄位可用來建立數據源上不存在的新值。 例如,匯出欄位可以代表新值、一組域值的自定義排序順序,或轉換成不同數據類型的現有欄位。
計算欄位是報表的本機欄位,無法儲存為共用資料集的一部分。
如需詳細資訊,請參閱在報表數據窗格中新增、編輯、重新整理欄位(報表產生器及 SSRS)。
實體和實體欄位
如果您使用報表模型數據源,請將實體和實體欄位指定為報表數據。 在報表模型的查詢設計工具中,您可以互動方式探索並選取相關的實體,然後選擇您想要包含在報表數據集中的欄位。 完成查詢設計之後,您可以在 [報表數據] 窗格中看到實體標識符和實體字段的集合。 實體標識碼是由報表模型自動產生,而且通常不會對終端用戶顯示。
使用擴充欄位屬性
支援多維度查詢的數據源,例如 SQL Server Analysis Services,支援字段上的欄位屬性。 欄位屬性會出現在查詢的結果集中,但在 [ 報表數據 ] 窗格中看不到。 它們仍可在報表中使用。 若要參照欄位的屬性,請將欄位拖曳至報表,並將預設屬性 Value 變更為您想使用的屬性名稱。 例如,在 Analysis Services Cube 中,您可以定義 Cube 數據格中值的格式。 使用 field 屬性 FormattedValue即可取得格式化值。 若要直接使用值,而不是使用值並設定文字框的格式屬性,請將欄位拖曳至文字框,並將預設表示式 =Fields!FieldName.Value 變更為 =Fields!FieldName.FormattedValue。
備註
Field並非所有屬性都可用於所有數據源。
Value和 IsMissing 屬性是針對所有數據源所定義。 只有在數據源提供這些屬性時,才支援其他預先定義的屬性,例如 Key、 UniqueName和 ParentUniqueName 多維度數據源。 某些數據提供者支援自定義屬性。 如需更多資訊,請參閱報表產生器及 SSRS 中有關您的數據來源類型的擴充欄位屬性的特定主題:報表內嵌數據集和共用數據集。 例如,針對 SQL ServerAnalysis Services 數據源,請參閱 Analysis Services 資料庫的擴充字段屬性(SSRS)。
瞭解欄位的預設表達式
文字框可以是報表主體中的文字框,或是 Tablix 數據區儲存格中的文字框。 當您連結欄位與文字框時,文字框的位置會決定欄位參考的預設表達式。 在報表主體中,文本框值表達式必須指定匯總和數據集。 如果報表中只有一個數據集存在,就會為您建立這個預設表達式。 對於代表數值的欄位,預設聚合函數為 Sum。 對於代表非數值的欄位,預設匯總為 First。
在 Tablix 數據區域中,預設欄位表示式取決於您新增欄位之文字框的數據列和群組成員資格。 當新增至資料表詳細資料列的文字框時,欄位 Sales 的欄位表示式為 [Sales]。 如果您將相同的欄位新增至群組標頭中的文字框,則預設表示式為 (Sum[Sales]),因為群組標頭會顯示群組的摘要值,而不是詳細數據值。 當報表執行時,報表處理器會評估每個表達式,並取代報表中的結果。
如需表達式的詳細資訊,請參閱表達式(報表產生器及 SSRS)。
欄位數據類型
當您建立數據集時,數據源上字段的數據類型可能不是報表中使用的數據類型。 數據類型可能經過一或兩個映射層。 數據處理延伸模組或數據提供者可能會將數據源的數據類型對應至 Common Language Runtime (CLR) 資料類型。 數據處理延伸模組傳回的數據類型會對應至 .NET Framework 中 Common Language Runtime (CLR) 數據類型的子集。
在數據源上,數據會儲存在數據源支持的數據類型中。 例如,SQL Server 資料庫中的數據必須是 其中一種支援的 SQL Server 數據類型,例如 nvarchar 或 datetime。 當您從數據源擷取數據時,數據會通過與數據源類型相關聯的數據處理延伸模組或數據提供者。 視數據處理延伸模組而定,數據可能會從數據源所使用的數據類型轉換成數據處理延伸模組支援的數據類型。 Reporting Services 會使用與 SQL Server Data Tools (SSDT) 一起安裝的 Common Language Runtime (CLR) 所支持的數據類型。 數據提供者會將結果集中的每個數據行從原生數據類型對應至 .NET Framework Common Language Runtime (CLR) 數據類型。
在每個階段,數據會以數據類型表示,如下列清單所述:
數據源 您所連接之資料來源類型的版本所支援的數據類型。
例如,SQL Server 資料來源的一般資料類型包括
int、datetime和varchar。 SQL Server 2008 引進的數據類型新增了 、datetime、datetimetz和datetime2的支援。 如需詳細資訊,請參閱 資料類型 (Transact-SQL)。數據提供者或數據處理延伸模組 當您連接到數據源時,所選取資料處理延伸模組的數據提供者版本所支援的數據類型。 以 .NET Framework 為基礎的數據提供者會使用CLR支援的數據類型。 如需 .NET Framework 數據提供者數據類型的詳細資訊,請參閱 MSDN 上的 數據類型對應(ADO.NET) 和使用 基底類型 。
例如,.NET Framework 支援的一般資料類型包括
Int32和String。DateTime結構支援行事曆的日期和時間。 .NET Framework 2.0 Service Pack 1 引進了對DateTimeOffset結構的支援,以處理具有時區位移的日期。備註
報表伺服器會使用在報表伺服器上安裝及設定的數據提供者。 處於預覽模式的報表撰寫用戶端會使用用戶端電腦上已安裝和設定的數據處理延伸模組。 您必須在報表用戶端和報表伺服器環境中測試報表。
報表處理器 數據類型是以安裝 Reporting Services 時安裝的 CLR 版本為基礎。
例如,報表處理器針對 SQL Server 2008 中引進的新日期和時間類型所使用的數據類型如下表所示:
SQL 數據類型 CLR 數據類型 說明 DateDateTime只有日期 TimeTimeSpan僅限時間 DateTimeTZDateTimeOffset具有時區位移的日期和時間 DateTime2DateTime可顯示小數毫秒的日期和時間
如需 SQL Server 資料庫類型的詳細資訊,請參閱數據類型(Database Engine)和日期和時間數據類型和函式(Transact-SQL)。
如需有關在運算式中引用資料集欄位的更多資訊,請參閱運算式中的資料型別(報表產生器和 SSRS)。
在運行時間偵測遺漏欄位
處理報表時,數據集的結果集可能不會包含指定之所有數據行的值,因為數據源上不再存在數據行。 您可以使用屬性 IsMissing 來偵測欄位的值是否在執行期間傳回。 如需詳細資訊,請參閱數據集欄位集合參考(報表產生器及 SSRS)。
另請參閱
資料集屬性對話框、欄位(報表產生器)
報表產生器中的報表元件和數據集
報表內嵌資料集和共用資料集 (報表產生器及 SSRS)