Crystal Report

  • Published on
    24-Jun-2015

  • View
    121

  • Download
    1

Embed Size (px)

Transcript

Cration et mise en forme d'tats Crystal Reports avec VS .NETpar 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

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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

-2Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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

-3Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

"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.

-4Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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 :

-5Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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.

-6Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

III - Visualisation de l'tatIl 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 :

-7Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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.

-8Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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

-9Copyright 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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 cliquant sur le bouton Faisons un test et relanons notre application, nous avons bien nos routes de type "SUB" apparaitre en rouge : et enregistrer puis quitter en

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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 :

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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 :

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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 :

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

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.

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

V - Insertion de diagrammeLe 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 :

- 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/

Cration et mise en forme d'tats Crystal Reports avec VS .NET par Manuel Sergent

La premire chose faire est de choisir le type de notre diagramme, prenons le type sectoriel (ou camember).

- 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/

Cration et mise en forme d'tats Crystal Reports ave...