2017-07-27 109 views
0

的條件執行我在SSRS報告這給已經用這種兩個數據套入在報告兩個不同的表不同數量的輸出fields.I的兩個不同的數據集。SSRS數據集

1)一個表將在根據條件執行中的時間顯示輸出。

實際上在運行報告兩個數據集正在執行的SP和需要更多的時間以顯示輸出。

要求: 我需要根據條件執行一個數據集SP。其他數據集SP不應該執行。

實施例: dataSet1的執行Sp1的 Dataset2執行的Sp2

表1使用Sp1的 表2使用的Sp2

通常在執行報告表1將顯示輸出(默認參數選擇基於)

但是SP1和SP2正在同時執行。所以報告需要更多時間來顯示輸出。

我需要在基於condition.so其他數據集SP將不執行一次執行1點SP。

+0

您是否嘗試過'Visibility'你的表矩陣?把與特定日期和時間檢查條件的基礎上能見度我示出了兩個不同勢表中的表達 – LONG

+0

嚴。但兩個數據集SP在同一time.so執行需要花費大量的時間來顯示單臺輸出 –

+0

我不知道有一種方法讓SSRS工作更有效率,有時它甚至讓我超時錯誤 – LONG

回答

1

第一步: 首先創建假人SP爲數據集。那SP應具有相同輸入參數相同輸出字段作爲原始SP1,但給零輸出rows.Do同樣爲SP2爲數據集2

第二步: 在數據集屬性選擇StoredProcedure的圖標和在FX欄中添加以下代碼

= IIF(Parameters!ManagerID。值= -1, 「SP1」, 「DummySP」)

注: DummySP創建應同樣喜歡SP1 執行同樣的數據集2..and這個工程。

0

你必須控制表矩陣的可見性取決於接收到的參數,額外的,你可以創建兩個查詢參數來控制在何處執行,以避免執行,像

Where @Condition = 1 AND (Your WHERE) 
0

至於這種性能袋,您根本不想運行其他SP,在這種情況下,根據我的經驗,最好的方法是修改您的stored procs以基於您決定調用什麼數據集(意味着要提取什麼數據)來添加new parameter )。

因此,如果參數說明不需要特定SP,則不要使用IF-ELSE組合運行SP中的代碼並返回空白單行。

然後,最重要的是,您可以使用hideshow您的Tablix。

希望有道理嗎?

而且如果column countdata types是一樣的,你可以隨時使用表達式來決定什麼stored-proc打電話。