2010-06-22 10 views
0

J'utilise Visual Studio pour créer un rapport. J'ai un problème pour obtenir la valeur appropriée dans un champ de texte. Bare avec moi, parce que je suis nouveau à l'aide de Report Designer.Générateur de rapports Sélectionnez la valeur appropriée

J'ai un DataSet avec ces valeurs:
InfoPathFormsWorkflow
AvgProcessTime_Sum
AvgProcessTime_Count

Ce DataSet aura seulement 1 ou 2 valeurs en elle. Il est rempli par un formulaire InfoPath (les valeurs du DataSet sont toutes exactes et fonctionnelles).

InfoPathFormsWorkflow est soit "Close" soit "Open". J'ai actuellement 2 champs de texte avec ces expressions:

=IIF(Fields!InfoPathFormsWorkflow.Value = "Closed",Fields!AvgProcessTime_Sum.Value/Fields!AvgProcessTime_Count.Value,"No Value") 

=IIF(Fields!InfoPathFormsWorkflow.Value = "Open",Fields!AvgProcessTime_Sum.Value/Fields!AvgProcessTime_Count.Value,"No Value") 

Lorsque le DataSet a seulement 1 valeur (soit avec « Ouvrir » ou « Fermer ») ce champ de texte affiche correctement, mais lorsque le DataSet a 2 valeurs (les deux entrées "Fermer" et "Ouvrir") alors seulement la première s'affichera correctement et la seconde affichera "Aucune valeur". Donc, si la première ligne a InfoPathFormsWorkflow.value = "Close" alors cela fonctionnera mais le "Open" ne le sera pas. Ou vice versa.

Y a-t-il un truc pour sélectionner l'entrée de la ligne de droite? J'ai lu un peu sur l'utilisation des paramètres, mais je ne peux pas sembler comprendre comment cela fonctionne. Toute aide est la bienvenue! Cela m'a été remis après qu'un autre travailleur y ait passé 80 heures. Je préférerais que ça marche plus vite que ça! Merci

Répondre

1

Ce sont TextFields à l'intérieur ou à l'extérieur de votre Tablix?

S'ils sont dehors, ce qui me semble être le cas (bien que je pense que cette expression ne devrait pas fonctionner du tout, alors peut-être que je me trompe ...), cela devient un peu compliqué , mais il est encore tout à fait possible (si vous avez seulement ces deux lignes):

pour le TextField Fermé:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed", 
    First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName")/
     First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"), 
    IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed", 
     Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName")/
      Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName") 
     "No Value" 
    ) 
) 

de même pour le TextField Ouvert:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open", 
    First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName")/
     First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"), 
    IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open", 
     Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName")/
      Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName") 
     "No Value" 
    ) 
) 

Si vous vouliez quelque chose de différent, faites le moi savoir. Report Services est un peu têtu de rendre les choses faciles parfois, mais la plupart des choses peuvent finalement être faites pour se comporter comme prévu avec la bonne (longue) expression.

+0

Eh bien, cela aurait fonctionné parfaitement, mais il s'avère qu'il y a plusieurs pages. Je n'ai pas remarqué ça avant. Ce qui signifie qu'il y a plus de 2 lignes au total, mais pas par page. Donc, je viens de sortir le paramètre Scope de la première et des dernières afin qu'il tire de l'ensemble de données après qu'il a été groupé/trié. Cela a semblé fonctionner très bien! Merci! –