SlideShare une entreprise Scribd logo
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
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)
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) :
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)
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).
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)
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
Wiki Info Système | Préparé par ING. David JOSEPH
Figure 9
Clic sur OK
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
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.
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;
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];
}
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)
{
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];
}
}
}

Contenu connexe

Tendances

Les principaux types de système d'information
Les principaux types de système d'informationLes principaux types de système d'information
Les principaux types de système d'information
Gabsi Aissa
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
Lilia Sfaxi
 
Kanban un tour d'horizon de la démarche
Kanban un tour d'horizon de la démarcheKanban un tour d'horizon de la démarche
Kanban un tour d'horizon de la démarche
Laurent Morisseau
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
webreaker
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
Mouad Lousimi
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoins
Jean-Marc Dupont
 
Data Structures for Text Editors
Data Structures for Text EditorsData Structures for Text Editors
Data Structures for Text Editors
osfameron
 
2.presentation merise
2.presentation merise2.presentation merise
2.presentation meriseshaheenyaar
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
Lilia Sfaxi
 
Rapport Projet de fin d’études
Rapport Projet de fin d’étudesRapport Projet de fin d’études
Rapport Projet de fin d’études
Salah Eddine BENTALBA (+15K Connections)
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
Jean David Olekhnovitch
 
Processus recrutement
Processus recrutementProcessus recrutement
Processus recrutement
Salah KHEMIS
 
Power Bi, le tour complet 2017
Power Bi, le tour complet 2017 Power Bi, le tour complet 2017
Power Bi, le tour complet 2017
Isabelle Van Campenhoudt
 
Karim Baina Big Data ENSIAS December 2016
Karim Baina Big Data ENSIAS December 2016Karim Baina Big Data ENSIAS December 2016
Karim Baina Big Data ENSIAS December 2016
Karim Baïna
 
Présentation GTD
Présentation GTDPrésentation GTD
Présentation GTD
Nicolas Stampf
 
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)Abdellah SELASSI
 
Management de projet
Management de projetManagement de projet
Management de projet
Aboubakr Moubarak
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Presto overview
Presto overviewPresto overview
Presto overview
Shixiong Zhu
 

Tendances (20)

Les principaux types de système d'information
Les principaux types de système d'informationLes principaux types de système d'information
Les principaux types de système d'information
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Kanban un tour d'horizon de la démarche
Kanban un tour d'horizon de la démarcheKanban un tour d'horizon de la démarche
Kanban un tour d'horizon de la démarche
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoins
 
Data Structures for Text Editors
Data Structures for Text EditorsData Structures for Text Editors
Data Structures for Text Editors
 
2.presentation merise
2.presentation merise2.presentation merise
2.presentation merise
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Présentation bi 1.0
Présentation bi 1.0Présentation bi 1.0
Présentation bi 1.0
 
Rapport Projet de fin d’études
Rapport Projet de fin d’étudesRapport Projet de fin d’études
Rapport Projet de fin d’études
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
Processus recrutement
Processus recrutementProcessus recrutement
Processus recrutement
 
Power Bi, le tour complet 2017
Power Bi, le tour complet 2017 Power Bi, le tour complet 2017
Power Bi, le tour complet 2017
 
Karim Baina Big Data ENSIAS December 2016
Karim Baina Big Data ENSIAS December 2016Karim Baina Big Data ENSIAS December 2016
Karim Baina Big Data ENSIAS December 2016
 
Présentation GTD
Présentation GTDPrésentation GTD
Présentation GTD
 
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
 
Management de projet
Management de projetManagement de projet
Management de projet
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Presto overview
Presto overviewPresto overview
Presto overview
 

En vedette

Ado.net base de données
Ado.net   base de donnéesAdo.net   base de données
Ado.net base de donnéesNosnos Nisrine
 
Veille méditerranée octobre 2015
Veille méditerranée octobre  2015Veille méditerranée octobre  2015
Veille méditerranée octobre 2015
Maë Coat
 
01 utilisation de la productivite primaire v4 (06 12 2012)-1
01  utilisation de la productivite primaire v4 (06 12 2012)-101  utilisation de la productivite primaire v4 (06 12 2012)-1
01 utilisation de la productivite primaire v4 (06 12 2012)-1Romeo Guarneri
 
Le Crowdsourcing Journalism en 7 slides
Le Crowdsourcing Journalism en 7 slidesLe Crowdsourcing Journalism en 7 slides
Le Crowdsourcing Journalism en 7 slides
E-voir
 
Egc05 atelier rnti-e-5_(extraits)
Egc05 atelier rnti-e-5_(extraits)Egc05 atelier rnti-e-5_(extraits)
Egc05 atelier rnti-e-5_(extraits)sinfst
 
innovaciones tecnologicas
innovaciones tecnologicasinnovaciones tecnologicas
innovaciones tecnologicas
Sin Senos No Hay Paraiso !
 
Midnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentationMidnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentation
Midnight Locomotive
 
Lection 6
Lection 6Lection 6
Lection 6
Grigory Gribov
 
Qu'est-ce que la CAO ?
Qu'est-ce que la CAO ? Qu'est-ce que la CAO ?
Qu'est-ce que la CAO ?
Visiativ Africa
 
Pronodix : classement général provisoire
Pronodix : classement général provisoirePronodix : classement général provisoire
Pronodix : classement général provisoire
benjaave
 
Classement général Pronodix
Classement général PronodixClassement général Pronodix
Classement général Pronodixbenjaave
 
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
gregoire_fonderie
 
Comment personnaliser votre CD et dessin animé avec notre logiciel
Comment personnaliser votre CD et dessin animé avec notre logicielComment personnaliser votre CD et dessin animé avec notre logiciel
Comment personnaliser votre CD et dessin animé avec notre logiciel
Mon Monde à Moi
 
Family album french
Family album  frenchFamily album  french
Family album frenchMirkaGarcia
 
Oferta entrenamientos Crear Líderes
Oferta entrenamientos Crear LíderesOferta entrenamientos Crear Líderes
Oferta entrenamientos Crear Líderes
Ritch Dávila
 
Sairé
SairéSairé
Acuerdo 97
Acuerdo 97Acuerdo 97
Acuerdo 97
OTONIEL GUERRERO
 
Redacción de contenidos
Redacción de contenidosRedacción de contenidos
Redacción de contenidos
Arturo Llaca
 

En vedette (20)

Ado.net base de données
Ado.net   base de donnéesAdo.net   base de données
Ado.net base de données
 
Veille méditerranée octobre 2015
Veille méditerranée octobre  2015Veille méditerranée octobre  2015
Veille méditerranée octobre 2015
 
01 utilisation de la productivite primaire v4 (06 12 2012)-1
01  utilisation de la productivite primaire v4 (06 12 2012)-101  utilisation de la productivite primaire v4 (06 12 2012)-1
01 utilisation de la productivite primaire v4 (06 12 2012)-1
 
Le Crowdsourcing Journalism en 7 slides
Le Crowdsourcing Journalism en 7 slidesLe Crowdsourcing Journalism en 7 slides
Le Crowdsourcing Journalism en 7 slides
 
Egc05 atelier rnti-e-5_(extraits)
Egc05 atelier rnti-e-5_(extraits)Egc05 atelier rnti-e-5_(extraits)
Egc05 atelier rnti-e-5_(extraits)
 
innovaciones tecnologicas
innovaciones tecnologicasinnovaciones tecnologicas
innovaciones tecnologicas
 
Midnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentationMidnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentation
 
Lection 6
Lection 6Lection 6
Lection 6
 
Qu'est-ce que la CAO ?
Qu'est-ce que la CAO ? Qu'est-ce que la CAO ?
Qu'est-ce que la CAO ?
 
Pronodix : classement général provisoire
Pronodix : classement général provisoirePronodix : classement général provisoire
Pronodix : classement général provisoire
 
Premiers pas
Premiers pasPremiers pas
Premiers pas
 
Classement général Pronodix
Classement général PronodixClassement général Pronodix
Classement général Pronodix
 
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
Présentation de l'appel à projets régional "Espaces de travail collaboratif" ...
 
Comment personnaliser votre CD et dessin animé avec notre logiciel
Comment personnaliser votre CD et dessin animé avec notre logicielComment personnaliser votre CD et dessin animé avec notre logiciel
Comment personnaliser votre CD et dessin animé avec notre logiciel
 
Family album french
Family album  frenchFamily album  french
Family album french
 
Projet tcsp de martique
Projet tcsp de martiqueProjet tcsp de martique
Projet tcsp de martique
 
Oferta entrenamientos Crear Líderes
Oferta entrenamientos Crear LíderesOferta entrenamientos Crear Líderes
Oferta entrenamientos Crear Líderes
 
Sairé
SairéSairé
Sairé
 
Acuerdo 97
Acuerdo 97Acuerdo 97
Acuerdo 97
 
Redacción de contenidos
Redacción de contenidosRedacción de contenidos
Redacción de contenidos
 

Similaire à Crystal Report avec Microsoft Visual Studio 2010

Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
Lilia Sfaxi
 
Atelier18
Atelier18 Atelier18
Atelier18
ChaimaaKibal
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Slides ceplex
Slides ceplexSlides ceplex
Slides ceplexTECOS
 
Jet Reports Pour Microsoft Dynamics NAV
Jet Reports Pour Microsoft Dynamics NAVJet Reports Pour Microsoft Dynamics NAV
Jet Reports Pour Microsoft Dynamics NAVMaroua Bouhachem
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
FethiBenYahia1
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
Laurent BUNIET
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
FethiBenYahia1
 
Spring ioc
Spring iocSpring ioc
Spring ioc
Lhouceine OUHAMZA
 
Guide talend
Guide talendGuide talend
Guide talend
Nassim Bahri
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
bouchakyahya0
 
Tp5 - WINDEV
Tp5 - WINDEVTp5 - WINDEV
Tp5 - WINDEV
Lilia Sfaxi
 
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...Ro Muñoz Z.
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQL
mohamednacim
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdf
ssuser1e81bd1
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdf
ssuser1e81bd1
 
Asp.Net Futures
Asp.Net FuturesAsp.Net Futures
Asp.Net Futuresloicbar
 
ASP.NET Futures
ASP.NET FuturesASP.NET Futures
ASP.NET Futuresloicbar
 

Similaire à Crystal Report avec Microsoft Visual Studio 2010 (20)

Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Guidetalendd
GuidetalenddGuidetalendd
Guidetalendd
 
Atelier18
Atelier18 Atelier18
Atelier18
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Slides ceplex
Slides ceplexSlides ceplex
Slides ceplex
 
Jet Reports Pour Microsoft Dynamics NAV
Jet Reports Pour Microsoft Dynamics NAVJet Reports Pour Microsoft Dynamics NAV
Jet Reports Pour Microsoft Dynamics NAV
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
Spring ioc
Spring iocSpring ioc
Spring ioc
 
Guide talend
Guide talendGuide talend
Guide talend
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
 
Tp5 - WINDEV
Tp5 - WINDEVTp5 - WINDEV
Tp5 - WINDEV
 
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...
Comment faire un digramme de pareto avec les tableaux croissees dynamiques d ...
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQL
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdf
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdf
 
Asp.Net Futures
Asp.Net FuturesAsp.Net Futures
Asp.Net Futures
 
ASP.NET Futures
ASP.NET FuturesASP.NET Futures
ASP.NET Futures
 

Plus de Wiki Info Systeme

Introduction à l’infographie
Introduction à l’infographieIntroduction à l’infographie
Introduction à l’infographie
Wiki Info Systeme
 
Comment gerer votre identite numerique
Comment gerer votre identite numeriqueComment gerer votre identite numerique
Comment gerer votre identite numerique
Wiki Info Systeme
 
Présentation du thème
Présentation du thèmePrésentation du thème
Présentation du thème
Wiki Info Systeme
 
Identité numérique
Identité numériqueIdentité numérique
Identité numérique
Wiki Info Systeme
 
My droid
My droidMy droid
Les Widgets
Les WidgetsLes Widgets
Les Widgets
Wiki Info Systeme
 
Hello droid
Hello droidHello droid
Hello droid
Wiki Info Systeme
 
E learning
E learningE learning
E learning
Wiki Info Systeme
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
Wiki Info Systeme
 
Les tableaux en Java
Les tableaux en JavaLes tableaux en Java
Les tableaux en Java
Wiki Info Systeme
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
Wiki Info Systeme
 
Premier manuel d'informatique
Premier manuel d'informatiquePremier manuel d'informatique
Premier manuel d'informatique
Wiki Info Systeme
 
Cahier d'exercices-Dactylographie
Cahier d'exercices-DactylographieCahier d'exercices-Dactylographie
Cahier d'exercices-Dactylographie
Wiki Info Systeme
 
Exercice sur les classes en Java
Exercice sur les classes en JavaExercice sur les classes en Java
Exercice sur les classes en Java
Wiki Info Systeme
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
Wiki Info Systeme
 

Plus de Wiki Info Systeme (15)

Introduction à l’infographie
Introduction à l’infographieIntroduction à l’infographie
Introduction à l’infographie
 
Comment gerer votre identite numerique
Comment gerer votre identite numeriqueComment gerer votre identite numerique
Comment gerer votre identite numerique
 
Présentation du thème
Présentation du thèmePrésentation du thème
Présentation du thème
 
Identité numérique
Identité numériqueIdentité numérique
Identité numérique
 
My droid
My droidMy droid
My droid
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 
Hello droid
Hello droidHello droid
Hello droid
 
E learning
E learningE learning
E learning
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Les tableaux en Java
Les tableaux en JavaLes tableaux en Java
Les tableaux en Java
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
 
Premier manuel d'informatique
Premier manuel d'informatiquePremier manuel d'informatique
Premier manuel d'informatique
 
Cahier d'exercices-Dactylographie
Cahier d'exercices-DactylographieCahier d'exercices-Dactylographie
Cahier d'exercices-Dactylographie
 
Exercice sur les classes en Java
Exercice sur les classes en JavaExercice sur les classes en Java
Exercice sur les classes en Java
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 

Dernier

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 

Dernier (9)

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 

Crystal Report avec Microsoft Visual Studio 2010

  • 1. 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
  • 2. 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)
  • 3. 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) :
  • 4. 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)
  • 5. 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).
  • 6. 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)
  • 7. 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
  • 8. Wiki Info Système | Préparé par ING. David JOSEPH Figure 9 Clic sur OK
  • 9. 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
  • 10. 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.
  • 11. 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;
  • 12. 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]; }
  • 13. 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) {
  • 14. 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]; } } }