2013-06-01 5 views
0

Je travaille avec SQL Server Reporting Services 2005.Reporting services, message textbox

J'ai un rapport avec un jeu de données qui obtient des données à partir d'une base de données SQL Server. En outre, j'ai deux paramètres de rapport de type DateTime (StartDate_param et EndDate_param) que l'utilisateur sélectionne sur le rapport.

J'ai mis une restriction si l'utilisateur choisit des dates avec différents mois, par exemple juin 1 et 3 mai, le processus arrête:

J'ai ce code sur les Propriétés du rapport ----- __gVirt_NP_NN_NNPS<__ article du Code gérer la restriction:

Public Function ValidateDate(StartDate As DateTime, EndDate As DateTime) As DateTime 

    If (DateDiff(DateInterval.Month, StartDate, EndDate) <> 0) Then 

     Err.Raise(6,Report) 

    End If 

End Function 

et j'ai mis un paramètre caché CheckDateRange qui appelle la fonction validateDate avec cette expression:

= Code.ValidateDate(Parameters!StartDate_param .Value, Parameters!EndDate_param .Value) 

Thi s arrête le traitement SQL et j'obtiens cette erreur lors de la saisie des dates avec différents mois:

Erreur lors du traitement du paramètre de rapport « CheckDateRange »

Mais je voudrais montrer un message sur une zone de texte au lieu du message qui montre maintenant, comment puis-je faire cela?

Si ce n'est pas possible, que puis-je faire dans ce cas?

merci ..

Répondre

1

Qu'en est-il au lieu d'arrêter le processus, juste montrer un autre à l'utilisateur « rapport ». Ce rapport d'erreur contient le message d'erreur que vous souhaitez afficher à l'utilisateur. Vous devez alors simplement définir la visibilité conditionnelle des rapports en fonction de l'évaluation des paramètres, vous pouvez également modifier le SQL de votre rapport "réel" afin qu'il ne s'exécute même pas lorsque les paramètres d'erreur sont donnés par l'utilisateur (ceci empêcherait de faire une requête désormais inutile car ces données ne seront pas affichées). Par conséquent, si votre rapport est maintenant un tableau matriciel, la visibilité du tableau peut être masquée lorsque les paramètres d'erreur sont donnés. Ensuite, créez une zone de texte en dehors de ce tableau qui stockera votre message d'erreur et donnez-lui la logique de condition de visibilité opposée. Ensuite, modifiez la requête SQL afin qu'elle renvoie simplement une ligne null lorsque les paramètres d'erreur sont donnés.