建立報表參數及設定報表參數屬性 (報表產生器 2.0)
報表的報表參數定義是全域的。如果報表查詢包含參數,則會自動建立報表參數,也可以手動建立報表參數。在建立報表參數之後,您必須設定屬性來識別參數及控制參數在報表中的使用方式。
若要在發行報表之前使用參數,請使用報表產生器 2.0 中的 [報表參數] 對話方塊。如需詳細資訊,請參閱<如何:加入、變更或刪除報表參數 (報表產生器 2.0)>。
在發行報表之後,您可以在「報表管理員」或 SQL ServerManagement Studio 中修改許多報表參數屬性。
報表參數
在儲存資料集查詢時,系統會針對查詢參數而自動建立報表參數,或者您也可以手動建立報表參數。在建立報表參數之後,可能需要調整報表參數屬性的預設值,才能取得所要的功能。例如,您可能需要變更資料類型、建立資料集以提供可用值清單、建立預設值的資料集,或設定值是否可以是空白或 Null。
如果您想要參數允許多重值,就必須變更資料集查詢,使其也允許多重值。如需詳細資訊,請參閱<使用單一值和多重值參數 (報表產生器 2.0)>。此外,如果您在運算式中包含多重值參數,則必須了解如何撰寫運算式來存取所要的值。如需詳細資訊,請參閱<使用運算式中的參數集合參考 (報表產生器 2.0)>。
若要建立或修改報表參數,以滑鼠右鍵按一下 [資料] 窗格中的 [參數] 節點,然後開啟 [報表參數屬性] 對話方塊。
[!附註]
當您移除或變更查詢參數的名稱時,並不會自動移除或變更對應的報表參數。如果變更查詢參數的名稱,則在儲存查詢時會建立與變更名稱對應的新報表參數。您可以將報表參數重新命名以符合新的查詢參數名稱,並且更新資料集參數屬性以將查詢參數連結到報表參數。如果將查詢參數移除而不再需要對應的報表參數,則必須手動將其刪除。
名稱和資料類型
參數名稱是必要的,且必須在報表中是唯一的。依預設,參數資料類型設定為 String。您可以從下拉式清單中選擇其他資料類型。如果報表參數是以查詢參數為基礎,請確定報表參數資料類型與查詢參數資料類型相符。Reporting Services 不會偵測查詢參數資料類型,所以您必須自行調整資料類型。
名稱必須符合 Common Language Specification (CLS) 的字元和大小寫標準。如需詳細資訊,請參閱 https://msdn.microsoft.com 上的 Common Language Specification。
提示
在已發行報表中,參數通常會顯示為報表上方參數輸入區域中的文字方塊。提示字串定義識別輸入區域中之參數的標籤。提示可以是參數的名稱或是對使用者的指示,例如,「年份」或是「請選取一個年份」。如果提示保留空白並指定了預設參數值,就會使用預設值,而且使用者執行報表時,不會顯示參數的輸入方塊。如果提示保留空白,而且沒有指定預設參數值,則無法執行報表。如果不想要提示使用者輸入參數值,請選取 [隱藏] 或 [內部]。
隱藏和內部參數
您可以設定選項來控制已發行報表中之參數的可見性。設定 [隱藏] 和 [內部] 選項來提供不同層級的可見性。您可以隱藏已發行報表之參數輸入區域上的參數,但是在報表 URL 或在訂閱定義中設定參數的值。如果將參數設為 [內部],則除了在報表定義中出現之外,該參數不會以任何方式公開。內部參數必須擁有預設值,如果已選取 [允許 Null 值] 選項,則該選項可能為 Null。
單一和多重數值參數
您可以在 [報表參數] 對話方塊中選取 [多重數值] 選項來定義多重數值參數。如果未選取此核取方塊,此參數會是單一數值。指定 [多重數值] 選項會將核取方塊加入到已發行報表中參數下拉式清單內的可用值。使用者可以選取他們想要的值;例如,在 Sales Reason Comparisons 範例報表中,使用者可以選取多個產品,以檢視這些產品的結合銷售資料。
指定可用的值時,您可以提供靜態字串清單,或者使用查詢從資料來源擷取可用的值。多重數值參數至少必須包含一個值。不允許 Null 值。只有當有一個以上的值時,才會自動建立及顯示 [全選] 選項。
[!附註]
在 Reporting Services 中,如果您使用的是 Analysis Services 資料來源,請不要選擇 [全選] 選項。[全選] 選項在處理 MDX 查詢時可能會產生較差的效能。如果您要選取所有的值,請在查詢設計工具中改選 MDX 的 [全部] 成員清單。
允許空白
當您建立可用值的清單時,如果您希望讓 <空白> 有效,您必須將它加入到有效值清單中。
允許 Null
[允許 Null] 是適用於單一數值參數的選項。如果是多重值參數,您將無法選取這個值。當您選取 [允許 Null] 時,便允許參數具有 Null 值。依預設,有些查詢語言不會在結果集內傳回 Null 值。
可用的值
您定義報表參數時,必須定義可以搭配報表使用的值。這些稱為可用的值或有效的值。可用的值清單會包含配對的值/標籤。執行報表時,使用者會看見標籤。使用者選取標籤時,會使用對應的值做為參數值。可以將可用的值預先定義為靜態清單或運算式,或者可以從資料集擷取可用的值:
非查詢的清單是值/標籤配對的靜態清單。整個清單包含在報表參數定義中。每一個值和標籤可以是靜態值或是從運算式產生。
查詢清單會使得報表伺服器在執行報表時,從資料集裡擷取一組值和標籤。您指定查詢的可用值清單時,會選取資料集、供值使用的欄位以及供標籤使用的欄位。
指定查詢的可用值清單時,建議您建立參數專用的簡化資料集,而不是使用報表中之資料區域也會使用的複雜資料集。有效值清單和報表中之資料區域若使用相同的有效值清單的資料集,則可能會在有效值清單中產生非預期的結果。
預設值
您可以定義參數的預設值。如果報表中所有的參數都有預設值,則在使用者開啟報表、或在報表產生器 2.0 中預覽報表時,會立即處理報表。如果其中至少有一個參數沒有預設值,則只會在使用者輸入所有的參數值並執行報表後,報表才會顯示資料。
您可以使用非查詢的或查詢的值做為預設值。非查詢的預設值是靜態值或運算式。查詢的預設值是指向資料集內之欄位的運算式。如果查詢傳回多個資料列,則會使用傳回的資料集內之第一個資料列的值。
您也可以選擇不要指定預設值。如果這麼做,就必須指定提示。
[!附註]
如果是使用多重值參數,而查詢傳回一個以上的資料列,則所有的資料列都會做為預設值。