Your SlideShare is downloading. ×
Crystal Report avec Microsoft Visual Studio 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Crystal Report avec Microsoft Visual Studio 2010

2,275
views

Published on

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 …

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,275
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
114
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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