2009-06-16 50 views
8

En un informe rdlc quiero comparar números enteros comordlc expression iif use?

if(expression) 
{ 
    // do something 
} 
else if(expression) 
{ 
    // do something else 
} 

¿Cuál es la sintaxis para esto?

Respuesta

6

Tendrá que declaraciones IIF nido de esta manera:

= IIF (expression = 1, "Is 1", IIF (expression = 2, "Is 2")) 
+0

thannks ahora si quiero comparar cadena entonces? lo que hago ... como int Total = 0 if (expresión == "Bueno") luego TotalIncrease – Shamim

+0

No puede tener variables en ese sentido. Anidaría el 'IIF' dentro de una SUMA u otro tipo de función agregada ... = Suma (IIF (expresión = "Bueno", 1, 0)). Algo en esa línea. –

37

En lugar de utilizar anidados IIF declaraciones que prefieren el interruptor comunicado.

Desde el MSDN ...

=Switch(
    Fields!PctComplete.Value >= 10, "Green", 
    Fields!PctComplete.Value >= 1, "Blue", 
    Fields!PctComplete.Value = 1, "Yellow", 
    Fields!PctComplete.Value <= 0, "Red" 
    ) 

creo que sirve :)

+0

Gracias es el trabajo Ahora tengo otro problema espero que me ayude ... Tengo tres tableros de tipo ME GUSTA: BUENO, QUITADO, NOTFOIDO ..... quiero un informe sobre rdlc que me muestre el tipo de placa cantidad como a continuación Thana Good Removed NotFound A 5 2 4 B 4 1 0 ¿Cómo puedo hacer eso? – Shamim

+0

¿No estoy seguro de a qué se refiere? ¿Puede reformular la pregunta de alguna manera, su ejemplo ha perdido su formateo porque es un comentario. –

1

Ésta es la sintaxis para sus necesidades:

=IIf(CInt(Fields!expression1.value)==1,true,IIf(Cint(Fields!expression2.value)==2,true,nothing)) 

En la verdadera parte puede especificar el declaración a ser ejecutada.

1

Utilice el interruptor en su lugar. Sé que llegué tarde aquí, pero espero que pueda ayudar a alguien.

=Switch(Fields!Parameter.value = 2,"somethingnew", 1=1 ,"somethingelse") 

1 = 1 se refiere al valor predeterminado en la caja del interruptor.

Es similar como

if(Parameter.Value == 2) 
{ 
somethingnew 
} 
else 
{ 
somethingelse 
}