設定子報表和鑽研報表 (Visual Studio 報表設計工具)

您可以利用子報表和鑽研報表,將相關的報表連結起來。

  • 子報表是內嵌於父報表主體內的一個控制項。因此,子報表類似於網頁中,用來做為其他網頁內容之容器的框架。子報表在它所在的父報表內轉譯。兩份報表的處理和顯示是同時進行的。

  • 在報表項目上設定鑽研動作的結果時,就會開啟鑽研報表。這個動作通常會在與父報表相同的空間中,開啟相關的報表或是具有不同參數的相同報表。鑽研報表通常會透過資料與父報表產生關聯。含有當月個別銷售訂單連結的每月銷售報表,便可能是鑽研報表的一般範例。當您按一下鑽研連結時,會以提供支援詳細資料的不同報表來取代父報表。

鑽研報表和子報表都支援父報表和子報表的概念。若要建立報表的關聯性,您必須建立報表參數,利用這些參數來傳遞建立關聯性的資料。若要在執行階段連結報表,您必須撰寫支援連接的程式碼。當部署相關報表時,請確定用戶端報表定義檔案 (.rdlc) 都儲存在檔案系統的相同資料夾中。

下列事件提供的範例程式碼會示範如何針對 ReportViewer 控制項實作子報表和鑽研動作:

如需有關在報表中包含鑽研互動性的資訊,請參閱HOW TO:在報表項目上隱藏或定義切換可見性 (Visual Studio 報表設計工具)

加入子報表

子報表與它的父報表可透過共用參數產生關聯。您必須將參數加入每一份報表中。您必須先設定參數,才能將子報表加入父報表中。當您加入子報表時,請設定父報表,讓它將參數傳給子報表。

若要加入子報表

  1. 在圖形設計模式中,開啟用戶端報表定義檔案 (.rdlc)。

  2. 在 [工具箱] 中,按一下 [子報表]。

  3. 在設計介面中,將方塊拖曳至所需要的子報表大小。另外,您也可以按一下設計介面來建立固定大小的子報表。

    Note附註

    如果子報表在專案中,您可以從 [方案總管] 中,將報表拖曳至設計介面來建立子報表。

  4. 以滑鼠右鍵按一下子報表,再按一下 [屬性]。

  5. 在 [子報表] 中,選取要出現在子報表區域中的報表。

  6. 在 [參數] 索引標籤,執行下列動作:

    • 在 [參數名稱] 中,輸入子報表中的參數名稱。這個名稱必須符合 [ReportName] 屬性指定的報表中之報表參數。

    • 在 [參數值] 中,輸入要傳給子報表的值。這個值可以是靜態文字,也可以是指向父報表中之欄位或其他物件的運算式。

  7. 重複步驟 2 來新增要傳給子報表的其他參數。

Note附註

子報表所需要的所有參數都必須包括在 [參數] 清單中。如果遺漏必要的參數,子報表便無法正確顯示在父報表內。

若要提供子報表的資料,您的應用程式必須處理 LocalReport 物件的 SubreportProcessing 事件。SubreportProcessingEventArgs 是傳給 SubreportProcessing 事件處理常式方法的引數之一。在事件處理常式中,應用程式可以檢查利用 SubreportProcessingEventArgsParameters 屬性傳給子報表的參數值。之後,應用程式必須利用 SubreportProcessingEventArgsDataSources 屬性來提供子報表的資料。

設定鑽研報表

您可以定義鑽研動作來提供從父報表到包含支援資料的次要報表之導覽功能,以設定鑽研報表。

鑽研報表通常會包含父報表傳給它的參數。在銷售摘要報表範例中,鑽研報表包含一個含有訂單值的參數。摘要報表包括每個訂單號碼的鑽研報表連結,當按一下這個連結時,這個連結會開啟目標詳細資料報表,且會將訂單識別碼傳給它。

報表伺服器所儲存的任何報表都可以是鑽研報表。您只能將鑽研連結加入至文字方塊和影像中。

若要加入鑽研報表連結

  1. 在圖形設計模式中,開啟用戶端報表定義檔案 (.rdlc)。

  2. 以滑鼠右鍵按一下要加入連結的文字方塊或影像,再按一下 [屬性]。

  3. 在 [導覽] 索引標籤中,選取 [跳至報表]。

  4. 輸入或選取報表名稱。這份報表必須是相同專案中的 .rdlc 檔。

  5. 若要設定傳給鑽研報表的參數,請按一下 [參數],再執行下列動作:

    • 在 [參數名稱] 中,輸入鑽研報表中之報表參數的名稱。

      Note附註

      參數清單中的名稱必須完全符合目標報表中的預期參數。如果名稱不符合,或未列出預期的參數,鑽研報表就會失敗。

    • 在 [參數值] 中,輸入或選取要傳給鑽研報表中之參數的值。

      Note附註

      值可以包含運算式,這個運算式必須會得出將傳給報表參數的值。值清單中的運算式包括目前報表的欄位清單。

若要提供鑽研報表的資料,您的應用程式必須處理 ReportViewer 物件的 Drillthrough 事件。傳遞給 Drillthrough 事件處理常式方法的其中一個引數是 DrillthroughEventArgsDrillThroughEventArgs 具有代表鑽研報表的 Report 屬性。在事件處理常式中,主應用程式可以呼叫鑽研報表的 GetParameters() 方法來檢查傳給鑽研報表的參數值。之後,主應用程式會利用鑽研報表的 DataSources 屬性來提供鑽研報表的資料。

另請參閱

概念

在報表中定義報表參數 (Visual Studio 報表設計工具)
在報表中加入互動性、可見性和導覽 (Visual Studio 報表設計工具)

其他資源

範例和逐步解說