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

mercredi 21 avril 2010

SQL Server 2008 R2 passe en RTM

La nouvelle est tombée ce soir, SQL Server 2008 R2 est officiellement passé en RTM (Released To Manufacturing) aujourd'hui. Vous trouverez le communiqué de presse à l'adresse suivante.

http://www.microsoft.com/Presspass/press/2010/apr10/SQL08RTMPR.mspx

http://www.microsoft.com/presspass/presskits/sqlserver/

mardi 29 septembre 2009

Gemini: Un rapport SSRS comme source de données

Une fonctionnalité dont je n'ai pas parlé dans mes précédents billets mais qui est une originalité de Gemini: la possibilité d'utiliser un rapport SSRS comme source de données.

Gemini étant destiné en premier lieu aux utilisateurs fonctionnels, ceux ci n'ont pas forcément un accès aux bases de données. Un moyen simple d'obtenir des données fiables peut donc être de se fonder sur un rapport Reporting Services déjà existant (graphes, tableaux ou matrices).

Cette fonctionnalité est présentée dans le dernier article du blog de l'équipe Gemini (en anglais)

Également une vidéo (en anglais) publiée par Donald Farmer (Equipe Gemini) permet d'en voir une démonstration.

lundi 13 juillet 2009

SSRS 2008 et la fonctionnalité "Repeat Header"

Pour poursuivre dans la lancée de l'article publié par Gurvan il y a quelques jours, voici une autre petite anomalie apparue dans la version 2008 de Reporting Services.

Dans les propriétés d'une table ou d'une matrix, vous pouvez préciser si vous désirez que l'entête des colonnes (et/ou des lignes) se répète sur chaque page. Pour les matrices, pas de problème, l'option est bien prise en compte en 2008. Ce n'est pas le cas pour les tables ne possédant pas de groupe sur les colonnes. L'option est ignorée.


Il existe heureusement une façon de contourner le problème. Dans la fenêtre de gestion des groupes, passez en mode "avancé". Vous verrez alors apparaître les groupes "statiques" qui étaient jusque là masqués.


Cliquez sur le groupe statique que vous souhaitez voir se répéter sur chaque page et configurer la valeur de la propriété "RepeatOnNewPage" de ce groupe à "true".
Le problème est alors réglé et les entêtes de colonnes de la table se répéteront bien sur chaque nouvelle page. Dommage que l'option ne soit pas directement prise en compte au niveau de l'interface graphique, le contournement n'est cependant pas trop compliqué.

mardi 31 mars 2009

Sum Distinct avec SSRS

Reporting Services (SSRS) 2005 propose de nombreuses fonctions d'agrégation dont Sum, Min, Max, Avg, Count, Count distinct etc.

Malheureusement il arrive souvent qu'on ait besoin d'une autre fonction qui n'est pas fournie par défaut: Sum Distinct. Ce billet vous montre donc comment l'implémenter dans votre rapport.

Imaginons qu'on ait une requête qui ramène une liste combinant des employés, leurs spécialités, leur département et leur salaire. On aura donc une spécialité d'employé par ligne et donc potentiellement plusieurs lignes pour un même employé.

Si on désire réaliser un rapport avec un regroupement par département affichant le nombre d'employés à ce niveau agrégé, alors on peut utiliser la fonction CountDistinct(Fields!EmployeeID.value) dans la case correspondante, ce qui ramène le bon résultat.
Le problème apparaît lorsqu'on désire par exemple calculer la somme des salaires d'un département. On pourrait rajouter un champ dans la requête qui serait le résultat d'une sous requête et ramènerait le TotalSalaireDepartement pour chaque département. C'est une solution qui est peu envisageable si le nombre de champs à rajouter est élevé. D'où l'idée de cette fonction SumDistinct qui permet de récupérer le résultat grâce à un petit bout de code Vb.
Pour ajouter la nouvelle fonction, aller dans l'onglet "code" des propriétés du rapport:


Il ne reste plus qu'à appeler la fonction dans les cases du rapport.
SumDistinct(Mesure, ID, Valeur)
Ce qui donne pour cette exemple au niveau d'une ligne département:

=Sum(Code.SumDistinct(01, Fields!EmployeeId.Value, Fields!Salaire.Value))
Remarquez dans le code la clé de la HashTable qui est composée d'une Mesure (01 pour Salaire) et d'un ID (EmployeeID). Cette astuce permet de pouvoir réutiliser la même fonction pour des mesures différentes, par exemple 01 pour le salaire, 02 pour le poids de l'employé ou encore 03 pour l'âge de l'employé, sous réserve que les valeurs agrégées au niveau département de ces dernières mesures aient un intérêt quelconque:)

mercredi 25 mars 2009

Installer Reporting Services sur Windows Server Web Edition

Voici un problème auquel j'ai été confronté récemment chez un client, installer Reporting Services sur une Web edition de Windows server.

Si vous lancez la procédure classique d'installation SQL Server, vous réaliserez vite que le nombre de possibilités est assez limité. Vous ne pouvez en effet qu'installer les outils clients sur cette version de Windows Server (les autres composants étant grisés). Il est en effet impossible d'installer un moteur de base de données sur cette édition. Cela dit, dans mon cas, le but était seulement d'installer la partie applicative de Reporting Services, les bases de métadata étant stockées sur un autre serveur dédié aux bases de données.

La bonne nouvelle est qu'il est possible d'installer Reporting Services même si le wizzard classique d'installation ne le permet pas. L'astuce est la suivante: lancer le fichier "SqlRun_RS.msi" qui est situé dans le répertoire "\Servers\Setup" du CD SQL Server 2005.

Une fois l'installation terminée, vous pouvez configurer votre serveur de rapport en lançant "Reporting Services Configuration". C'est à travers cette interface que vous chosirez par exemple le serveur qui accueillera vos bases métadata "ReportServer" et "ReportServerTempDB".