Vous êtes sur la page 1sur 19

Cration et mise en forme d'tats Crystal

Reports avec VS .NET


par Manuel Sergent
Date de publication : 11/12/2006
Dernire mise jour :
Cet article explique comment crer et mettre en forme un tat Crystal
Reports simple avec Visual Studio .NET. Un article similaire rdig par David
Pdehourcq vous prsente plus en dtails le fonctionnement d'un tat et le
dploiement de ce dernier dans une application windowsform. L'objectif de
mon article est de prsenter une manire lgrement diffrente de remplir un
tat et d'aller un peu plus loin dans sa mise en forme. Les codes prsents
dans cet article ont t conu avec Visual Studio .NET 2003
I - Cration de la Windows Form.
II - Ajout de la source de donnes l'tat.
III - Visualisation de l'tat
IV - Mise en forme de l'tat.
IV-A - Exemple : couleur de la police.
IV-B - Cration d'un groupe.
V - Insertion de diagramme
VI - Le controle CrystalReportViewer
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 2 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
I - Cration de la Windows Form.
Le but de ce chapitre est d'obtenir une windows form simple qui ressemble :
Vous avez donc besoin des lments suivant :
Un bouton nomm "btnChargement" dont l'vnement Click nous servira remplir la source de donnes de
notre tat et d'afficher ce dernier.
Un CrystalReportViewer nomm "crvETAT" qui contiendra notre tat Crystal Report.
Un SQLDataAdapter (dans cet article j'utilise une source de donnes SQL Server 2000) pour crer notre
requte sur la base de donnes SQL Server nomm "SqlDa".
Un DataSet qui contiendra les donnes afficher dans l'tat nomm "DataSet1".
Un objet SQLConnection pour se connecter notre base SQL nomm "SqlConnection1".
Un lment Crystal Report nomm "ETAT"
Le design de cette form tant trs simple, nous n'allons pas nous tendre dessus. Quelques prcisions tout de
mme. Dans cet article nous allons afficher dans notre tat une liste de route avec un type. Deux types sont
possibles "SUB" et "CS". Nous aurons donc une table SQL nomm "Tbl_Type_Route" avec les champs suivant
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 3 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
"Route_id" et "Type_Route".
La requte de notre SQLDataAdapter sera donc trs simple :
SELECT Route_id, Type_Route FROM Tbl_Type_Route
Pour crer le dataset, clic droit sur notre SQLDataAdapter et "gnrer le groupe de donnes", je ne vous apprends
rien ici.
L' ajout de l'tat au projet se fait de la mme manire que pour ajouter une form (clic droit sur le projet - ajouter un
nouvel lment - tat crystal report). Ajouter donc votre tat et nomm le "ETAT". Quand l'ajout sera effectif,
prcisez que vous utilisez un tat vide.
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 4 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
II - Ajout de la source de donnes l'tat.
Pour obtenir ceci :
Dans l'explorateur de champs, faites un clic droit sur "Champs de base de donnes" - "Ajouter / Supprimer une
base", dans "donnes du projet", choisissez "ADO.NET Datasets", puis grce au bouton flch, basculez notre
DataSet dans le partie "Tables slectionnes". Ensuite pour placer nos donnes sur l'tat, il suffit de raliser une
petite action de glisser-dplacer de nos champs "Route_id" et "Type_Route" dans la zone dtails de notre tat,
nous obtenons ceci :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 5 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Petite prcision sur les diffrentes zones d'un tat :
En-tte de l'tat : tout ce qui sera dans cette zone sera prsent que sur la premire page de l'tat.
En-tte de page : tout ce qui sera dans cette zone sera prsent sur chaque pages de l'tat.
Dtails : tout ce qui sera dans cette zone se reproduira autant de fois que le nombre de "Route_id" que nous
avons obtenu grce notre requte.
Pied de page de l'tat : tout ce qui sera dans cette zone sera prsent que sur la premire page de l'tat.
Pied de page : tout ce qui sera dans cette zone sera prsent sur chaque pages de l'tat.
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 6 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
III - Visualisation de l'tat
Il est maintenant temps de faire un premier test et de visualiser les donnes dans l'tat. Pour cela nous devons
coder l'vnement Click de notre bouton :
Try
Cursor.Current = Cursors.WaitCursor
' ici nous remplissons notre DataSet
DataSet11.Clear()
SqlDa.Fill(DataSet11)
' ici on cre une instance de notre tat, nous prcisons que ca source est notre DataSet
'et que l'on veut l'afficher dans notre crystalreportviewer
Dim report As New ETAT
report.SetDataSource(DataSet11)
crvETAT.ReportSource = report
Cursor.Current = Cursors.Default
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Et voila le rsultat :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 7 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Nous Pouvons voir nos donnes dans l'tat, c'est bien, mais avec une petite mise en forme, c'est mieux ! C'est
l'objet du prochain chapitre.
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 8 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
IV - Mise en forme de l'tat.
IV-A - Exemple : couleur de la police.
Revenons notre tat en mode conception, et faisons un clic droit sur notre champ "Route_id" dans notre zone
dtails, puis choisissons "mettre en forme", cette fentre apparait :
Nous remarquons plusieurs onglets ou nous pouvons entre autre changer la couleur de police ou mettre des
bordures. Pas besoin de s'tendre ici. Ce qui est intressant dans cette fentre c'est la prsence d'un trange
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 9 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
C'est l que c'est intressant, ce bouton va nous permettre de changer la proprit correspondante de notre champ
"Route_id" de manire dynamique. Un petit exemple, imaginons que nous voulions mettre en rouge toutes les
routes qui sont de types "SUB". Cliquez donc sur le bouton correspondant la couleur de la police. Cette fentre
apparait :
En haut de la fentre une zone droulante nous permets de choisir la syntaxe Basic, choisissez la donc. Les trois
fentres du haut nous prsentent les champs de notre source de donnes, des constantes, des fonctions, des
structures de commandes... afin d'viter de tapper tout le code la main. Nous allons donc programmer la
proprite "Font_Color" de notre champ "Route_id" pour le mettre en rouge pour un certain type.
Pour cela double cliqu sur la structure de commande du IF. Une fois que le curseur est dans le IF, double cliqu
sur notre champ "Type_Route". Vous voyez la formule prendre forme dans la fentre du bas. Tappez ' = "SUB" ',
puis dans le Then, tappez le mot cl "Formula = " et dans la fentre du millieu, choissisez la couleur Rouge. Le mot
cl "Formula" fait rfrence la proprite sur laquelle nous travaillons, ici la Font_Color de notre champ
"Route_id".
Notre formule est donc prte et veux dire : Si Type_Route = "SUB" Alors Font_Color = Rouge !
Vous pouvez vrifier la syntaxe de notre formule en cliquant sur le bouton et enregistrer puis quitter en
cliquant sur le bouton
Faisons un test et relanons notre application, nous avons bien nos routes de type "SUB" apparaitre en rouge :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 10 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
IV-B - Cration d'un groupe.
Un groupe dans un tat va nous permettre de regrouper et d'ordonner les donnes selon certains critres. Nous
allons dans cet exemple regrouper les routes par type de route. En affichant d'abord les CS routes puis les SUB.
La cration d'un groupe se ralise dans la partie design de notre tat, dans l'onglet "explorateur de champs", faites
un clic droit sur "Champ nom du groupe" puis "nouveau", nous voyons apparaitre cette fentre :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 11 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Choisissez donc le champ "Type_Route" et "dans l'order croissant" pour voir apparaitre les "CS" puis les "SUB".
Vous voyez alors la zone de groupe sur notre design et si on relance notre application nous avons ceci :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 12 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Nous voyons apparaitre gauche nos groupes, ici nos types "CS" et "SUB" dans l'ordre croissant (alphabetique
ici). Quand on clique sur l'un des groupes, une zone rouge nous y amne directement. Il est noter que nos zones
d'tat (groupe, dtails, pied de page...) peuvent galement faire l'objet de mise en forme. En faisant un clic droit sur
n'importe quelle section et en choisissant "mettre en forme une section", nous voyons cette fentre :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 13 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Vous pouvez par exemple en slectionnant la section dtails puis en validant l'option "Nouvelle page aprs" avoir
une nouvelle page aprs chaque zone de dtails. C'est dire que l'on aura une route par page.
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 14 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
V - Insertion de diagramme
Le but de ce chapitre est d'insrer un diagramme pour reprsenter nos donnes de manire plus synthtique. Voic
une capture d'cran de ce que nous allons pouvoir obtenir trs rapidement :
Nous allons insrer notre diagramme dans l'en-tte de l'tat. Faites donc un clic droit dans cette partie de l'tat puis
"insertion" - "diagramme". Voici les tapes successives pour la cration de notre diagramme :
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 15 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
La premire chose faire est de choisir le type de notre diagramme, prenons le type sectoriel (ou camember).
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 16 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
C'est ici que nous allons prsicer que nous voulons la rpartition des routes selon les types de routes. Nous disons
donc que sur un changement du type de route, nous calculons le nombre de routes.
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 17 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
Dans l'onglet texte, nous prcisons uniquement le texte mettre pour le titre, sous-titre... de notre diagramme.
Le deuxime diagramme prsent sur notre image au dbut du chapitre a t conu exactement de la mme faon
sauf que nous avons choisis un autre type de diagramme !
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 18 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/
VI - Le controle CrystalReportViewer
Nous allons ici parcourir quelques proprits du controle crystalReportViewer:
DisplayGroupTree : permet de faire disparaitre la colonne blanche gauche de l'tat. Il est inutile lorque votre tat
ne contient pas de groupe. DisplayToolBar : permet de faire disparaitre totalement la barre d'outils de l'tat.
L'utilisateur n'aura alors plus accs l'impression, au zoom ...
ShowCloseButton : permet de faire disparaitre le bouton "fermer" de l'tat. Il est bien souvent inutile
ShowExportButton : cette proprite est trs interessante. Elle vous permets trs facilement d'exporter votre
tat au format pdf, xls, doc, rtf d'un simple clic !
ShowGoToPageButton : ce bouton permets d'acceder directement une page de l'tat en tappant son
numro
ShowGroupTreeButton : ce bouton n'est plus ncessaire si vous dcidez de faire disparaitre le group tree
ShowPageNavigateButton : permet d'afficher les boutons flechs pour se dplacer dans l'tat, vous pouvez
naviguer de pages en pages ou vous rendre
directement la premire ou la dernire page
ShowPrintButton : trs utilse, permet d'imprimer votre tat d'un simple clic
ShowRefreshButton : permet de rafraichier l'tat, pour ma part je ne l'ai jamais utilis
ShowTextSearchButton : permet de rechercher un mot dans l'tat
ShowZoomButton : permet de rgler le zoom de l'tat.
par dfaut le zoom sera de 100%, vous pouvez changer le zoom par dfaut avec le code :
VotreCrystalReportViewer.Zoom(2)
(ici on affiche toute la page de l'tat)
Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent
- 19 -
Copyright 30/08/2006 - Manuel Sergent. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300
000 E de domages et intrts.
http://hulk.developpez.com/tutoriel/crystalreport/

Vous aimerez peut-être aussi