Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssrs 2008 检查字段值是否在SSRS报告中的字符串列表中_Ssrs 2008_Reporting Services_Ssrs Tablix - Fatal编程技术网

Ssrs 2008 检查字段值是否在SSRS报告中的字符串列表中

Ssrs 2008 检查字段值是否在SSRS报告中的字符串列表中,ssrs-2008,reporting-services,ssrs-tablix,Ssrs 2008,Reporting Services,Ssrs Tablix,我正在使用SSRS(VS2008)并创建一个工单报告。在报告表的详细信息行中,我有以下列(带有一些虚假数据) 正如您所看到的,所有工作单都有一个工作单编号(WONUM)以及总小时数(小时)。我需要根据WONUM将时间分为A列或B列。我有一个特别命名的工作单列表(在本例中,它们将是“特殊”和“其他”),这将导致将小时值放在B列中。如果WONUM不是一个特殊命名的工作单,那么它将放在a列中。下面是我想放在a列和B列中的表达式: Column A: =IIF(Fields!WONUM.Value IN

我正在使用SSRS(VS2008)并创建一个工单报告。在报告表的详细信息行中,我有以下列(带有一些虚假数据)

正如您所看到的,所有工作单都有一个工作单编号(WONUM)以及总小时数(小时)。我需要根据WONUM将时间分为A列或B列。我有一个特别命名的工作单列表(在本例中,它们将是“特殊”和“其他”),这将导致将小时值放在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)
但正如您可能知道的,
字段!“特殊”、“其他”中的WONUM.Value
不是执行此操作的有效方法!什么是最好的方式使这项工作?由于其他原因,我无法在SQL查询中以任何其他方式标记它,因此必须在表中进行标记


提前感谢您的帮助

如果只有两个WONUMs,那么您可以这样做:

A栏:

=IIF((Fields!WONUM.Value <> "SPECIAL") AND (Fields!WONUM.Value <> "OTHER"), Fields!Hours.Value, 0)
或者在每列中使用相同的公式以保持一致性,并在结尾处交换字段/0。

尝试此操作(使用InStr()函数)


如果你只是想过滤掉两个wonum,你有什么理由不能在IIf声明中使用OR吗?谢谢你的另一个选择。我在报告中使用了Chris Latta的答案。如果你的答案超过2个会怎么样?没有“IN”等价物?根据您的需求,您可以做一些事情,例如使用
IndexOf
。如果你有一个特定的问题,你应该把它作为一个新问题来问,我们可以在那里解决。我将我的逻辑移到了SQL IN语句中,以帮助简化SSRS逻辑。如果可能的话,通常最好让SQL为你做一些繁重的工作。
=IIF((Fields!WONUM.Value <> "SPECIAL") AND (Fields!WONUM.Value <> "OTHER"), Fields!Hours.Value, 0)
=IIF((Fields!WONUM.Value = "SPECIAL") OR (Fields!WONUM.Value = "OTHER"), Fields!Hours.Value, 0)
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)