0

SSRS 2012 で iif() ステートメントを使用すると、非常に奇妙なエラーが発生します。

月の値が99に等しくないときはいつでも月の名前を出力することを選択しようとしています.99に等しい場合は、文字列「YTD」を出力したいと思います.ステートメントを使用してこれを達成しようとしていました:

=iif(Fields!Month.Value = 99, "YTD", MonthName(Fields!Month.Value, true) )

この MonthName() 関数を使用しようとすると、月は正しく出力されますが、99 フィールドは "#error" として返されます。このステートメントは、月を整数のままにしておくか、単にダミーの文字列を入力した場合に正常に機能し、MonthName() を文字列としてキャストしようとしました (例: "cStr(MonthName())")。

何か案は???

4

2 に答える 2

2

私自身の質問に答える/マイクロソフトのフォーラムで Syed Qazafi Anjum から受け取った別の回答を引用するには:

=iif(Fields!Month.Value=99,"Y.T.D",monthname(iif(Fields!Month.Value<=12,Fields!Month.Value,12),true))

引用元: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/d484d8d4-3809-4850-ada6-8cac1239bfce/

于 2012-07-18T13:03:52.230 に答える
1

MonthName月数が 99 の場合でも関数が評価されます。これを修正するには、代わりに を使用しますswitchiif

于 2012-07-17T21:40:16.083 に答える