SSRSレポートでマルチバリューパラメータの選択したすべての値を表示する方法を教えてもらえますか?与えた場合parameter.value
のオプションを、それはエラーが発生します。
回答:
「結合」関数を使用して、次のようにラベルの配列から単一の文字列を作成できます。
=Join(Parameters!Product.Label, ",")
=Join(Parameters!Product.Value, ",")
結合関数について知りませんでした-いいですね!コードセクションに配置した関数を作成しました([レポートのプロパティ]-> [コード]タブ:
Public Function ShowParmValues(ByVal parm as Parameter) as string
Dim s as String
For i as integer = 0 to parm.Count-1
s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
Next
Return s
End Function
うまくいけば、他の誰かがこれが役に立つと思うでしょう:
結合の使用は、複数値パラメーターを使用するための最良の方法です。しかし、効率的な「すべて選択」が必要な場合はどうでしょうか。100を超える場合、クエリは非常に非効率になります。
SQLクエリをそのまま使用する代わりにこれを解決するには、式を使用するように変更し(右上の[Fx]ボタンをクリック)、次のようなクエリを作成します(スピーチマークが必要です)。
= "Select * from tProducts Where 1 = 1 "
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")
パラメータで次の手順を実行します。
SELECT -1 As ProductID, 'All' as ProductName Union All
Select
tProducts.ProductID,tProducts.ProductName
FROM
tProducts
クエリを式として作成することで、SQLステートメントをより効率的にすることができますが、SQLServerが「In」ステートメントの値を処理する際の問題にも対処できます。