共用方式為


第 6 課:加入含有參數的子報表

新增: 2006 年 7 月 17 日

子報表提供可在主報表中嵌入報表的方法。不同於可在相同視窗中開啟另一份報表的鑽研報表,子報表會以主報表中的內嵌報表項目顯示。雖然任何報表都可以作為子報表,但通常還是必須將報表格式化為子報表,以改善在主報表中顯示的方式。

在下一課,您會將 ContactInformation 報表加入至 Resellers Worldwide 報表,作為子報表。您將學習如何在主報表中,將子報表加入至資料表並設定其屬性,其中包括將主報表參數繫結至子報表參數。

開啟 Advanced Parameters Tutorial 報表伺服器專案

  1. SQL Server Business Intelligence Development Studio 中,開啟 Advanced Parameters Tutorial 報表伺服器專案 (如果尚未開啟的話)。

  2. 在 [方案總管] 中,按兩下 [Resellers Worldwide] 報表。報表隨即在 [配置] 檢視中開啟。

在下一個程序中,您將在此主報表中加入多重值參數 ContactDisplayFields。當您在子報表上設定參數屬性時,會將主報表多重值參數 ContactDisplayFields 繫結至子報表多重值參數 FieldsToDisplay。

加入多重值參數 ContactDisplayFields

  1. 在 [配置] 檢視中,按一下設計介面。[報表][格式] 功能表項目隨即出現。

  2. [報表] 功能表中,選擇 [報表參數][報表參數] 對話方塊隨即開啟。

  3. 按一下 [加入]。隨即建立含有預設值的新參數。

  4. [屬性] 區段的 [名稱] 文字方塊中,輸入 ContactDisplayFields。確認資料類型是 String

  5. [提示] 文字方塊中,輸入 Information to display in the subreport:。

  6. 選取 [允許空白值] 選項。

  7. 選取 [多重值] 選項。

  8. [可用的值] 區段中,確認已選取 [非查詢的],並使用下表來設定可用值:

    標籤

    Phone

    Phone

    Email

    EmailAddress

    None

    <空白>

  9. [預設值] 區段中,選取 [非查詢的],並將下列運算式貼入至 [值] 文字方塊:EmailAddress。

  10. 按一下 [確定]

  11. 按一下 [預覽]

由於您提供了可用的值清單,因此,[全選] 值已自動加入至 ContactDisplayFields 參數的下拉式清單中。

在下一個程序中,您將加入多重值參數 Colors。在本教學課程中,您將為多重值參數 Colors 設定兩個值。設定子報表的參數屬性時,您將從這個多重值參數繫結單一值至每個子報表參數 BackgroundColorFontColor

加入多重值參數 Colors

  1. 在 [配置] 檢視中,從 [報表] 功能表選擇 [報表參數]。[報表參數] 對話方塊隨即開啟。

  2. 按一下 [加入]。隨即建立含有預設值的新參數。

  3. [屬性] 區段的 [名稱] 文字方塊中,輸入 Colors。確認資料類型是 String

  4. 以下列文字取代現有提示:「選擇背景和字型色彩:」。

  5. 選取 [多重值] 選項。

  6. 清除 [允許空白值] 選項。

  7. [可用的值] 區段中,確認已選取 [非查詢的]。將值資料表保留為空白。

  8. [預設值] 區段中,選取 [非查詢的],並將下列兩個值貼入至 [值] 文字方塊:#C9DEF6SlateBlue

    您必須為此參數設定兩個值。陣列中的第一個值將傳遞給子報表,作為背景色彩。第二個值將傳遞給子報表作為字型色彩。

    在此範例中,背景色彩值是 RGB 色彩編碼 #C9DEF6,字型色彩是 Web 色彩 SlateBlue。

  9. 按一下 [確定]

  10. 按一下 [預覽]

    由於沒有為 Colors 參數定義任何一組可用的值,因此其下拉式清單不會出現 [全選] 值。

在下一個程序中,您將在資料表中準備一個位置,以加入子報表的報表項目。您將在資料表群組首加入第二個資料列。您將會合併資料行,如此,該資料列中只會有兩個文字方塊,其寬度足以顯示子報表。接著,您將設定該標頭資料列的可見性,以便取得參數值 ShowSalesDetails 的預期行為:當參數為 True 時,讓連絡資訊的詳細資料列可見。

在資料表群組首加入新資料列並合併其文字方塊

  1. 按一下資料表。資料表控點隨即出現。

  2. 以滑鼠右鍵按一下群組首資料列。文字方塊的內容是以 =Fields!Store.Value 為開頭。選取 [在下方插入資料列]。第二個標頭資料列隨即出現。

  3. 在資料列仍為選取狀態的情況下,從報表工具列的字型大小下拉式清單選取 [8]

    若要將子報表四周的空白減到最小,請將要存放子報表的資料列最小化。子報表的報表項目將視需要展開,但將不會壓縮。

  4. 從資料行 2、3 和 4 選取文字方塊。以滑鼠右鍵按一下並選擇 [合併資料格]。現在,新標頭資料列中會有兩個文字方塊。

  5. 在新資料表資料列為選取的狀態下,在 [屬性] 視窗中捲動到 Visibility,然後展開節點。將 Hidden 設定為 =Not Parameters!ShowSalesDetails.Value

在主報表中加入子報表

  1. 在 [方案總管] 中按一下報表 ContactInformation.rdl,然後將它拖曳到標頭資料列的第二個文字方塊中,在 [Contact Information] 文字方塊的旁邊。

  2. 以滑鼠右鍵按一下灰色子報表區域,然後選取 [屬性][子報表屬性] 對話方塊隨即開啟。

  3. 按一下 [參數] 索引標籤,然後按一下第一個 [參數名稱] 文字方塊。下拉式清單隨即出現,其中包含為 ContactInformation 定義的四個參數。請使用下表來設定子報表參數。

    參數名稱 參數值

    ContactID

    =Fields!StoreContactID.Value

    FieldsToDisplay

    =Parameters!ContactDisplayFields.Value

    BackgroundColor

    =Parameters!Colors.Value(0)

    FontColors

    =Parameters!Colors.Value(1)

  4. 按一下 [確定]

  5. 按一下新群組首資料列的資料列控制代碼。在 [屬性] 視窗中,捲動到 Height,並將值設定為 [0.01] 或可為資料列高度設定的最小值,以消除多餘的空白。

  6. 主報表中子報表報表項目的 Height 屬性會設定最低高度。子報表的報表項目會展開以配合它所繫結的報表。

  7. 按一下子報表的灰色區域。在 [屬性] 視窗中,捲動到 Width,並將值設定為 3 或任何所需的寬度,以符合子報表定義寬度。

    若要消除不必要的空白,子報表元素的寬度必須小於或等於子報表在其定義中定義的寬度。子報表會視需要在主報表中增長,但不會壓縮。

  8. 預覽報表。為 FieldsToDisplay 選取不同的值,並確認子報表顯示您所作的選擇。

    由於現在定義了八個參數,因此,報表工具列會顯得有點擁擠。若要隱藏預覽模式中的工具列,請按一下報表工具列上的 [顯示或隱藏參數區域] 按鈕。

在下一個程序中,您會將 Colors 參數設定為 Internal。內部參數可以用作報表內部的變數,您不能透過報表工具列或任何其他方式設定其值。

將報表參數設定為內部

  1. [報表] 功能表中,選擇 [報表參數][報表參數] 對話方塊隨即開啟。

  2. [參數] 清單方塊中,選取 [Colors]

  3. [屬性] 區段中,選取 [Internal] 選項。

    將參數值設定為 Internal,即表示此參數只會出現在報表定義中。當您將報表發行至伺服器時,將無法從報表伺服器管理此參數。報表工具列將不會為此參數顯示任何提示,而且如果您使用此報表作為子報表,參數不會出現在主報表的子報表參數清單中。

  4. 按一下 [確定]

  5. (選擇性) 按一下 [預覽]。工具列上沒有顯示 Colors 參數的提示。

在第 8 課中,將報表發行至報表伺服器之後,您將隱藏 Resellers Worldwide 報表的許多參數,才不會顯得太過擁擠。

後續的步驟

在這一課,您已順利在資料表群組首加入其他資料列、合併資料格,以及在資料格加入含有參數的子報表。您根據報表參數 ShowSalesDetails 值,在此資料列上設定可見性。在下一課,您將在現有的 AdventureWorks 範例報表 "Territory Sales Drilldown" 中加入參數。請參閱<第 7 課:建立鑽研報表>。

請參閱

其他資源

在 Reporting Services 中使用參數
使用報表項目

說明及資訊

取得 SQL Server 2005 協助