レポートにパラメータ(複数値)を表示する


81

SSRSレポートでマルチバリューパラメータの選択したすべての値を表示する方法を教えてもらえますか?与えた場合parameter.valueのオプションを、それはエラーが発生します。


1
複数値パラメーターに関するより大きなブログの一部として、JOIN関数を使用してこれを行う方法は次のとおりです:wiseowl.co.uk/blog/s187/multivalue-report-builder.htm
アンディブラウン

回答:


155

「結合」関数を使用して、次のようにラベルの配列から単一の文字列を作成できます。

=Join(Parameters!Product.Label, ",")

彼が結合exprをヘッダーに追加している場合、結果はレポートの本文全体に拡大します。
mirezus 2009

グーグルで髪を引き裂く前に素晴らしい答えをくれてありがとう!
パルスヘッド2012年

3
または=Join(Parameters!Product.Value, ",")
Doug_Ivison 2016

各製品に改ページがある場合はどうなりますか?1ページに1つの商品を表示することはできますか?
ピープス2018年

12

=新しい行のJoin(Parameters!Product.Label、vbcrfl)


1
@nadiObi:代わりにvbCrLfにする必要があります。
ストーマ2018

6

結合関数について知りませんでした-いいですね!コードセクションに配置した関数を作成しました([レポートのプロパティ]-> [コード]タブ:

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  

+1これは、「結合」ソリューションがテーブルを必要とするレポートヘッダーで機能します(レポートヘッダーに入ることができません)。
ジェフ

0

うまくいけば、他の誰かがこれが役に立つと思うでしょう:

結合の使用は、複数値パラメーターを使用するための最良の方法です。しかし、効率的な「すべて選択」が必要な場合はどうでしょうか。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」ステートメントの値を処理する際の問題にも対処できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.