3

レポートで呼び出される多値パラメーターがありますFaculty。レポートの上部にあるテキスト ボックスに選択内容を表示したいと考えています。明らかな解決策は次のとおりです。

JOIN(Parameters!Faculty.Label,", ")

私が抱えている問題は、リストの最初のオプション (デフォルト) が「すべての教員」であることです。これは、SSRS が提供する [すべて選択] チェックボックスとは異なります。このハードコードされた「すべて」オプションを作成したのは、パラメーター画面でよりきれいに見えるためです (ユーザーには、「Adam、Arbor、Altman...」などではなく「すべての教員」が表示されます)。ユーザーがこれをチェックしたままにして他の選択を行った場合、他の項目のみを選択するつもりであると見なされ、ストアド プロシージャは「すべて」の選択を無視します。

だから私はこのようなものを表示したいと思います:

IIF(Parameters!Faculty.Value(0) = "0000000", [*display all selections except value 0*], (JOIN(Parameters!Faculty.Label,", "))

角括弧内のセクションは、私が問題を抱えているものです。0000000値は「全学部」を表します。

4

1 に答える 1

0

元の質問へのコメントでOPが回答:

最終的に部分文字列を使用しました。これを読んでいる他の誰かが最終的なコードを必要とする場合は、次のとおりです。

IIF(Parameters!Faculty.Count < 6,
IIF(Parameters!Faculty.Value(0) = "0000000",
IIF(Parameters!Faculty.Count = 1, (JOIN(Parameters!Faculty.Label,";
")), (JOIN(Parameters!Faculty.Label,"; ").Substring(13))),
(JOIN(Parameters!Faculty.Label,"; "))), "Multiple") 

一度に5つまでしか表示しないようにチェックを入れました。それ以外は「複数」と表示されます。「全学部;」はスペースを含めて13文字なので、 Substring(13) にしました。

上記の解決策は最初は機能しましたが、文字列が 14 文字未満の場合 (IIF が原因で) 失敗しました。あなたは私を正しい軌道に乗せ、かなりエレガントな解決策を思いつきました:

Switch(Parameters!Faculty.Count > 5, "Multiple Selected",
Parameters!Faculty.Count <= 5,
Replace((JOIN(Parameters!Faculty.Label,"; ")),"All Faculty; ",
""))'code'
于 2012-10-31T20:42:43.047 に答える