2015-04-24 244 views
0

在現有的ssrs 2008 r2報告中,我有一個要求,即用戶要在報告中添加2個參數。現在有一個選項SQ Server 2008 R2報告服務:可選參數值和報告

其中用戶可以選擇生成報告1,報告2,報告3,報告4,報告5,報告6,報告7,報告8和/或我剛剛列出的報告的任意組合。

這是設置在visibility屬性爲每個8個tablixes的使用表達式。

爲了您的信息,下面是如何顯示的一個報告或不舉例:

=iif(InStr(join(Parameters!report.Value,","),6)>0,false,true) 

現在用戶要根據是否報告7,能夠增加客戶的參數和inventory_item和/或選擇報告8。

現在你可以告訴我下面的:

  1. 你會告訴我的代碼,我可以在數據集中用它來選擇報告7和/或報告8?
  2. 這是否考慮使用「可選」參數,因爲如果選擇了report7和/或report8,inventory_item的新參數將基於這些參數。如果是這樣,你能告訴我如何編碼這些可選參數嗎?
  3. 如果上面是無法選擇具體的報告,然後將數據集查詢需要看起來像: where @report is null or where @report is not null?你會建議什麼?
  4. 如果上述選項不可用於2個新參數,我是否會選擇所有項目(或一個項目),以便報告始終運行?
+0

你的意思是,如果客戶選擇報告7或8彙報,他希望除了什麼是當前顯示的客戶和Inventory_Item tablixes看? – Ewan

回答

0

對於您的額外參數,您可以檢出級聯參數http://www.mssqltips.com/sqlservertip/3466/cascaded-parameters-in-sql-server-reporting-services/)。

基本上,您需要添加新的參數,但除非報告7或8中選擇不使用它們的過濾器。不幸的是,沒有一種我知道的基於另一個參數選擇來禁用參數的方法。

我從您的表情中猜測,您的報告參數僅基於所選報告返回值1 - 8。這個例子應該從報告6:

=IIF(InStr(Join(Parameters!report.Value, ","), 6) > 0, false, true) 

過濾使用新inventory_item參數會是這樣的:

=IIF(InStr(Join(Parameters!report.Value, ","), "7") > 0 
OR InStr(Join(Parameters!report.Value, ","), "8") > 0, 
IIF(Parameters!inventory_item.Value = Fields!inventory_item.Value, TRUE, FALSE), TRUE) 

這隻會通過inventory_item如果報表限制數據在7或8