2009-06-16 14 views
8

In un rapporto rdlc voglio confrontare interi comerdlc expression iif usa?

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

Qual è la sintassi per questo?

risposta

6

Si dovrà dichiarazioni IIF nido come questo:

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

thannks ora se voglio confrontare stringa, allora? cosa devo fare ... come int Totale = 0 if (espressione == "Buono") quindi TotalIncrease – Shamim

+0

Non puoi avere variabili in questo senso. Nidificare "IIF" all'interno di una SUM o qualche altro tipo di funzione di aggregazione ... = Sum (IIF (expression = "Good", 1, 0)). Qualcosa in questo senso. –

37

Invece di utilizzare nidificati IIF dichiarazioni preferisco il switch dichiarazione.

da MSDN ...

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

Speranza che aiuta :)

+0

Ora ho un altro problema spero che tu mi aiuti ... Ho tre tipo di scheda LIKE: BUONA, RIMOSSA, NON TERRENO ..... voglio un rapporto su rdlc che mi mostra come tipo di scheda come sotto Thana Good Removed NotFound A 5 2 4 B 4 1 0 come posso fare che – Shamim

+0

Non sono completamente sicuro di cosa intendi? Puoi riformulare la domanda in qualsiasi modo, il tuo esempio ha perso la sua formattazione perché è un commento. –

1

Questa è la sintassi per il vostro requisito:

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

Nella vera parte è possibile specificare il dichiarazione da eseguire.

1

Utilizzare invece l'interruttore. So che sono arrivato in ritardo qui, ma spero che possa aiutare qualcuno.

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

1 = 1 si riferisce al valore predefinito nel caso di commutazione.

È simile come

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