2017-09-07 3 views
0

J'ai deux champs de date dans mon ensemble de données. Ils sont intitulés OperativeA et OperativeB et sont remplis en fonction de la personne à laquelle un travail a été affecté. Les utilisateurs pourront uniquement ajouter une date à l'un des champs de sorte que seulement 1 des champs de date sera utilisé, ce qui signifie que lorsque j'exécute le rapport, le champ de date qui n'est pas utilisé est vide.Instruction IIf pour combiner deux champs de date dans le générateur de rapports

J'essaye d'écrire un champ calculé de sorte que si les deux champs de date sont vides alors il montre comme "non assigné" sinon montre l'opérateur auquel il a été assigné. OperativeA ou OperativeB.

Jusqu'à présent, je l'ai créé 2 fieds calculées:

= IIF (IsNothing (champs OperativeA.Value), "Unassigned", Champs OperativeA.Value!)

= IIF (IsNothing (Les champs ! OperativeB.Value), "Unassigned", Fields! OperativeB.Value)

Cela fonctionne mais je n'ai pas vraiment réalisé quelque chose car j'ai encore 2 champs!

Je suis en train de lutter 2 combiner ces de sorte que j'ai seulement 1 champ qui montre "non affecté" ou l'un des agents.

Quelqu'un at-il des conseils qui m'aideraient à atteindre le 1 domaine?

Un grand merci

Répondre

0

Personnellement, je le faire sur le serveur si possible (je suppose que SQL Server ici). Il serait aussi simple que

SELECT 
    COALESCE(OperativeA, OperativeB, 'Unassigned') AS myCalcField 
    , myOtherFields 
    FROM myTable 

Si vous avez vraiment de le faire dans SSRS alors vous aurez besoin de quelque chose comme

=SWITCH (
     Len(Fields!OperativeA.Value) >0 , Fields!OperativeA.Value, 
     Len(Fields!OperativeB.Value) >0 , Fields!OperativeB.Value, 
     True, "Unassigned" 
     ) 

Vous pouvez utiliser une instruction IIF imbriqué pour obtenir le même résultat, mais INTERRUPTEUR est généralement plus propre et plus facile à lire. Les instructions SWITCH s'arrêtent à la première expression qui renvoie True. Nous vérifions donc si A contient quelque chose, si nous retournons A, si nous ne vérifions pas B et finalement si tout le reste échoue, l'expression finale True retournera vraisemblablement vrai pour que la dernière valeur soit retournée (La dernière paire expression/valeur fait office de ' autre').

+0

Merci à vous qui m'avez donné exactement ce dont j'avais besoin. cela sera utile pour les futurs rapports aussi. – Freddie