D.R*_*.R. 5 reporting-services ssrs-2008 ssrs-tablix
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,所有工作订单都有一个工作订单编号 (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)
Run Code Online (Sandbox Code Playgroud)
但正如您可能知道的那样,Fields!WONUM.Value IN ("SPECIAL","OTHER")这不是执行此操作的有效方法!完成这项工作的最佳方法是什么?由于其他原因,我无法在 SQL 查询中以任何其他方式标记它,因此它必须在表中完成。
预先感谢您的任何和所有帮助!
小智 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)
Run Code Online (Sandbox Code Playgroud)
如果只是两个 WONUM 那么你可以这样做:
A 栏:
=IIF((Fields!WONUM.Value <> "SPECIAL") AND (Fields!WONUM.Value <> "OTHER"), Fields!Hours.Value, 0)
Run Code Online (Sandbox Code Playgroud)
B 栏:
=IIF((Fields!WONUM.Value = "SPECIAL") OR (Fields!WONUM.Value = "OTHER"), Fields!Hours.Value, 0)
Run Code Online (Sandbox Code Playgroud)
或者在每列中使用相同的公式以保持一致性,并在末尾交换字段/0。
| 归档时间: |
|
| 查看次数: |
33268 次 |
| 最近记录: |