建立與加入資料集 (報表產生器 3.0 和 SSRS)

資料集會從資料連接指定您要使用的資料。資料集是以報表中儲存為內嵌資料來源或報表伺服器上共用資料來源參考的資料連接為基礎。資料集包含指定一組欄位的查詢。當您將這些欄位拖曳至設計介面時,您可以建立報表執行時評估為實際資料的運算式。

資料集有以下兩種不同的類型:

  • 共用資料集:共用資料集是在報表伺服器上定義的。您可以瀏覽到伺服器以建立共用資料集,或選取要加入至報表中的預先定義資料集。

  • 內嵌資料集:內嵌資料集是在內嵌的報表中定義,而且只能由內嵌的報表使用。

資料集也包含參數、篩選和資料選項,這些選項會指定字元特性,例如大小寫、假名類型、寬度、腔調字及定序資訊。

從外部資料來源建立資料集

  1. 報表資料窗格中的資料集:在您建立內嵌資料集或加入共用資料集之後,[報表資料] 窗格中就會出現資料集。資料集是以資料來源為基礎。

  2. 查詢設計工具:當您設計資料集查詢時,與資料來源類型相關聯的查詢設計工具便會開啟。

  3. 查詢命令:查詢設計工具可幫助您建立查詢命令。命令語法是由資料提供者決定。

  4. 資料延伸模組/資料提供者:資料可經由多個資料存取層連接。

  5. 外部資料來源:從關聯式資料庫、多維資料庫、SharePoint 清單、Web 服務或報表模型擷取資料。

  6. 查詢結果:您可以執行查詢並查看範例結果集。您必須擁有設計階段認證,才能執行查詢。

  7. 來自結構描述的中繼資料:資料提供者會將結構描述查詢命令與查詢分開執行,以擷取資料集欄位集合的中繼資料。例如,Transact-SQLSELECT 陳述式會傳回資料庫資料表的資料行名稱。使用 [報表資料] 窗格展開資料集,即可檢視資料集欄位集合。 

資料也可以使用預先定義的共用資料集和報表組件併入報表中。這些項目已經有您所需的資料連接資訊。如需詳細資訊,請參閱<將資料加入至報表 (報表產生器 3.0 和 SSRS)>和<報表組件 (報表產生器 3.0)>。

如需有關內建資料來源類型和資料延伸模組的詳細資訊,請參閱<從外部資料來源新增資料 (SSRS)>。

[!附註]

您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (SSRS) 中設計報表,位於 microsoft.com 網站上。

本文內容

了解報表資料集與查詢

比較和建立共用資料集與內嵌資料集

排序、群組和篩選資料集中的資料

使用參數與資料集

使用報表模型

使用資料集與地圖

顯示多個資料集的資料

沒有可用的資料列時顯示訊息

設定資料集選項

了解報表資料集與查詢

報表資料集包含的查詢命令可在外部資料來源上執行,並指定要擷取的資料。若要建立查詢指令,您可以使用與外部資料來源之資料延伸模組相關聯的查詢設計工具。在查詢設計工具中,您可以執行查詢命令並檢視結果集。結果集是一個矩形資料列集,其中的資料行名稱和資料列在每個資料列中都有相同數目的值。不支援階層式資料,也稱為「不完全階層」(Ragged Hierarchy)。資料行名稱會當做資料集欄位的清單儲存在報表定義中。

將資料集加入至報表後,您可以將欄位從 [報表資料] 窗格中的欄位集合拖曳至資料表、圖表,以及您用來設計報表配置的其他報表項目。如需有關使用欄位的詳細資訊,請參閱<使用報表資料集中的欄位 (報表產生器 3.0 和 SSRS)>。

了解報表資料集的資料

根據資料延伸模組,報表資料集可由下列類型的資料組成:

  • 來自關聯式資料庫的結果集,這可能是從執行資料庫命令、預存程序或使用者定義函數而產生。如果透過單一查詢擷取多個結果集,則系統只會處理第一個結果集,而且會忽略其他所有結果集。例如,當您在以文字為基礎的查詢設計工具中執行下列查詢時,只有 Production.Product 的結果集會出現在結果窗格中:

    SELECT ProductID FROM Production.Product
    GO
    SELECT ContactID FROM Person.Contact
    
  • 來自多維度資料來源的扁平化資料列集,該資料來源使用 XML for Analysis (XMLA) 通訊協定。某些資料提供者會提供來自資料來源的其他資料格和維度屬性,您無法在結果集中看到這些屬性,但是可以在報表中使用。

  • 來自 XML 資料來源的扁平化結果集,這些資料來源包括 XML 元素、其屬性及其子元素。

  • 來自任何已註冊並已設定之 .NET Framework 資料提供者的結果集。

  • 來自已針對特定資料來源設計之報表模型的資料,其中包含預先定義的實體、實體關聯性以及欄位。如需詳細資訊,請參閱《SQL Server 線上叢書》中 Reporting Services 文件集的<使用報表模型當做資料來源>。

當報表在執行階段處理時,針對查詢傳回的實際結果集可能擁有零或多個資料列。在查詢中定義的資料行也可能從資料來源遺失。來自資料來源的 Null 值會對應到 .NET Framework 值 System.DBNull.Value。

如需有關資料集欄位的詳細資訊,請參閱<使用報表資料集中的欄位 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

資料集查詢

當您在設計階段,於查詢設計工具中執行資料集查詢時,您會從資料來源看到一個顯示範例資料的資料列集。當使用者在執行階段檢視報表時,資料集查詢可能會產生不同的值,因為資料來源上的資料已變更。每次處理報表時,新的資料可能就會出現。

當您定義每個資料集時,報表產生器就會開啟對應到資料來源類型的查詢設計工具,來協助您設計查詢。例如,若要從 SQL Server 關聯式資料庫定義資料的查詢,「資料表/矩陣精靈」、「圖表精靈」和「地圖精靈」會開啟一個簡單的圖形化介面,協助您建立查詢;您需要做的只有選取資料集中您要的欄位。

在查詢設計工具中,您可以進行下列作業:

  • 在圖形化查詢檢視與以文字為基礎的查詢檢視之間切換。使用圖形化查詢檢視瀏覽資料來源上的結構描述、資料表、檢視表及預存程序。使用以文字為基礎的檢視來輸入、貼上或檢視通常用於複雜查詢的現有查詢,這種查詢無法顯示在圖形化查詢設計工具中。例如,您可以從 Transact-SQL (.sql) 檔案、報表伺服器上的不同報表,或檔案共用中的報表定義 (.rdl) 檔匯入查詢。

  • 執行查詢,以便查看資料。查詢會傳回結果集。結果集中的資料行會成為資料集的欄位集合。結果中的資料列會成為資料集的資料。您可以持續使用此查詢,直到取得所需的資料行為止。

  • 加入查詢參數,以便協助單獨擷取想要用於報表的資料。查詢參數會自動產生相符的報表參數。若是報表模型資料來源,您指定的篩選會自動產生相符的報表參數。報表參數可讓使用者指定執行報表時想要查看的報表資料。例如,使用者會選取他們希望資料所屬的產品類別目錄,因此在報表執行時,只有那些產品類別目錄的資料會出現在報表中。

  • 從其他報表匯入現有的查詢。

根據資料來源類型,查詢設計工具可以提供圖形模式或文字模式。如果您選擇文字模式,您必須為資料來源使用適當的查詢語法。

當您定義報表資料集時,您可以在查詢中設定資料屬性,或接受由資料提供者所設定的預設值。您可以使用下列其中一個策略來變更資料類型:

  • 重新撰寫資料集查詢,將欄位特別轉換為不同的資料類型。

  • 編輯資料集中的欄位,並提供自訂格式。

  • 根據資料集欄位建立新的自訂欄位,並提供自訂格式。

如需詳細資訊,請參閱<使用報表資料集中的欄位 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

匯入資料集的現有查詢

建立資料集時,您可以建立新的查詢,也可以從檔案或其他報表匯入現有的查詢。從其他報表匯入查詢時,您可以選擇要從報表中資料集之清單匯入的查詢。

系統只支援 .sql 和 .rdl 檔案類型。多維度運算式 (MDX) 查詢、資料採礦預測 (DMX) 查詢以及模型查詢 (SMQL) 只能由相關聯的查詢設計工具產生。

搭配回到頁首連結使用的箭頭圖示回到頁首

比較和建立共用資料集與內嵌資料集

內嵌資料集是在報表或已發行的報表組件中定義的。對內嵌資料集所做的變更只會影響該報表或該報表組件。

共用資料集是在報表伺服器或 SharePoint 網站上定義、以共用資料來源為基礎,而且可由多個報表及報表組件使用。對共用資料集定義所做的變更會影響使用該定義的所有報表和所有報表組件。

當您將共用資料集加入至報表時,系統會將資料集欄位集合更新為報表伺服器上目前的定義。在報表伺服器上進行變更時,您不會收到更新通知。若要同步處理欄位集合的本機複本與在報表伺服器上對共用資料集定義所做的變更,您必須重新整理本機欄位集合。如需詳細資訊,請參閱<如何:加入、編輯、重新整理報表資料窗格中的欄位 (報表產生器 3.0 和 SSRS)>。

已發行的報表項目包含相依的內嵌資料集和共用資料集。如需詳細資訊,請參閱<在報表產生器 3.0 中使用報表組件與資料集>。

如需有關建立資料集的詳細資訊,請參閱<如何:建立共用資料集或內嵌資料集 (報表產生器 3.0 和 SSRS)>。如需有關如何在共用資料集儲存到報表伺服器後進行管理的詳細資訊,請參閱《SQL Server 線上叢書》中 Reporting Services 文件集的<管理共用資料集>。

搭配回到頁首連結使用的箭頭圖示回到頁首

篩選、排序及分組資料集中的資料

資料集中的資料是在外部資料來源上執行查詢命令而產生的。資料延伸模組的查詢命令語法會決定是否可以排序或分組資料。排序與分組要在擷取報表的資料前,於查詢中進行。篩選則在擷取報表的資料之後進行。

如需詳細資訊,請參閱<篩選、分組和排序資料 (報表產生器 3.0 和 SSRS)>。

篩選資料集中的資料

篩選在報表中屬於資料集定義的一部分。使用資料集篩選從資料集指定要包含在報表中的資料。當您在資料集上指定篩選時,以資料集為基礎的所有資料區只會顯示通過資料集篩選的資料。

篩選是共用資料集定義的一部分。共用資料集篩選會影響包含共用資料集的所有報表。將共用資料集加入至報表後,或加入包含相依共用資料集的元件之後,您可以建立其他資料集篩選。您建立的篩選僅能用於您的報表,它們不屬於報表伺服器上共用資料集定義的一部分。

您可以針對資料區或資料區群組設定其他篩選。您也可以使用參數和篩選的組合,讓使用者選擇想要在報表中看到的資料。如需詳細資訊,請參閱<參數 (報表產生器 3.0 和 SSRS)>。

排序資料集中的資料

在資料集中,資料的順序就是資料從外部資料來源擷取的順序。這是您在查詢設計工具中執行查詢時看到的相同順序。如果查詢命令語法支援排序,您可以在查詢當做報表資料傳回前,編輯查詢來排序來源的資料。例如,若是 Transact-SQL 查詢,ORDER BY 陳述式會控制排序次序。

若要在資料傳回報表前進行排序,請在資料區和資料區群組上定義排序運算式。如需詳細資訊,請參閱特定資料區類型的主題,例如<資料表、矩陣和清單 (報表產生器 3.0 和 SSRS)>。

您也可以使用參數與排序運算式的組合,讓使用者選擇資料在報表中的排序次序。如需詳細資訊,請參閱<參數 (報表產生器 3.0 和 SSRS)>。

在資料集中分組資料

您無法在資料集中分組資料。若要彙總資料集中的資料,您可以在擷取報表的資料前,編輯查詢命令來計算彙總。這些值稱為「伺服器彙總」(Server Aggregate)。在運算式中,若要將這些值識別為預先計算的彙總,請使用彙總函式。如需詳細資訊,請參閱<彙總函式 (報表產生器 3.0 和 SSRS)>。

使用參數與資料集

針對包含查詢變數的內嵌資料集查詢,系統會自動建立查詢參數和對應的報表參數。當報表執行時,報表參數的值會連結到資料集查詢參數。利用這個方式,在外部資料來源上執行的查詢命令會包含針對報表參數所指定的值。報表參數可讓使用者選擇他們想要在報表中查看的資料。您可以在<資料集屬性對話方塊、參數 (報表產生器 3.0)>頁面中檢視如何連結查詢參數與報表參數。

若是共用資料集,查詢參數是共用資料集定義的一部分,可以在報表伺服器上與報表分開管理。下列清單描述查詢參數值的支援:

  • 可以以運算式為基礎。

  • 可以包含預設值。

  • 可以設定為唯讀。唯讀參數無法在報表的共用資料集執行個體中變更。

  • 無法包含內建 Parameters 集合 (表示報表參數) 的參考。

若要在資料集設計模式下設定共用資料集的查詢參數值,請瀏覽至報表伺服器中的共用資料集並開啟它,然後設定資料集屬性對話方塊、參數 (報表產生器 3.0) 頁面上的選項。如需詳細資訊,請參閱<如何:建立共用資料集或內嵌資料集 (報表產生器 3.0 和 SSRS)>。

對於某些多維度資料來源 (例如 Analysis Services),圖形化查詢設計工具可讓您指定查詢篩選,然後選取一個選項來建立對應的查詢參數。當您選取參數選項時,資料延伸模組會自動建立一個個別的報表資料集,以便針對該參數的下拉式清單提供可用的值。根據預設,這些隱藏的資料集不會出現在 [報表資料] 窗格內。

從外部資料來源傳回資料之前,連結至查詢參數的報表參數會協助篩選資料。您也可以建立屬於報表定義一部分的篩選來篩選報表中的資料。如需詳細資訊,請參閱<篩選、分組和排序資料 (報表產生器 3.0 和 SSRS)>。

顯示隱藏的資料集

當您針對某些多維度資料來源建立參數化的查詢時,系統會自動建立提供有效參數值的資料集。在某些查詢設計工具上,您可以指定篩選,然後選取要建立參數的選項來達到這個目的。根據預設,這些資料集不會出現在 [報表資料] 窗格內,但是它們可以顯示出來。如需詳細資訊,請參閱<如何:針對多維度資料來源的參數值顯示隱藏的資料集 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

使用報表模型

報表模型可讓您在沒有基礎資料來源之資料結構詳細知識的情況下,選取報表的資料。對於模型設計具有專才的某個人必須先建立報表模型並將它發行,然後您才可以將它當做資料來源使用。

報表模型包含預先定義的欄位及資料關聯性 (稱為實體和角色),而它們會出現在 [資料] 窗格中。這些項目的使用方式與資料集欄位的使用方式相同:只要在設計報表時,將它們拖曳至設計介面即可。如需詳細資訊,請參閱<報表模型查詢設計工具使用者介面 (報表產生器 3.0)>。

如需有關如何建立報表模型的詳細資訊,請參閱《SQL Server 線上叢書》中 Reporting Services 文件集的<使用模型設計師>。如需有關建立特定報表的詳細資訊,請參閱 msdn.microsoft.com 上的<使用報表產生器 1.0 來設計和實作報表>。

搭配回到頁首連結使用的箭頭圖示回到頁首

使用地圖與資料集

如果您在報表中包含地圖,您必須提供空間資料。空間資料可能來自報表資料集、地圖厙中的地圖,或 ESRI 形狀檔。來自報表或 ESRI 形狀檔的空間資料不會當做資料集出現在 [報表資料] 窗格中。如需詳細資訊,請參閱<地圖 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

顯示多個資料集的資料

報表通常有一個以上的資料集。下列清單描述您如何在報表中使用資料集:

搭配回到頁首連結使用的箭頭圖示回到頁首

沒有可用的資料列時顯示訊息

在報表處理期間,當資料集的查詢執行時,結果集可能不包含任何資料列。在轉譯的報表中,連結到空資料集的資料區域會顯示為空資料區域。您可以指定要在轉譯之報表中顯示的文字來取代空資料區域。當所有資料集的查詢在執行階段沒有產生任何資料時,您也可以指定子報表的訊息。如需詳細資訊,請參閱<如何:在資料區域中設定沒有資料的訊息 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

設定資料集選項

對於支援國際資料的資料來源,您可能需要針對影響排序次序、國際字元屬性,以及區分大小寫的資料集調整屬性。這些屬性包含大小寫、假名、寬度、腔調字和定序。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<資料庫和 Database Engine 應用程式的國際化考量>和<使用定序>。如需有關如何設定這些屬性的詳細資訊,請參閱<資料集屬性對話方塊、選項 (報表產生器 3.0)>。

搭配回到頁首連結使用的箭頭圖示回到頁首