Générer un rapport en utilisant Crystal Reports dans Visual Studio 2010
Commençons par créer un nouveau site Web dans
Visual studio 2010. Voir l'écran suivant
Conformément à la figure 1 de créer un nouveau site Web dans VS2010 et l'a nommé selon votre choix.
Maintenant laissez-moi vous montrer la structure de la table base de données.
|
Figure 2 |
Figure ci-dessus montre la structure de la table db. Et figure ci-dessous (figure 3) va vous montrer quelques exemples de données dans la table
|
Figure 3 |
Ci-dessous figure le processus de vous montrer comment créer un fichier XML Shema(Dataset)
Pour ajouter un fichier DataSet, cliquez sur
l'Explorateur de solutions -> clic droit
sur le projet -> cliquer sur Ajouter un nouvel élément et ensuite il va vous montrer ci-dessous l'écran.
|
Figure 4 |
Cliquez sur le bouton OK afin qu'il vous demandera de confirmer à mettre ce fichier dans le dossier App_Code vous suffit de cliquer sur OK et que ce fichier sera ouvert dans l'écran comme écran vide.
Maintenant nous allons ajouter un blanc DataTable vers ce fichier XSD. Juste un clic droit sur le fichier et sélectionnez Ajouter -> DataTable. Il va ajouter une DataTable1 à l'écran.
La figure 5 montre comment ajouter DataTable xsd.
|
Figure 5 |
C'est tout. Création d'un fichier XSD qui a été fait.
Nous allons maintenant passer à créer la conception de Crystal report.
Il suffit de cliquer sur le Solution Explorer -> clic droit sur
le nom du projet et sélectionnez Crystal Reports. Nommez selon votre choix et cliquez sur le bouton Ajouter
Figure 7 va vous montrer le processus de création de Crystal report.
|
Figure 8 |
|
Figure 9 |
Il suffit de cliquer le bouton OK pour continuer. Il vous mènera à la figure 9
|
Figure 10
Sous les données du projet d'élargir données ADO.NET et sélectionnez DataTable1 et ajouter à la partie tableau sélectionné situé à la droite de la fenêtre en utilisant le bouton>.
Maintenant, cliquez sur le bouton Terminer et il affichera l'écran suivant (figure 11).
|
Figure 11
Code Default.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Crystal_Report
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
DSEtudiants ds = new DSEtudiants();
DataTable dt = new DataTable();
// Il faut mettre le nom de la table
dt.TableName = "Crystal Report Exemple";
dt = getListeEtudiants(); //Fonction qui retourne la liste des étudiant elle est définit en bas
ds.Tables[0].Merge(dt);
// Le fichier.rpt c'est le fichier du rapport
rptDoc.Load(Server.MapPath("Rapport.rpt"));
//Changer le dataset du report viewer.
rptDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = rptDoc;
}
public DataTable getListeEtudiants()
{
//ConnectionString :remplacer le servername par le nom de votre de votre serveur et le //CrystalReport par le nom de la base de données
string sqlCon = "User ID=sa;PWD=sa; server=servername;INITIAL CATALOG=CrystalReport;Connect Timeout=0";
SqlConnection Con = new SqlConnection(sqlCon);
SqlCommand cmd = new SqlCommand();
DataSet ds = null;
SqlDataAdapter adapter;
try
{
Con.Open();
//GetListeEtudiants est une procedure stocké pour avoir la liste des étudiants
cmd.CommandText = "GetListeEtudiants";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Con;
ds = new DataSet();
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "Etudiants");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
if (Con.State != ConnectionState.Closed)
Con.Close();
}
return ds.Tables[0];
}
}
}
Résultat: