2009-05-15 3 views
6

私は、レポート(SQL Server 2005 btw)を生成するためにフィルタリングされていないデータセットを処理しています。SQL Reporting Servicesでは、パラメータに基づいてデータセットをフィルタリングする方法はありますか。

名前がの列で、レポートにパラメータを追加して、いくつかの文字を含む名前のみを選択したいとしましょう。

これらのフィルタを処理する方法を知っていますか?

私は運これらを試してみた:私は、パラメータに「OO」

を与える場合、私は、名前を「FOO」と「foobarに」を得ることができるようにしたいと思い

=Fields!Name.Value Like =Parameters!FilterName.Value 

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%" 

編集:私はフィルタリングがSQLサーバ側で行われるべきであることを知っていますが、私は与えられたデータセットを制御しません(webserviceはno-parametersメソッドを与えます)。報告側。

+0

[Reporting Servicesのフィルタでの作業 - 第2部:LIKE演算子](http://blog.datainspirations.com/2010/12/30/working-with-reporting -services-filters-part-2-like-like /) –

+0

私はむしろバックエンドでフィルタリングをしたいと思います。私はSSRS 2005の基礎に関するシリーズを書いています(まだ進行中です)。基本的なパラメータについては、シリーズの最新記事(Using Parameter)を参照してください:http://dbalink.wordpress.com/2009/05/02/how-to-report-authoring-in-ssrs-2005-part-iv -adding-parameters/ – MarlonRibunal

答えて

16

私は自分の質問に答える、フィルタ式は、実際には次のとおりです。

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*" 

つまり実際には、"*"代わりの"%"を使用しています。

3

推奨される方法は完全一致とすることです。

照会または代替照会から戻されたデータ・セットから複数値のパラメーター・リストを作成することにより、正確に一致することが保証されます。

以下の参考文献が有用であると判明する場合があります。

http://msdn.microsoft.com/en-us/library/ms155917.aspx

+0

ありがとうございました。このリンクをクリックすると、今まで私が断言しているレポートフィルタのサンプルページが表示され、正しい答えが得られました。 – Vinzz

+0

問題ないです。喜んで助けてください。 –

0

データセットのプロパティに移動し、フィルタ]タブに移動します。ドロップダウンリストで、フィルタリングするフィールド(名前)をクリックします。演算子をクリックして好きなものを選択してください。値のボックスで式の選択をクリックします。新しいウィンドウが開きます。パラメータリストに移動し、パラメータを方程式に追加します。 [OK]をクリックします。

2

Reporting Servicesレポートでフィルタを適用するのではなく、DataSetを戻すために実行されるSQL文の一部としてフィルタを適用することをお勧めします。 SQLエンジンは、これらのタイプのフィルタ/クエリを処理するためにはるかに最適化されていると思います。

+0

私はそれを知っています。私はできるだけ早くフィルターに掛けることができればいいと思っていますが、悲しいかな、Webサービスは私のものではなく、所有者は石鹸の膨らみを気にせず、データをフィルタリングしてほしいのです。 – Vinzz

1

あなたの答えは正しいトラックで私を得ました:)! 多分SQL Server 2005とは異なります。しかし、以下のソリューションは、私の仕事:

=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*" 
関連する問題