2012-02-08 18 views
1

SSRSとImのレポートを作成しました。データセットフィルタを使用して、レポート情報をフィルタ処理する式を使用しました。私は間違っている、この式やフィルタが正しく動作していない持っているいずれかのようだ:SSRSレポート - データセットフィルタ

=IIf(Parameters!DoctorID.Value = "All" Or Parameters!DoctorID.Value = "", "*", Parameters!DoctorID.Value) 

私は上記のコードで達成したいことはDoctorID = ALLまたは「」(空白)は、その後、私はからそれを省略したいされている場合私はすべての医師のための情報を返すので、フィルタ。しかし、DoctorID = ALLの値が出るたびに、これまでどんな行も返さない。 DoctorIDは特定の番号ではないので、私はすべての行を取得しているはずです。

「*」(星)はそのフィルタの省略を示していませんか?私はここで何か間違っていますか?

ありがとうございます!

答えて

0

フィルタ式は方程式の半分に過ぎません。演算子とは何ですか、これを何と比較していますか?そして、はい、SSRSでアスタリスクをワイルドカードとして使用することはありませんでした。

データセットのクエリにフィルタを配置することを検討してください。 SQLのWHERE節はかなり強力になります。私はあなたのフィルタをクエリに書きます。

... 
WHERE 
    @DoctorID = 'All' OR @DoctorID = '' 
    OR @DoctorID = myTable.DoctorID 

これはまた、多値パラメータにかなり簡単に移行できるようにします。

+0

返信いただきありがとうございます。私は実際にあなたの答えのバリエーションを使って自分の問題を解決しました。 WHERE(@DoctorID = 'すべて' AND 1 = 1)または(doctor_id = @ DoctorID)はこのトリックを行うようです。 – Encryption