Affichage des articles dont le libellé est REPORTING SERVICES. Afficher tous les articles
Affichage des articles dont le libellé est REPORTING SERVICES. Afficher tous les articles

26 mars 2008

Reporting Services 2008: Tablix - les regroupements

Outre les regroupements "parents/enfants", le tablix introduit la notion de groupes adjacents:

Il est donc désormais possible d'obtenir facilement le résultat suivant:

Reporting Services 2008: Tablix - les totaux

Voici le premier message d'une série d'articles consacrés aux nouveautés du composant Tablix de SSRS 2008 par rapport aux tableaux et matrices de la version 2005.

Dans Reporting Services 2005, la matrice ne permettait pas de créer plusieurs sous-totaux à un niveau de regroupement donné. En outre, le total se plaçait obligatoirement en fin de ligne ou de colonne.

Le Tablix permet désormais d'ajouter autant de totaux que l'on souhaite et de pouvoir placer ceux-ci avant ou après les éléments du groupe courant:


Il est donc désormais possible d'obtenir ce type de résultat, impossible à realiser en 2005 sans superposer plusieurs matrices:

12 décembre 2007

Reporting Services: L'avenir du Report Builder

Brian Welcker, membre de l'équipe de développement SSRS, nous permet enfin de voir clair dans la forêt des outils qui seront proposés par Reporting Services 2008.

En résumé, le Report Builder a vocation à disparaître pour être remplacé par le nouveau Report Designer à la sauce Office 12. Ce dernier intègrera l'ensemble des fonctionnalités disponibles dans le concepteur de rapport Visual Studio 2008.

Néanmoins le Report Builder actuel sera toujours disponible dans SQL Server 2008 pour laisser le temps aux refractaires de se mettre à la page!

Plus de détails dans cet article: http://blogs.msdn.com/bwelcker/archive/2007/12/11/transmissions-from-the-satellite-heart-what-s-up-with-report-builder.aspx

11 décembre 2007

Reporting Services: Interrogation de listes Sharepoint

Intégrer des rapports SSRS dans MOSS ou WSS, c'est facile... Interroger du contenu Sharepoint depuis un rapport SSRS, c'est une autre histoire. Etrange d'ailleurs que MS ne propose pas de connecteur permettant de le faire nativement.
Le truc consiste donc à interroger les webservices mis à disposition par Sharepoint pour arriver au résultat escompté.

Voici donc la marche à suivre:

    Dans la source de données, utiliser le connecteur XML en précisant l'URL d'accès au Webservice Lists.asmx de votre serveur Sharepoint.

Dans les informations d'identifications, seules les options utiliser l'authentification Windows et Ne pas demander les informations d'identification sont utilisables. Il convient donc de s'assurer que l'utilisateur qui exécute le rapport dispose des droits nécessaires pour interroger le contenu Sharepoint.

Voyons en premier lieu comment créer un dataset basé sur cette source de données qui interroge la méthode GetListCollection. Cette dernière permet de lister les bibliothèques de documents disponibles.
<Query>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap" Name="GetListCollection" />
</Query>

Pour obtenir le détail du contenu d'une de ces listes, c'est la méthode GetListItems qu'il faut interroger. Celle-ci prend en entrée les paramètres listName (guid ou nom d'une liste) et viewName (guid d'une vue, vue par défaut si null).

<Query>
<Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems"/>
<SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
<Parameters>
<Parameter Name="listName">
<DefaultValue>/</DefaultValue>
</Parameter>
<Parameter Name="viewName">
<DefaultValue>/</DefaultValue>
</Parameter>
</Parameters>
</Query>

Ne pas oublier de créer les deux paramètres correspondant dans le dataset. Si ceux-ci n'existent pas, la requête ne fonctionnera pas.

On peut maintenant tester l'exécution de la requête. On commence par renseigner les valeurs des paramètres.

Et voilà le résultat!


07 décembre 2007

Reporting Services: Astuce pour gérer les totaux d'une matrice

Une question qui revient souvent sur SSRS: comment utiliser des formules différentes dans les lignes de détail et le total d'une matrice ? La réponse se trouve dans l'utilisation de la fonction InScope().

Prenons une matrice qui nous affiche un total des ventes par clients (en ligne). Celle-ci se présente par défaut comme suit:

L'affichage qui en résulte est le suivant:


Le total utilise donc la même formule que les lignes de détail, à savoir une somme sur les montants.

Nous pourrions imaginer vouloir afficher une moyenne plutôt qu'un somme dans cette zone.
Notre regroupement sur les comptes clients se nommant grpAccountNumber, il faut modifier l'expression de la zone de texte affichant les données comme suit:
=Iif(InScope("grpAccountNumber"),Sum(Fields!TotalDue.Value),Avg(Fields!TotalDue.Value))

Voilà le résultat obtenu:


Cette exemple peut se décliner à volonté pour permettre de différencier les différents niveaux de regroupement par exemple.

A noter que tout ceci sera obsolète avec l'apparition de l'objet Tablix dans le Report Deisgner de SQL Server 2008 qui permettra une plus grande souplesse dans la gestion des matrices.

02 juillet 2007

Reporting Services: Ecran bleu à l'impression d'un rapport

Lors de l'utilisation du bouton d'impression intégré au portail Reporting Services, certains d'entre vous ont peut être eu la désagréable surprise d'obtenir un écran bleu et de devoir rebooter la machine.

Microsoft a sorti un pach qui permet de résoudre ce bug:
http://support.microsoft.com/Default.aspx?kbid=935843

19 juin 2007

Reporting Services: Bug du sélecteur de date

Je vous fais part d'un bug que j'avais constaté chez un client le mois dernier: dans un rapport prenant en entrée un paramètre de type date:
- Aucun souci lorsque l'on consulte celui-ci via le portail RS.
- En utilisant la WebPart "visionneuse de rapport" pour SharePoint, le sélecteur de date renvoyait toujours une date au format US, forçant l'utilisateur à modifier celle-ci manuellement :(

Pour faire simple, cela fonctionnait lorsque l'on passait par le répertoire virtuel "Reports" pour attaquer le rapport. Par contre, bug sur le format de date en passant par "ReportServer".

Et bien, bonne nouvelle, le dernier correctif apporté à SQL Server 2005 résout ce bug:
http://support.microsoft.com/?kbid=936305 :)

Il n'est pas téléchargeable directement, vous devez passer par le support pour l'obtenir.

31 mai 2007

Reporting Services: Best Practices

Un article très intéressant de nos collègues australiens de chez SSW qui regroupe un ensemble de bonnes pratiques relatives à l'utilisation de Reporting Services 2005: http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterSQLReportingServices.aspx

16 avril 2007

Reporting Services et SAP BW (IV) : Hiérarchie de présentation

Le query designer du Bex permet d'obtenir une hiérarchie de présentation lors de la génération des résultats d'une query:

Le code MDX généré par Reporting Services ne permet pas d'obtenir directement ce type de présentation. Dans ce cas de figure, il faut donc parfois effectuer 2 requêtes:

  • une pour l'obtention des données.
  • une pour l'obtention de la hiérarchie.

13 avril 2007

Reporting Services et SAP BW (III) : Condition sur une query

Dans le query designer du Bex, il est possible de définir des conditions sur des requêtes BW :


Or, le connecteur SAP Reporting Services ne rapatrie pas ce type d'information. Un filtre doit donc être positionné directement au niveau du dataset attaquant la query afin de renvoyer un jeu de données correct :



11 avril 2007

Reporting Services et SAP BW (II) : Inversion des signes

Le query designer du Bex permet de spécifier une inversion des signes sur les ratios.

Or cette propriété n'est pas récupérée par le connecteur Reporting Services pour SAP BW.


Afin que votre rapport renvoie les même données que la query BW, il faut donc, pour chaque ratio concerné, créer un nouveau champ calculé dans votre dataset RS ayant pour valeur l'inverse de la mesure en question.


Autre possibilité, inverser le signe de l'indicateur lors de chaque appel à celui-ci dans le rapport. C'est vous qui voyez!



28 mars 2007

Reporting Services et SAP BW (I) : Activer le connecteur

Le connecteur SAP pour Reporting Services est installé sur les postes de développement et sur les serveurs lors de l’installation du SP1 de SQL SERVER 2005.

Néanmoins, ce type de source de données doit être activé manuellement sur le serveur de rapports.
Pour ce faire, éditer le fichier « rsreportserver.config », dans la section <data>, rajouter la ligne suivante :

<Extension Name="SAPBW" Type="Microsoft.ReportingServices.DataExtensions.SapBw.SapBwConnection,Microsoft.ReportingServices.DataExtensions.SapBw"/>

Pour valider que ce paramétrage a correctement été pris en compte, créer une nouvelle source de données sur le portail du serveur de rapports. Le type de connexion « SAP NetWeaver BI » doit désormais apparaître dans la liste de sélection :

27 mars 2007

Reporting Services: RS Scripter

Reporting Services dispose d'un language de script permettant d'effectuer l'ensemble des opérations d'administration sur le serveur de rapport.
La prise en main de ce language n'étant pas aisée, rien de tel qu'un outil nous facilitant la vie.
L'application RSS Scripter offre la possibilité de générer des scripts permettant de transférer des objets RS d'un serveur à un autre, voire dans différents répertoires sur un même serveur:
RS Scripter

26 mars 2007

Reporting Services: Les graphiques

La gestion des graphiques via Reporting Services n'est pas très détaillée dans les BOL SQL Server.
Cet excellent article va vous permettre de vous familiariser en avec l'utilisation de ces outils:
Get More Out of SQL Server Reporting Services Charts

23 mars 2007

Reporting Services: Architectures et Performances

Un papier technique publié chez Microsoft qui compare les performances de différentes implémentations d'architectures pour Reporting Services:
Planning for Scalability and Performance with Reporting Services

05 avril 2006

Reporting Services: Implémentation de la sécurité dans les modèles de rapports

La mise en ouvre de la sécurité dans les modèles de rapports pour le ReportBuilder est une problématique récurrente.
L'article ci-dessous fournit un bon résumé de ce qu'il est possible de faire en la matière:
Le blog de Bob Meyers

09 février 2006

Reporting Services: Problèmes avec Symantec AntiVirus 10

Suite à l'installation de Symantec AntiVirus 10 sur un serveur RS de production, j'ai récemment rencontré le problème suivant: les destinataires d'un certain nombre d'abonnements ne recevaient plus leurs messages. Or ces souscriptions étaient affichées comme s'étant exécutées avec succès sur le portail et les logs RS ne présentaient aucune anomalie.
Pour régler ce souci, il a fallu désactiver l'option "Internet E-mail Auto-Protect" dans les options de configuration de l'antivirus.

08 février 2006

Reporting Services: Régler les problèmes de lenteurs

Vous avez sûrement constaté des problèmes de lenteur dans Reporting Services lorsque vous vous connectez sur le portail la première fois le matin ou après un "certain" laps de temps.
Un simple paramétrage de IIS vous permettra de passer outre cette gêne, il vous suffit de suivre les instructions ci-dessous:
If you are running Windows 2003 server for your IIS reportserver, then this is a simple issue - I'll explain what happens: The report service engine, once it is idle for more than the default 20 minutes, the worker process is shutdown. This is controlled by IIS.
Open up the Internet Information Services (IIS) Manager. Expand the server node then the application pools. On my IIS machine, I created an application pool dedicated to the reportserver & reportmanager virtual webs. But anyways, for the application pool that the reportserver is pointing to if you left everything to their defaults will be the DefaultAppPool. Right click the default app pool and select properties. There are two things that are checked by default - On the recycling tab there is a checkbox for recycling worker processes - it is currently set to 1740 minutes (29 hours). Leave it. The other one is on the performance tab - which is the one you are interested in changing.... See the "Idle Timeout" section and increase the number of minutes to be 8 hours a typical working day - 8*60 = 480 minutes.
Next, to be sure the "morning person" that runs the first report doesn't get the delay, set up a schedule for either a dummy or adhoc report to fire off like at 6am so that the report component worker processes get loaded.