SSRSレポートで複数値パラメーターで選択したすべての値を表示する方法を教えてください。 parameter.value
オプションエラーが発生します。
「結合」関数を使用して、次のようにラベルの配列から単一の文字列を作成できます。
=Join(Parameters!Product.Label, ",")
= Join(Parameters!Product.Label、vbcrfl)新しい行
結合機能について知りませんでした-いいね!コードセクションに配置した関数を記述しました(レポートプロパティ->コードタブ:
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ステートメントをより効率的にすることができますが、SQL Serverが「In」ステートメントの値を処理する際の困難を処理することもできます。