14
Wiki Info Système | Préparé par ING. David JOSEPH Objectif Créer un rapport avec Crystal report pour Visual Studio 2010 Introduction Aujourd’hui nous allons apprendre à créer des rapports avec Microsoft Visual Studio 2010, en utilisant tout simplement des dataSet, DataTable. Pour télécharger Crystal Report compatible avec Microsoft Visual Studio 2010 http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe Première étape : Le projet « test_report » Création du nouveau projet (ou vous pouvez utiliser un projet en cours, mais il est conseiller d’utiliser un projet vide en vue de bien assimiler les notions) ; Figure 1

Crystal Report avec Microsoft Visual Studio 2010

Embed Size (px)

DESCRIPTION

Apprendre a créer des Rapport en 7 etapes faciles et rapides, en utilisant le Control de Crystal Report, dans Microsoft Visual Studio 2010, en utilisant un DataSet et DataTable, pour sélectionner les données nécessaire a l’établissement du raport

Citation preview

Page 1: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Objectif

Créer un rapport avec Crystal report pour Visual Studio 2010

Introduction

Aujourd’hui nous allons apprendre à créer des rapports avec Microsoft Visual Studio 2010, en utilisant tout simplement des dataSet, DataTable.

Pour télécharger Crystal Report compatible avec Microsoft Visual Studio 2010

http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe

Première étape : Le projet « test_report »

Création du nouveau projet (ou vous pouvez utiliser un projet en cours, mais il est conseiller d’utiliser un projet vide en vue de bien assimiler les notions) ;

Figure 1

Page 2: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Deuxième étape : La base de données

Nous allons utiliser Microsoft SQL Server pour créer une nouvelle base de données « db_test » (Figure 2)

Figure 2

Une fois la table sauvegardée on va ajouter des données pour notre exemple (Figure 3) :

Figure 3

Troisième étape : Le DataSet

Nous allons créer un fichier XSD.

Clic sur Solution Explorer => Clic droit test_report => Clic sur Add new Item : la fenêtre suivante

devrait apparaitre (Figure 4)

Page 3: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 4

Sélectionner DataSet dans la liste. Et donner un nom à votre DataSet ; dans notre exemple on le nommera dsSample.xsd

Clic sur OK

Maintenant on va ajouter un DataTable à notre dataSet

Dans la fenêtre du dataSet (généralement de couleur bleu), Clic droit (Figure 5) :

Page 4: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 5

Un fois notre DataTable créée on va devoir ajouter les colonnes dans la table.

Remarque :

Le nom des colonnes doivent impérativement est égal au nom des colonnes dans la base de donnes et de même type.

Pour ajouter une colonne Clic droit sur le DataTable et choisissez Column (Figure 6)

Page 5: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 6

Ajouter toutes les colonnes que vous voulez afficher dans votre rapport (si la colonne ne fait pas parti du DataTable que vous avez ajouté dans le DataSet vous ne pourrez pas le présenter dans le Crystal Report).

Maintenant, on va modifier le type de donnes des colonnes, sinon on risque de tomber sur « error for

field and data type mismatch » erreur courante quand les types de variables ne sont pas

semblables.

Clic droit sur la datacolumn dans le datatable que vous voulez changer le type (par défaut le type est « System.String »), aller dans le panel Property, et identifier DataType dans le combo box sélectionner le type de votre colonne (et bien sûr similaire au type dans votre base de données) (Figure 7).

Page 6: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 7

Répéter cette opération pour les autres colonnes si nécessaire.

Notre fichier XSD, plus connu sur le nom de DataSet est maintenant fini et prêt à être utiliser.

Quatrième étapes : Création de notre fichier Crystal Report «simpleReport »

Nous allons créer notre fichier .rpt

Clic sur Solution Explorer => Clic droit test_report => Clic sur Add new Item : la fenêtre suivante

devrait apparaitre (Figure 8)

Page 7: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 8

Sélectionner Crystal Reports dans la liste, changer le nom (il est conseiller de nommer le fichier .rpt avec un nom qui résume les informations qui y seront traites) ; dans notre exemple on le nommera simpleReports.rpt

Clic OK

La fenêtre suivante (Figure 9) devrait suivre tout suite après avoir cliqué sur OK

Page 8: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 9

Clic sur OK

Page 9: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 10

Dérouler la liste de Project Data => ADO.NET DataSets =>dsSample

Sélectionner votre dataTable puis clic sur > pour ajouter le dataSet dans l’autre colonne.

Clic sur Finish

Votre Crystal Report devrait tout suite apparaitre (Figure 11). Pour ajouter les colonnes qui apparaitront dans le rapport :

1) Clic sur Field Explorer => Database Fields => DataTable1 2) Faites glisser les colonnes dans la section Détail (dans cette section des données semblable

seront répéter successivement)

N.B : Les techniques de mise en page seront développées dans le prochain tutoriel

Page 10: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Figure 11

Votre Crystal Report est maintenant prêt. Rendez-vous à la prochaine étape.

Cinquième étape : Préparation de notre WinForm

Revenons à notre Form (ou s’affichera le Crystal Report).

Dans votre ToolBox, identifier le control CrystalReportViewer, faites glisser le control sur votre Form.

Dans le panel Property identifié WindowState changer la valeur en Maximized, afin d’éviter des erreurs dues à l’affichage du Crystal Report.

Page 11: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Sixième étape : Un peu de Code

Premièrement nous allons ajouter quelques librairies à notre programme.

Cliquer sur votre Form (assurer vous de biens sélectionner votre Form), Appuyer sur F7, la fenêtre Form1.cs s’affiche comme par magie ; puis ajouter votre code en haut de la page :

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

De retour sur votr Form, cette fois double clic sur Form1, afin de creer l’evenement Load_Form1 //Déclaration des variables ReportDocument rptDoc = new ReportDocument(); //Création du nouveau Rapport qui sera parametre dsSample ds = new dsSample(); // Utilisation de notre DataSet DataTable dt = new DataTable(); //Un DataTable pour récupérer la valeur de votre requête //Selectionner votre model Crystal Report OpenFileDialog dialog = new OpenFileDialog(); dialog.Title = "Open"; dialog.Filter = "RPT|*.rpt*"; try { if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rptDoc.Load(dialog.FileName); } } catch (ArgumentException ex) { MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Ajustement des variables dt.TableName = "Exemple de Crystal Report"; dt = getAllOrders(); //Fonction pour recuperer les donnees ds.Tables[0].Merge(dt); //Afficher le DataTable dans le Crystal Report rptDoc.SetDataSource(ds); crystalReportViewer1.ReportSource = rptDoc;

Page 12: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Septième étape: La fonction getAllOrders Cette fonction consiste à sélectionner dans notre base de données les informations voulu en vue de remplir le dataTable, qui a son tour devra remplir le dataSet.

public DataTable getAllOrders() { SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS; Initial Catalog=db_collection; Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT * FROM tb_costumers", Con); DataSet ds = null; SqlDataAdapter adapter; try { Con.Open(); ds = new DataSet(); adapter = new SqlDataAdapter(cmd); adapter.Fill(ds); } catch (Exception ex) { throw new Exception(ex.Message); } finally { cmd.Dispose(); if (Con.State != ConnectionState.Closed) Con.Close(); } return ds.Tables[0]; }

Page 13: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

Exemple code au complet:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; using System.Data.SqlClient; using System.Configuration; using System.IO; namespace test_report { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //Pour de variable ReportDocument rptDoc = new ReportDocument(); //Creation du nouveau Rapport qui sera parametre dsSample ds = new dsSample(); // Utilisation de notre DataSet DataTable dt = new DataTable(); //Un dataTable pour recuperer la valeur de votre requete //Selectionner votre Crystal Report OpenFileDialog dialog = new OpenFileDialog(); dialog.Title = "Open"; dialog.Filter = "RPT|*.rpt*"; try { if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rptDoc.Load(dialog.FileName); } } catch (ArgumentException ex) {

Page 14: Crystal Report avec Microsoft Visual Studio 2010

Wiki Info Système | Préparé par ING. David JOSEPH

MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Ajustement des variables dt.TableName = "Exemple de Crystal Report"; dt = getAllOrders(); //Fonction pour recuperer les donnees necessaire dans votre base de donnees ds.Tables[0].Merge(dt); //Afficher le DataTable dans le Crystal Report rptDoc.SetDataSource(ds); crystalReportViewer1.ReportSource = rptDoc; } public DataTable getAllOrders() { //Connection string replace 'databaseservername' with your db server name SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS; Initial Catalog=db_collection; Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT * FROM tb_costumers", Con); DataSet ds = null; SqlDataAdapter adapter; try { Con.Open(); ds = new DataSet(); adapter = new SqlDataAdapter(cmd); adapter.Fill(ds); } catch (Exception ex) { throw new Exception(ex.Message); } finally { cmd.Dispose(); if (Con.State != ConnectionState.Closed) Con.Close(); } return ds.Tables[0]; } } }