web-dev-qa-db-ja.com

レポートの表示パラメーター(複数値)

SSRSレポートで複数値パラメーターで選択したすべての値を表示する方法を教えてください。 parameter.valueオプションエラーが発生します。

79
suni

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

=Join(Parameters!Product.Label, ",")
151
Matt Hamilton

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

11
nadiObi

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

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  
6
Booji Boy

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

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

0
Markive