Bonjour à tous !
Au cours des différents ateliers et des formations que j'ai animés sur Reporting Services 2005, une question revient régulièrement : l'interopérabilité.
En effet, si Reporting Services est très bien intégré dans le monde .Net, notamment avec le composant ReportViewer, comment peut-on intégrer un rapport dans une page ASP classique ? Comment piloter Reporting Services depuis une simple FRAME ?
Si l'intégration de Reporting Services à travers l'URL du serveur de rapports est relativement simple, il n'en est en revanche pas de même pour les paramètres permettant de personnaliser l'affichage. Et rares sont les éléments de documentation à notre disposition. Je propose donc ici une sélection de paramètres utiles pour l'intégration de rapports Reporting Services dans des pages Web.
Créons par exemple le rapport "
Mon Rapport.rdl" que l'on stocke dans un nouveau répertoire "
Test" de notre serveur Reporting Services.
De façon à tester tous les paramètres, nous ajoutons un paramètre à notre rapport nommé "
DateDuJour".
Par défaut, l'URL
http://localhost/ReportServer?%2fTest%2fMon+Rapport me permet d'obtenir mon rapport - en partant bien entendu du postulat que le serveur de rapports se trouve bien à l'adresse
http://localhost/ReportServer et que le gestionnaire de rapports se situe à l'adresse
http://localhost/Reports.
Il est possible d'éviter à l'utilisateur d'avoir à saisir le paramètre en ajoutant la valeur du paramètre dans l'URL :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&DateDuJour=01/01/2007Cependant, le rendu obtenu présente toujours une lourde barre d'outils et permet à l'utilisateur de modifier selon sa volonté les paramètres du rapport.
Il existe en fait de nombreux paramètres permettant de personnaliser l'affichage de notre rapport. Nous en distinguons 2 grandes catégories :
- Les paramètres du serveur préfixés par le namespace rs,
- Les paramètres de rendu des composants préfixés par le namespace rc.
Voici donc les paramètres du serveur les plus utiles :
- rs:Command
Ce paramètre définit l'action menée par le serveur. Par défaut, la valeur de ce paramètre est définie à "
Render" pour les rapports et "
ListChildren" pour les dossiers.
On trouve également deux autres valeurs possibles de ce paramètre : "
GetRessourceContents" et "
GetDataSourceContents".
Si l'on spécifie ce paramètre, l'URL de notre rapport devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&DateDuJour=01/01/2007- rs:FormatLe format est sans aucun doute l'un des paramètres préférés des utilisateurs. Il permet en effet de définir le format du rendu parmi les formats existants (
HTML3.2,
HTML4.0,
HTMLOWC,
MHTML,
IMAGE,
EXCEL,
CSV,
PDF,
XML) ou d'autres extensions si elles sont disponibles sur le serveur.
Ainsi, si l'on souhaite obtenir notre rapport en PDF, l'URL de notre rapport devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rs:Format=PDF&DateDuJour=01/01/2007- rs:ParameterLanguageCe paramètre permet de s'affranchir de la culture du navigateur client en spécifiant une culture spécifique. La valeur par défaut est la valeur du navigateur client.
Nous pouvons par exemple forcer la culture de notre rapport en utilisant l'URL suivante :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rs:ParameterLanguage=fr-FR&DateDuJour=01/01/2007- rs:SnapshotLe paramètre Snapshot permet d'utiliser la capture d'un rapport effectuée à une date et une heure précises. Cette capture instantanée est stockée dans la base de données Reporting Services.
Ce paramètre reçoit une date longue sans timezone. Notre URL devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rs:Snapshot=2007-05-22T15:41:08Ce paramètre nécessite bien évidemment que l'historique du rapport soit activée.
- rs:ClearSessionCe paramètre permet de forcer le navigateur à vider son cache et à recharger une nouvelle version du rapport.
Dans notre cas, l'URL devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rs:ClearSession=true&DateDuJour=01/01/2007- rs:SessionIDUn paramètre qui permet d'identifier une session active lorsque le serveur de rapport n'utilise pas les cookies.
L'URL prend alors la forme suivante :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rs:SessionID=uwoits45rufhhg55f2i3hm55&DateDuJour=01/01/2007Etudions maintenant quelques paramètres de rendu utiles :
- rc:ToolbarCe paramètre permet d'afficher ou de cacher la totalité de la barre d'outils.
Par exemple, si nous souhaitons cacher la barre d'outils, notre URL devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rc:Toolbar=false&DateDuJour=01/01/2007La valeur par défaut est évidemment définie à "
true".
- rc:ParametersCe paramètre permet de ne cacher que la partie édition des paramètres du rapport de la barre d'outils. La valeur de ce paramètre n'a donc pas d'incidence si le précédent est défini à "
false".
Ainsi, si nous souhaitons que les paramètres du rapport restent figés, notre URL devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rc:Parameters=false&DateDuJour=01/01/2007La valeur par défaut est évidemment définie à "
true".
- rc:SectionCe paramètre permet d'afficher la page du rapport souhaitée. Par défaut, Reporting Services affiche la première page du rapport.
Pour afficher la deuxième page, nous écrivons :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rc:Section=2&DateDuJour=01/01/2007Ce paramètre est particulièrement utile si l'on souhaite développer sa propre barre d'outils.
- rc:ZoomIl s'agit d'un paramètre de rendu ne fonctionnant qu'avec les versions d'Internet Explorer 5.0 ou ultérieures.
Les valeurs possibles pour ce paramètre sont :
* "
page+width" pour occuper toute la largeur du navigateur,
* "
whole+page" pour optimiser l'espace dans le navigateur pour visualiser le rapport sur une seule page,
* un entier correspondant à un pourcentage ; la valeur par défaut est "
100".
- rc:LinkTargetUtile si votre rapport contient des hyperliens, ce paramètre permet de préciser la fenêtre ou la frame de destination des liens de votre rapport.
Les différentes valeurs possibles sont entre autres :
* "
_blank",
* "
_self",
* "
_parent",
* "
_top",
* Ou tout autre nom de cible valide.
- rc:FindString, rc:StartFind, rc:EndFindLe paramètre
rc:FindString permet de filtrer les enregistrements du rapport. Ce paramètre est souvent utilisé conjointement avec les paramètres
rc:StartFind et
rc:EndFind qui permettent de borner la recherche.
Par exemple, pour rechercher la chaîne de caractères "
Test" dans les 2 premières pages du rapport, l'URL sera :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rc:FindString=Test&rc:StartFind=1&rc:EndFind=2&DateDuJour=01/01/2007- rc:StylesheetLe dernier paramètre que je développerai dans ce post permet de définir une feuille de style à appliquer sur le rapport.
La feuille de style CSS doit être présente dans le répertoire des styles, par défaut :
C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\StylesPour appliquer la feuille de style "
MonStyle.css", l'URL devient :
http://localhost/ReportServer?%2fTest%2fMon+Rapport&rs:Command=Render&rc:Stylesheet=MonStyle&DateDuJour=01/01/2007On notera tout comme pour l'appel du rapport l'absence d'extension.
Je concluerai par le fait que la majeure partie des paramètres présentés ici sont valables dès les services packs de
Reporting Services 2000, et que par conséquent cet article ne s'adresse pas uniquement aux utilisateurs de
Reporting Services 2005.
A bientôt pour un autre article !