2010-06-30 17 views
1

J'ai un rapport SSRS qui est appelé par une page avec un objet ASP.Net ReportViewer. Le rapport prend des paramètres pour le filtrage. À l'heure actuelle, lorsque la page est appelée pour la première fois, il y a des valeurs par défaut dans les paramètres et la visionneuse décolle simplement et rend un rapport avec ces paramètres. Je pensais que ce serait un bon gain de temps, mais mon client se plaint que cela prend plusieurs secondes, donc ce que nous voulons faire maintenant, c'est d'attendre que j'appuie sur "View Report" avant de tenter de rendre quoi que ce soit.Comment faire pour que SSRS ReportViewer attende la saisie des paramètres avant le rendu?

Quelle est la meilleure approche? Non défini par défaut pour les paramètres? Définir le ShowReportBody sur false? Autre chose? On dirait que cela devrait être simple.

Répondre

2

Si vous supprimez le par défaut , le rapport ne s'affichera pas. Je pense que c'est ta seule option. Et aussi le plus simple.

Si certains clients aiment l'ancien comportement, vous pouvez fournir des valeurs par défaut pour certains utilisateurs. (IE, stockez un cookie de navigateur qui indique à votre page de fournir les valeurs par défaut si elles cochent une case à cocher "save defaults".)

+1

J'ai défini le ShowReportBody sur false dans le fichier ASPX au moment du design, puis je l'ai défini sur True par programmation dans le LoadDrawback sur les publications. J'ai cette idée d'ici: http://stackoverflow.com/questions/1573926/how-can-i-trap-view-report-in-reportviewer-webforms-for-ssrs –

0

Je suis d'accord avec la réponse de Tim. Mais dans mon cas NULL (pas de valeur par défaut) a été interprété comme une option dans la liste de valeurs qui est en train d'être chargée pour ce champ à partir de la base de données. Supprimer la valeur par défaut n'était donc pas suffisant. Ce qui m'a aidé était de définir la valeur par défaut à une valeur qui n'existe pas sciemment sur la liste de recherche chargée, dans mon cas "-1". Un GUID aléatoire devrait faire l'affaire dans la plupart des cas.