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

如果只是两个 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 回答