1

我是SSRS的新手。我認爲應該是非常簡單的一天,我無法修復它。所有我需要的是以下如何使用SSRS中的多值參數列表篩選列

Select * from table1 where len(username) <= 6 
Select * from table1 where len(username) >= 7 

我想顯示兩個選項短用戶名和長用戶名一個下拉菜單。 當用戶名單擊簡短用戶名時,顯示第一個查詢結果,當用戶單擊Long用戶名時,顯示第二個查詢結果。

我到目前爲止所做的是添加了一個帶有兩個值的參數列表,即短參數列表= 6和長參數列表= 7.然後添加了兩個過濾器。在第一個表達式中= len(NameColumn.value)operator = < = value = @parameter。在第二個表達式= len(NameColumn.value)operator => = value = @parameter。你能請我能做些什麼來實現它。

回答

2

您可以在@ energ1ser提到的數據集做一個類似的過濾器。

您將有一個參數,其中用戶選擇長或短。你可能會使用不同的值。

對於表達,可以使用:

=IIF((Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) 
    OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7), 1, 0) 

對於類型,使用整數,和操作員=與價值。

該表達式計算每個行作爲或,然後對其過濾爲的。

要顯示所有記錄,添加另一個當爲參數選擇全部。

=IIF((Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) 
    OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7) 
    OR (Parameters!YourParameter.Value = "All"), 1, 0) 
+0

這太好了,它做到了。在當前邏輯中是否可以默認顯示所有名稱,或者添加一個選項以通過從菜單中選擇「both」來顯示所有名稱? –

+1

是 - 只需在YourParameter =「全部」時添加和額外的OR。 (參數!YourParameter.Value =「Short」和LEN(FIELDS!USERNAME.VALUE)<= 6) OR(Parameters!YourParameter.Value =「Long」and LEN(FIELDS!USERNAME.VALUE)> = 7)OR(Parameters!YourParameter.Value =「All」),1,0) –

+0

優秀,偉大 –

2

我認爲這可能會更好地在查詢中進行篩選,而不是使用SSRS篩選器。試試這個查詢。

select * from table1 where (@Parameter = 0 and len(username) <= 6) or (@Parameter = 1 and len(username) >= 7) 

而你的參數可以像這樣設置。

enter image description here

+0

您能否告訴我如何在基於表格和計算字段的報表上使用查詢。 –