SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
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];
}
}
}

Mais conteúdo relacionado

Mais procurados

Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRHRiadh K.
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5YounessLaaouane
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...HORIYASOFT
 
Cahier des charges site internet
Cahier des charges site internetCahier des charges site internet
Cahier des charges site internetEPC Familia
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileNader Somrani
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud ComputingTsubichi
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
Corrigé qcm initiation informatique sgbd - réseau - internet - architectu...
Corrigé qcm   initiation informatique   sgbd - réseau - internet - architectu...Corrigé qcm   initiation informatique   sgbd - réseau - internet - architectu...
Corrigé qcm initiation informatique sgbd - réseau - internet - architectu...Sofien Zarrouki
 
Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5YounessLaaouane
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidBadrElattaoui
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Mohamed Aziz Chetoui
 
Rapport de projet de fin d'année
Rapport de projet de fin d'année Rapport de projet de fin d'année
Rapport de projet de fin d'année kaies Labiedh
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Ayed CHOKRI
 
Rapport gestion de stock.pdf
Rapport gestion de stock.pdfRapport gestion de stock.pdf
Rapport gestion de stock.pdfAchrafAntri2
 

Mais procurados (20)

Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
 
Cahier des charges site internet
Cahier des charges site internetCahier des charges site internet
Cahier des charges site internet
 
Analyse et cahier des charges
Analyse et cahier des chargesAnalyse et cahier des charges
Analyse et cahier des charges
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud Computing
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Corrigé qcm initiation informatique sgbd - réseau - internet - architectu...
Corrigé qcm   initiation informatique   sgbd - réseau - internet - architectu...Corrigé qcm   initiation informatique   sgbd - réseau - internet - architectu...
Corrigé qcm initiation informatique sgbd - réseau - internet - architectu...
 
Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5
 
Pfe 2015
Pfe 2015Pfe 2015
Pfe 2015
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Rapport de projet de fin d'année
Rapport de projet de fin d'année Rapport de projet de fin d'année
Rapport de projet de fin d'année
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 
Rapport gestion de stock.pdf
Rapport gestion de stock.pdfRapport gestion de stock.pdf
Rapport gestion de stock.pdf
 

Destaque

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 2015Maë 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 slidesE-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
 
Midnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentationMidnight Locomotive / Dossier de présentation
Midnight Locomotive / Dossier de présentationMidnight Locomotive
 
Pronodix : classement général provisoire
Pronodix : classement général provisoirePronodix : classement général provisoire
Pronodix : classement général provisoirebenjaave
 
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 logicielMon 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íderesRitch Dávila
 
Redacción de contenidos
Redacción de contenidosRedacción de contenidos
Redacción de contenidosArturo Llaca
 

Destaque (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
 

Semelhante a 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 ETLLilia Sfaxi
 
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
 
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.5Laurent BUNIET
 
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.
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQLmohamednacim
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfssuser1e81bd1
 
la-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfla-bible-du-tcd-2.pdf
la-bible-du-tcd-2.pdfssuser1e81bd1
 
ASP.NET Futures
ASP.NET FuturesASP.NET Futures
ASP.NET Futuresloicbar
 
Asp.Net Futures
Asp.Net FuturesAsp.Net Futures
Asp.Net Futuresloicbar
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 

Semelhante a 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
 
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 ...
 
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
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 

Mais 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
 

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]; } } }