5

SSRS (VS2008) を使用して、作業指示書のレポートを作成しています。レポートテーブルの詳細行には、次の列があります (いくつかの偽のデータがあります)

WONUM  |  A  |  B  | Hours
ABC123 |  3  |  0  |   3
SPECIAL|  0  |  6  |   6
DEF456 |  5  |  0  |   5
GHI789 |  4  |  0  |   4
OTHER  |  0  |  2  |   2

ご覧のとおり、すべての作業指示には作業指示番号 (WONUM) と合計時間数 (HOURS) があります。WONUM に基づいて、時間を列 A または列 B に入れる必要があります。具体的に名前が付けられた作業指示書のリストがあります (例では、「SPECIAL」と「OTHER」になります)。これにより、HOURS 値が列 B に入れられます。WONUM が特別な名前の作業指示書でない場合、それは列Aに入ります。列Aと列Bの式として入れたいのは次のとおりです。

Column A: =IIF(Fields!WONUM.Value IN ("SPECIAL","OTHER"), 0, Fields!Hours.Value)
Column B: =IIF(Fields!WONUM.Value IN ("SPECIAL","OTHER"), Fields!Hours.Value, 0)

しかし、おそらくご存知のように、Fields!WONUM.Value IN ("SPECIAL","OTHER")これを行う有効な方法ではありません! これを機能させる最良の方法は何ですか?他の理由でSQLクエリでフラグを立てることはできないため、テーブルで行う必要があります。

事前にすべての助けに感謝します!

4

2 に答える 2

5

これを試してください(InStr()関数を使用)

IIF(InStr(Fields!WONUM.Value,"SPECIAL")>0 OR InStr(Fields!WONUM.Value,"OTHER")>0, 0, Fields!Hours.Value)

IIF(InStr(Fields!WONUM.Value,"SPECIAL")>0 OR InStr(Fields!WONUM.Value,"OTHER")>0, Fields!Hours.Value,0)
于 2013-05-10T08:57:41.090 に答える
2

2 つの WONUM だけの場合は、次のようにすることができます。

列 A:

=IIF((Fields!WONUM.Value <> "SPECIAL") AND (Fields!WONUM.Value <> "OTHER"), Fields!Hours.Value, 0)

列 B:

=IIF((Fields!WONUM.Value = "SPECIAL") OR (Fields!WONUM.Value = "OTHER"), Fields!Hours.Value, 0)

または、一貫性を保つために各列で同じ式を使用し、最後のフィールド/0 を交換します。

于 2012-06-28T02:15:10.757 に答える