2013-05-06 9 views
2

Je crée un rapport dans SSRS. Ma requête de dataset me renvoie plusieurs sorties et je les montre dans le rapport dans chaque nouvel enregistrement de nouvelle ligne.Comment vérifier Si la valeur est numérique Dans SSRS

Voici la requête. Maintenant, je veux vérifier si la valeur retournée est numérique ou non. Voici mon expression.

=Join(LookupSet(Fields!QuestionId.Value, Fields!QuestionID.Value, 
Fields!ScalarValue.Value, "myResponse"), Constants.VbCrLf) 

I Tried travaillant sur IIF (IsNumeric ...) mais il me renvoie plusieurs résultats, il ne me permet pas de format. Je veux mettre en forme deux 2 décimales si la sortie est numérique.

Répondre

3

IsNumeric est utile ici, mais le problème avec IIf est qu'il n'y a pas de court-circuit, donc vous risquez de rencontrer des erreurs si vous lancez des données. Par exemple, si vous utilisez CDec pour permettre l'application d'une mise en forme numérique à une chaîne, elle s'appliquera dans tous les cas et déclenchera une erreur si la chaîne n'est pas numérique.

Un moyen sûr de le faire est de créer une simple fonction de code personnalisé pour gérer la mise en forme et l'utiliser dans l'expression LookupSet.

donc ajouter du code personnalisé au rapport comme:

Public Function FormattedString(ByVal st as String) as String 

    If IsNumeric(st) 

     Return Format(CDec(st), "N2") 

    End If 

    Return st 

End Function 

Et changer votre expression d'utiliser cette nouvelle fonction FormattedString:

=Join(LookupSet(Fields!QuestionId.Value, Fields!QuestionID.Value, 
Code.FormattedString(Fields!ScalarValue.Value), "myResponse"), Constants.VbCrLf) 

Je l'ai testé contre les données suivantes:

enter image description here

Une simple ta ble avec l'expression ci-dessus semble que nécessaire:

enter image description here

Il travaille pour moi contre un mélange de données - vous pouvez changer la logique de formatage dans le code personnalisé selon les besoins.

+1

Merci beaucoup. :) Cela a fonctionné comme un charme .. J'apprécie vraiment votre aide. – Moiz

+0

Vous êtes les bienvenus, heureux que cela a aidé. –

Questions connexes