2015-02-11 52 views
-1

我有一个水晶报告,我正在转换成SSRS,并且有一个重要的函数具有多个ELSE IF语句。有没有办法让这个在ssrs中工作?如果声明与其他多个if语句在ssrs

IF ({Command.FOLDERTYPE}= 'PC' and 
//1950 - SUB - MAJ FACILITIES SUBDIVISION, 1260 - SUBDIVISION 
({Command.SUBCODE} = 1950) or {Command.SUBCODE} = 1260) 
OR (({Command.FOLDERTYPE} = 'GD' and {Command.SUBCODE} = 900) //900 - Public Construction 
or ({Command.FOLDERTYPE} = 'WA' and {Command.SUBCODE} = 900) 
or ({Command.FOLDERTYPE} = 'SS' and {Command.SUBCODE} = 900) 
or ({Command.FOLDERTYPE} = 'SD' and {Command.SUBCODE} = 900) 
or ({Command.FOLDERTYPE} = 'ST' and {Command.SUBCODE} = 900)) THEN 
'Subdivision' 
ELSE IF ({Command.FOLDERTYPE} = 'CO') 
OR (({Command.FOLDERTYPE} = 'WA' and {@SubtypeCommercial} = true) 
or ({Command.FOLDERTYPE} = 'SS' and {@SubtypeCommercial} = true) 
or ({Command.FOLDERTYPE} = 'SD' and {@SubtypeCommercial} = true) 
or ({Command.FOLDERTYPE} = 'ST' and {@SubtypeCommercial} = true) 
or ({Command.FOLDERTYPE} = 'PC' and {@SubtypeCommercial} = true) 
or ({Command.FOLDERTYPE} = 'GD' and {@SubtypeCommercial} = true)) THEN 
'Commercial' 
ELSE IF ({Command.FOLDERTYPE} = 'SF') 
OR (({Command.FOLDERTYPE} = 'WA' and {Command.SUBCODE} = 1210) //1210 - singe family 
or ({Command.FOLDERTYPE} = 'SS' and {Command.SUBCODE} = 1210) 
or ({Command.FOLDERTYPE} = 'SD' and {Command.SUBCODE} = 1210) 
or ({Command.FOLDERTYPE} = 'ST' and {Command.SUBCODE} = 1210) 
or ({Command.FOLDERTYPE} = 'GD' and {Command.SUBCODE} = 1210)) THEN 
'Single Family' 
ELSE IF {Command.FOLDERTYPE} = 'II' OR ({Command.FOLDERTYPE} = 'FR') THEN 
'Miscellaneous' 
ELSE IF {Command.FOLDERTYPE} = 'GD' THEN 
'Grading Permit - No subtype' 
+0

查看SSRS中的SWITCH语句。 – 2015-02-11 19:27:57

+0

我会建议你在SQL查询本身中调整所有条件。并从数据库中获取所有格式化和计算的数据。如果这不在你的手中,那么使用'CASE',因为在这种情况下,将比'IIF'更容易跟踪。 – 2015-02-12 06:37:03

回答

1

是的,最简单的方法是在表达式中嵌套IIF:

=iif([first condition], [result if true], iif([second condition], [result if first condition not true, and 2nd is true], [result if neither are true)) 

这只是两个条件是很明显,但可以继续窝IIF以同样的方式超出了陈述。