Report Server Project

1.1 création du projet

Lancez Visual Studio 2005 ou SQL Server Business Intelligence Development Studio. Allez dans Fichier >> Nouveau Projet >> Report Server Project.

Reporting Service 2005

Report Server Project Wizard peut vous servir lors de la construction de rapport simple et concis. Vous pouvez aussi créer des modèles de rapport avec « Report Model Project »

Un projet « Report Server Project » est composé de différents fichier : – Source de données – Différentes vues de la source de données – Autant de rapport que vous souhaitez éditer

Reporting Service 2005

L’;onglet « Data » contient la liste de différentes vues de la source de données. Chaque vues est stockées dans un Dataset.

L’;onglet « Layout » contient l’;espace de travail qui vous permet de personnaliser vos rapports.

L’;onglet « Preview » vous permet d’;avoir une vue avant publication.

1.2 création de la source de données

Vous devez dans un premier temps, connecter vos futurs rapports à une source de données.

Dans le répertoire « Sources de données partagées« , faites cliques droits : « Ajouter une nouvelle source de données »

Reporting Service 2005

Dans la fenêtre de dialogue qui vient de s’;ouvrir, cliquez sur « Editer » et configurer la connexion à votre source de données.

SSRS vous permet de vous connecter autant à une base de données relationnelle comme SQL Server qu’;à une base de données multidimensionnelles comme des cubes OLAP.

1.3 Créer un rapport

Dans un projet vous pouvez ajouter autant de rapport que vous le désirez.

Etape 1 : Ajouter un rapport en cliquant sur le dossier « Reports » >> « Ajouter un nouveau rapport »

Reporting Service 2005

Etape 2 : La fenêtre de dialogue « Report Wizard » est lancée. Dans la première étape vous avez le choix entre sélectionner l’;une de vos sources de données ou en paramétrer une nouvelle.

Etape 3 : Dans l’;étape suivant, le constructeur de requête apparait.

Reporting Service 2005

Etape 4 : le Wizard, vous offre la possibilité de choisir entre deux types de rapports :

Rapport Matrix :  le rapport matrice permet de mettre en avant des données multidimensionnelle. Chaque ligne et colonne pourront s’;étendre pour afficher les données du rapports.

Reporting Service 2005

Le bouton Page > : tous les éléments présents seront contenu dans l’;entête de la page.

Le bouton Columns > : ces champs seront utilisés dans la sélection multidimensionnelle des colonnes et seront déroulant de façon descendante*.

Le bouton Rows > : ces champs seront utilisés dans la sélection multidimensionnelle des lignes et de façon descendante*.

Le bouton Details > : contient les champs qui seront utilisé dans l’;affichage de la matrice.

(* : descendante = de façon hiérarchique, on pourra obtenir le détails des colonnes ou des lignes sélectionnée)

Rapport Tabular : le rapport tableau est un rapport à une dimension qui afficher les données en lignes qui croient vers le bas et en colonnes statiques.

Reporting Service 2005

Le bouton Page > : comme pour la matrice, ce sont les champs qui sont affichés en entête de page.

Le bouton Group > : ces champs permettent de grouper les données et ainsi obtenir les sous-totaux par groupe.

Le bouton Details > : contient les champs qui seront utilisés dans l’;affichage du tableau.

Etape 5 : cette étape vous permet de changer le théme de personnalisation de vos rapports. Vous avez le choix entre 5 thèmes de base : Bold, Casual, Corporate, Compact et Plain

Etape 6 : c’est la dernière étape, vous devez spécifier le nom de votre rapport et l’emplacement du serveur de rapport où il sera hébergé.

DataSet

2.1 Créer un nouveau DataSet

Dans chaque rapport vous pouvez avoir différents dataset. Un dataset consiste à mettre en mémoire le résultat d’;une requête pour diminuer le nombre I/0 dans la base de données ou autres sources de données. Vous pouvez ainsi exécuter différents traitements en mémoire comme les tries, les filtres… sans vous reconnecter à votre base de données.

Reporting Service 2005

Pour créer un nouveau dataSet, allez dans l’;onglet Data, puis dans le menu déroulant DataSet cliquez sur <Nouveau dataSet>. Dans la fenêtre de dialogue, sélectionnez la source de données sur laquelle vous souhaitez travailler. Dans notre exemple sélectionnez le DataSource1.

2.2 Différent type de DataSet

Quand vous créer un nouveau dataSet, vous pouvez créer votre requête en mode Texte ou utiliser un procédure stockées.

Reporting Service 2005

Dans le mode texte vous avez deux possibilité soit de saisir manuellement votre requête, soit d’;utiliser l’;éditeur d’;expression qui vous permettra d’;utiliser des variables globales (nombre de page, ), d’;autres dataSet, des opérateurs arithmétiques, de comparaison … Pour lancer l’;éditeur d’;expression cliquez sur Fx

Reporting Service 2005

Dans notre exemple nous allons créer un rapport d’édition de facture. Nous allons nous servir d’;une vue existante dans Navision : $Ligne vente et $Entete ligne vente

DataSet : DataSetContenuFacture = ce dataset sélectionne le contenu de la facture numéro 2002

T-SQL SELECT

[N°]

,

[Désignation]

,

CEILING

(

[Qté à facturer]

)

AS

‘;Qté à facturer’;

,

[Unité]

,

[Prix unitaire]

FROM

dbo

.

[FRA$CRONUS France S_A_$Ligne vente]

WHERE

[N° document]

=

‘;2002’;

DataSet : DataSetEnteteFacture = ce dataset sélectionne l’;entête de la facture : numéro de dossier, date de commande, numéro de facture pour la facture 2002

T-SQL SELECT

TOP

1 Nom

,

Adresse

,

Ville

,

[N°]

,

CONVERT

(

varchar

(

50

),

CONVERT

(

datetime

,

[Date commande]

,

107

))

AS

‘;Date commande’;

,

[Libellé écriture]

FROM

dbo

.

[FRA$CRONUS France S_A_$En-tête vente]

WHERE

[N°]

=

‘;2002’;

2.3 Le volet DataSet

Tous les DataSet que vous créerez seront visible dans le volet DataSet. Pour faire apparaître le volet DataSet, allez dans le menu en haut « View »>> «  »dateSet » » (PS : il est en bas du menu).

Ce volet vous permet de visualiser les « dateSet » mais aussi le nom des colonnes de ces derniers.

Reporting Service 2005

Personnalisation du rapport

Dans notre exemple, nous allons créer une facture client.

3.1 Pied de page et entête de page

Reporting Service 2005 offre la possibilité d’;ajouter des entêtes et pied de page sur votre document comme un éditeur de texte.

Allez dans l’;onglet ‘;Report’; du menu ‘;Page Header’;.

Reporting Service 2005

Des barres horizontales vous permettez de visualiser la segmentation de votre document.

3.2 Images

Pour personnaliser notre facture, nous allons ajouter le logo de notre entreprise. Quand vous cliquez déplacez sur le composant Image, Visual Studio vous propose 4 choix.  – l’;image est intégrée dans la rapport – l’;image est stockée un répertoire du projet Visual Studio  – l’;image est stockée dans la base de données  – l’;image est stockée sur le Web .

3.3 Tableau Simple

Placez sur la surface du ‘;layout’; un tableau. Normalement un tableau de 3 colonnes avec 3 lignes (entête, pied et détail) apparait.

Vous pouvez en ajouter des lignes et des colones en un simple cliques droits.

Pour remplir votre tableau, vous pouvez drag and dropper directement les champs de votre dataSet dans les lignes de votre tableau.

Reporting Service 2005

3.4 Personnalisation du format d’;affichage

Vous pouvez personnaliser facilement chaque élément en changeant la couleur de fond, du texte, la police… Sélectionnez un élément, (une cellule, une ligne…) et cliquez sur ‘;Format’;.

Reporting Service 2005

3.5 Tableau avec Tri

Vous pouvez aussi faire des colonnes de tri dans vos tableaux. Ces tris peuvent s’;effectuer sur un champ du DataSet ou une expression.

Ce fonctionnalité est disponible pour les tableaux ou les matrices. Vous pouvez faire des tris sur plusieurs colonnes et même dans les groupes.

Pour gérer les tris interactifs vous devez faire un ‘;clique droit’; >> ‘;propriété’; sur la cellule d’;entête du tableau. Ensuite allez sur l’;onglet ‘;Interactive Sort’;

Reporting Service 2005

3.6 Tableaux groupés

Toujours dans notre exemple de facture, nous pourrions imaginer que notre service comptabilité souhaite afficher une facture qui regroupe les articles vendu par Unité de mesure. Ainsi que l’;affichage de chaque sous-totaux.

Ajoutez un nouveau tableau sur le ‘;Layout’;.

Sur la barre de propriété, faites clique droit ‘;Insert Group’;

Reporting Service 2005

Comment dans le tableau un ‘;Group’; est constitué d’;un entête, d’;une description et un pied de groupe.

– L ‘;entête : nous allons placer le titre du groupe (l’;unité de mesure). – Description : nous allons mettre le détail du groupe- Pied du groupe : nous allons calculer le total du prix pour ce groupe. Pour générer des totaux consulter le paragraphe 3.6 Totaux de lignes.

Reporting Service 2005

3.7 Tableau avec aucun résultat (NowRows)

Une propriété du tableau vous permet d’;indiquez à vos visiteurs que le ‘;dataSet’; n’;a retourné aucun résultat. Allez dans les propriétés du tableau, dans l’;onglet Data, et changer la propriété du champs NoRows par une valeur adéquate.

Reporting Service 2005

3.8 Totaux de lignes

Dans notre exemple de facture, nous souhaiterons ajouter une ligne Total dans notre facture.

Dans le pied de colone (alias footer), éditez un expression et ajouter la fonction SUM

Reporting Service 2005

Résultat

Reporting Service 2005

Création graphique

4.1 Composant Graphique

Etape 1 : Les graphiques vous permettent de représenter graphiquement les données de vos « dateSet ». Dans la boite à outil de Visual Studio, le composant « Chart » vous permettra de générer et personnaliser facilement vos graphiques.

Etape 2 : Gérer les différents type de graphique. Vous pourrez facilement modifier le type de graphique en cliquant droit sur le graphique.

Reporting Service 2005

Etape 3 : paramétrer les propriétés du graphique.

Dans les propriétés du graphique dans l’;onglet :

Général : vous pouvez ajouter un nom à votre graphique, choisir la couleur général, le titre du graphique.  – Données : gestion des données liées à notre source de données.  – X Axis : gestion de l’;apparence de l’;axe des abscisses.  – Y Axis : gestion de l’;apparence de l’;axe des ordonnées.  – Légende : gestion de l’;apparence de la légende.  – 3D Effet : gestion des effets 3D  – Filtre : options de filtre du graphique.

Reporting Service 2005

4.2 Configuration des données

Etape 1 : Dataset name : pour sélectionner une de nos « dataSet » pour le graphique.Etape 2 : Values : pour fournir les données du graphique. Par exemple, dans un histogramme, les données de la liste Values déterminent la hauteur des colonnes et les étiquettes sur l’;axe des ordonnées (Y) du graphique.Etape 3 : Category groups : pour grouper les données affichées dans le graphique. Les catégories fournissent les étiquettes des éléments de graphique. Par exemple, dans un histogramme, les étiquettes de catégories sont placées sur l’;axe des abscisses (X), avec une étiquette pour chaque ensemble de colonnes.Etape 4 : Series groups : pour ajouter une dimension supplémentaire de données à un graphique. Dans un histogramme représentant les ventes par produit, par exemple, vous pouvez ajouter un groupe de séries pour afficher les données par année pour chaque groupe. Les étiquettes des groupes de séries sont incluses dans la légende du graphique.

Reporting Service 2005

4.3 Présentation graphique 3D

Le contrôle graphique possède un assistant pour personnaliser votre graphique. Vous pouvez choisir la rotation verticale ou horizontal, la perspective, l’;inclinaison, en barre ou en cylindre, en cluster…

Reporting Service 2005

4.4 Graphique 3D évolué

Si vous avez un désir de pousser la personnalisation avec des graphiques plus évolué, vous pouvez utiliser un adonne : « Duadaschart for reporting service »

Reporting Service 2005

Reporting Service 2005

Filtres

5.1. Paramétrer les dataSets

Modifions nos dataSets en rajoutant une variable : @numParameter

Dans notre exemple nous allons créer un rapport d’édition de facture. Nous allons nous servir d’;une vue existante dans Navision : $Ligne vente et $Entete ligne vente

DataSet : DataSetContenuFacture

T-SQL SELECT

[N°]

,

[Désignation]

,

CEILING

(

[Qté à facturer]

)

AS

‘;Qté à facturer’;

,

[Unité]

,

[Prix unitaire]

FROM

dbo

.

[FRA$CRONUS France S_A_$Ligne vente]

WHERE

[N° document]

=

@numParameter

DataSet : DataSetEnteteFacture

T-SQL SELECT

TOP

1 Nom

,

Adresse

,

Ville

,

[N°]

,

CONVERT

(

varchar

(

50

),

CONVERT

(

datetime

,

[Date commande]

,

107

))

AS

‘;Date commande’;

,

[Libellé écriture]

FROM

dbo

.

[FRA$CRONUS France S_A_$En-tête vente]

WHERE

[N°]

=

@numParameter

Visual Studio va directement créer ce nouveau paramètre dans le report

Reporting Service 2005

Si vous allez dans l’;onglet ‘;Report’; >> ‘;Report Parameters…’; vous retrouverais notre paramètre @numParameter

5.2 Propriété du paramètre

Vous pouvez déterminer le type de données.

Reporting Service 2005

Vous avez le choix entre :  – String – Intenger – Float – Boolean – DateTime

Pour les types Integer et Float, Reporting Service n’;effectue pas de contrôle. Si vos utilisateurs saisisse une string à la place d’;un nombre entier, le paramètre sera transmis. Par contre la requête qui attend un nombre ne retournera pas de résultat.

Pour les types DataTime et Boolean vous aurez deux comportements qui contrôlent la saisie de l’;utilisateur par restriction.

Le type de données DateTime génére automatiquement un popup calendrier.

Reporting Service 2005

Le type de données Boolean génére un checkBoxList.

Reporting Service 2005

5.3 Type de paramètre

Vous pouvez paramètre aussi le comportement du paramètre :  – Hidden : vous pouvez rendre invisible le paramètre à la publication du rapport  – Internal : faire appel à un paramètre interne, une dataSet interne pour remplir ce paramètre.  – Multi-value : permet à l’;utilisateur de sélectionner plusieurs valeurs. Très pratique si vous souhaitez sélectionner plusieurs mois ou années.  – Allow null value : la valeur NULL est autorisée. Reporting Service ajouter un RadioButton pour laisser le choix à l’;utilisateur de laisser la valeur à null.  – Allow blank value : par défault, le champs String doit toujours avoir une valeur, mais si vous souhaitez autoriser les chaines de caractère vide, vous devez cocher cette option.

Si vous cochez Allow null value vous aurez un radioButton à coté de votre champ texte.

Reporting Service 2005

Si vous cochez Multi-value vous aurez cet aperçu.

Reporting Service 2005

5.4 Paramètres pré-paramétrés

Vous pouvez laisse le choix à vos utilisateurs de remplir manuellement le champs paramètre. Mais vous pouvez aussi choisir de les guider.

Reporting Service vous offre le choix de pré-remplir le champs. Ce champs sera transformé en menu déroulant type DropDonwList.

Vous pourrez soit le remplir manuellement soit le remplir via un dataSet. Si vous choisissez de le remplir depuis un dataSet, Reporting Service va automatiquement vous afficher le liste de dataSet et les champs qui peuvent être utilisés.

Reporting Service 2005

Certaine données ne nécessite pas une requête, c’;est pour cela que Reporting Service vous laisse le choix d’;entrer manuellement certaines informations :

Reporting Service 2005

5.5 Valeur par défaut des paramètres

Reporting Service nous laisses le choix de présélectionner une valeur. Soit par une requête, soit par un valeur manuel, soit rien

Reporting Service 2005

DataSet : DataSetSelectActualYear : vous pourriez par exemple créer un dataSet qui sélectionne par défaut l’;année en cours.

T-SQL SELECT

YEAR

( getdate() )

6.Publication des rapports

6.1 Publication via Visual Studio

Vous pouvez publier vos rapports depuis Visual Studio 2005. Il vous faut avant tout, paramétrer le nom du serveur de rapport et des dossiers en allant dans les propriétés du projet du rapport.

Ensuite ,sélectionnez un rapport cliques droits Gérer >> Déployer la solution.

Reporting Service 2005

6.2 autres type de publications

SSRS permet aussi de déployer manuellement en l’;uploadant sur le serveur de rapport ou par script.

Pour déployer manuellement votre rapport, allez sur le site Report (par défaut : https://localhost/ReportServer ) et cliquez sur ‘;Télécharger’;

Etape 1 : Ensuite sélectionnez votre fichier .RDL, ajoutez un nom et cliquez sur ‘;OK’;

Reporting Service 2005

Le site permet aussi de trier et d’;organiser vos rapports dans différents dossiers et sous-dossiers.

Etape 2 : Paramétrer la source de données, ajouter votre source de données manuellement en cliquant sur ‘;Nouvelle source de données‘;.

Etape 3 : Lier la source de données à votre rapport. Cliquez sur votre rapport >> cliquez sur propriété du rapport >> Sources de données et sélectionner votre dataSource.

Conclusion

Dans cette article nous avons appris à créer un rapport depuis Visual Studio. Nous avons vu qu’;une partie des possibilités de SQL Server Reporting Service 2005.

Reporting Service 2005 vous permettra de créer d’;autres rapports mais de façons différentes :  – Report Server Template qui pourront être réutiliser avec le nouvel outils Builder – Report Builder permet aussi de créer et publier des rapports facilement pour les utilisateurs finaux.  – Report directement dans vos projets avec les nouveaux contrôles Report de Visual Studio 2005.

Télécharger le projet zippé en cliquant ici.

Télécharger la base de données « Navision Demo Database (4-0)_Data.mdf » :https://www.mibuso.com/dlinfo.asp?FileID=520

Si vous souhaitez arrondir le prix de vente à deux décimal directement dans la requête SQL, vous pouvez créer cette fonction comme celle-ci dessous dans l’;analyser de requête :

T-SQL CREATE

FUNCTION

dbo

.

fn_arrondir

(

@montant

float

,

@nombreDecimale

int

)

RETURNS

varchar

(

50

)

AS

BEGIN DECLARE

@nbDecimal

int

IF

CHARINDEX

(

‘;.’;

,

@montant

)

<

1

BEGIN

SET

@nbDecimal

=

0

;

END

ELSE

BEGIN

SET

@nbDecimal

=

LEN

(

@montant

)

CHARINDEX

(

‘;.’;

,

@montant

);

END

DECLARE

@traitement

float

DECLARE

@traitementString

varchar

(

50

)

IF

@nombreDecimale

<

1

BEGIN

SET

@traitement

=

(

SELECT

FLOOR

(

@montant

));

SET

@traitementString

=

@traitement

;

END

ELSE

BEGIN

IF

@nbDecimal

<

1

BEGIN

SET

@traitementString

=

CONVERT

(

varchar

(

50

),

@montant

)

+

‘;.00’;

END

ELSE

IF

@nbDecimal

=

1

BEGIN

SET

@traitementString

=

CONVERT

(

varchar

(

50

),

@montant

)

+

‘;0’;

END

ELSE

BEGIN

SET

@traitementString

=

(

SELECT

SUBSTRING

(

CONVERT

(

varchar

(

50

),

ROUND

(

@montant

,

@nombreDecimale

)),

0

,

CHARINDEX

(

‘;.’;

,

CONVERT

(

varchar

(

50

),

@montant

))+

@nombreDecimale

+

1

))

END

END

RETURN

@traitementString

END

GO

Dans votre dataSet : DataSetFacture, rajoutez l’;appel à la fonction fn_arrondir ()

T-SQL SELECT

[N°]

,

[Désignation]

,

CEILING

(

[Qté à facturer]

)

AS

‘;Qté à facturer’;

,

[Unité]

, [

dbo]

.[

fn_arrondir] ( [Prix unitaire] )

FROM

dbo

.

[FRA$CRONUS France S_A_$Ligne vente]

WHERE

[N° document]

=

@numParameter