2013-03-18 43 views
2

是否可以根據選擇的參數關閉Tablix過濾器?如果一個值爲空,我希望我的數據被過濾,但是如果不同的值爲空,我希望我的數據不被過濾。用戶輸入開始日期,結束日期和移位或VCN。所有4個參數都可以設置爲空。前3個參數找到一系列值的平均值。所以我設置了Tablix過濾器來從數據中刪除異常值。例如,它只允許一定範圍內的數字。但是,當用戶輸入一個VCN時,它將拉起一條記錄,所以即使它是異常值,我也不希望過濾任何數據,因爲有時它不會返回任何值。SSRS 2008 Report Builder:有條件地關閉Tablix Filters

+0

你能多給點信息嗎? – Silagy 2013-03-18 18:35:23

+0

用戶輸入開始日期,結束日期和移位或VCN。所有4個參數都可以設置爲空。前3個參數找到一系列值的平均值。所以我設置了Tablix過濾器來從數據中刪除異常值。但是,當用戶輸入一個VCN時,它將拉起一條記錄,所以即使它是異常值,我也不希望過濾任何數據,因爲有時它不會返回任何值。 – Newbie1331 2013-03-19 12:26:40

回答

3

是的,你可以用這個小小的工作。

  1. 在tablix的過濾器選項中選擇要過濾的字段,例如, [Field1]
  2. 將運營商設置爲=
  3. 在值選項設置類似於以下,這將使過濾無效的關注paramater如果有什麼設置一個表達式:

    =IIf(IsNothing(Parameter!MyPar1.Value), Field!Field1.Value, Parameter!MyPar1.Value) 
    

的評論後如果假設VCN參數僅在VCN篩選器滿意時爲null,那麼我會將以下篩選器應用於Tablix。

對於日期濾波器:

  • 字段:[Date]
  • 運營商:>=
  • 公式:=IIf(IsNothing(Parameter!VCN.Value), Parameter!StartDate.Value, Field!Date.Value)

日期濾波器:

  • 字段:[Date]
  • 運營商:<=
  • 公式:=IIf(IsNothing(Parameter!VCN.Value), Parameter!EndDate.Value, Field!Date.Value)

對於濾波器:

  • 字段:[Shift]
  • 運營商:=
  • 公式:=IIf(IsNothing(Parameter!VCN.Value), Parameter!Shift.Value, Field!Shift.Value)

對於VCN濾波器:

  • 字段:[VCN]
  • 運營商:=
  • 公式:=IIf(IsNothing(Parameter!VCN.Value), Field!VCN.Value, Parameter!VCN.Value)
+0

我的情況是,每個表我有3個過濾器。我的用戶輸入開始日期,結束日期和班次,或者他們可以輸入VCN號碼。如果他們輸入VCN號碼,我希望過濾器關閉。我允許用戶將其他人設置爲空,然後他們進入VCN#。我怎樣才能將你的解決方案應用於我的情況? – Newbie1331 2013-03-19 11:29:46

+0

我已經更新了我的答案,以更好地幫助您 – glh 2013-03-20 08:52:43

+0

也是一個很好的解決方案,感謝您的幫助! – Newbie1331 2013-03-20 14:07:41

0

我會重新設計您的過濾器以返回一個布爾值並將其值設置爲True。然後在過濾器表達式中,您可以使用Iif函數檢查您的參數並返回True(包含)或False(排除)。

對於簡單的過濾器來說,這通常是一個更好的策略,因爲數據類型轉換等是奇怪而易變的。

0

我做了一個工作,只是創建了一個新表,然後根據表達式隱藏了其他表。