2011-11-03 17 views
5

No pude conseguir que esta expresión funcione con los servicios de informes. Tengo que usar la instrucción IF y ELSE IF. Gracias por cualquier sugerencia.Expresión de servicios de informes mediante el interruptor

= Switch(IsNothing(Fields!field_date.Value),"", Fields!set_flag.Value=1,"Declined", Fields!field_name.Value) 

Esto es lo que estoy tratando de hacer.

If(IsNothing(Fields!field_date.Value)) Then ""; 

ElseIf Fields!set_flag.Value=1 Then "Declined"; 

Else Fields!field_name.Value 
+0

¿Qué error obtienes con la instrucción switch? –

Respuesta

7

¿No usa SSRS la biblioteca VB Runtime? En cuyo caso, la instrucción switch es documented here y establece que debe tener incluso número de elementos pasados. Si este es su problema, probablemente obtenga un ArgumentException lanzado.

Si usted quiere tener un valor de retorno por defecto, habría que agregar una condición ficticia que siempre se evalúa como verdadera:

= Switch(IsNothing(Fields!field_date.Value),"", Fields!set_flag.Value=1,"Declined", True, Fields!field_name.Value) 
+0

Señor, por alguna razón, la expresión no funciona. – nav100

+0

¿Cuál es el error? –

+0

No está arrojando ningún error. Todavía puedo ver que el nombre del campo se muestra a pesar de que set_flag = 1. – nav100

0

me gustaría utilizar un bloque de código como gbn sugirió. Será más fácil de leer Aquí hay una guía de Microsoft sobre los bloques de código usados ​​en Reporting Services: http://msdn.microsoft.com/en-us/library/ms156028%28v=sql.100%29.aspx

Si no desea utilizar un bloque de código, puede encadenar las sentencias IIF en su expresión. En cuanto a su ejemplo sería algo así como

=IIF(IsNothing(Fields!field_date.Value),"",IIF(Fields!set_flag.Value=1,"Declined",Fields!field_name.Value) 

Cualquier más de 2 IIF o algo más complejo que simplemente devuelve un valor, entonces me gustaría ir para un bloque de código. De lo contrario, lo está haciendo mucho peor para la persona que tiene que mantener el informe después de usted.

+0

Estoy obteniendo el error si uso múltiples IIF. – nav100

Cuestiones relacionadas