Nom du livret

Transcription

Nom du livret
Secteur Tertiaire Informatique
Filière étude - développement
Activité « Développer des composants d’interface »
Générer un état avec Crystal Report
Accueil
Apprentissage
Période en
entreprise
Evaluation
Code barre
SOMMAIRE
I INTRODUCTION....................................................................4
I.1 Présentation.................................................................................4
II CONCEPTION D’UN ETAT........................................................5
II.1
II.2
II.3
II.4
II.5
II.6
II.7
Les sections d’un état.....................................................................5
Les types de données d’un rapport.....................................................6
La mise en forme des données...........................................................7
Exemple.....................................................................................8
Définition des champs paramètres.....................................................11
Définition des paramètres d’impression..............................................12
Définition des paramètres d’exportation.............................................14
III LES APPLICATIONS WEB.......................................................15
III.1 Utilisation du modèle objet CrystalReportViewer .................................15
III.2 Utilisation du modèle objet ReportDocument ......................................16
Générer un état avec Cristal Reports
afpa  2007– Informatique et télécoms – filière étude développement
3/17
I
INTRODUCTION
Développé par la société Crystal Decisions, racheté aujourd’hui par la société
Business Objects, Crystal Reports permet de créer des états de qualité basés sur
diverses sources de données. Cet outil permet d'accélérer le processus de création
d'applications dites de reporting.
Crystal Reports extrait des données d’une base de données, ou utilise un resultset
ou un dataset créé dans le programme. Crystal Reports regroupe ces données et
effectue des totaux pour produire des rapports mis en forme avec la possibilité
d’utiliser des graphiques. Ces rapports peuvent être pré visualisés et/ou exportés
sous forme de fichiers Words, Excel ou pdf.
I.1
PRÉSENTATION
Crystal Reports est un outil permettant aux développeurs de concevoir rapidement
des états de qualité basés sur différents types de sources de données et pouvant
être intégrés au sein d’applications diverses (Web ou Windows).
Il existe une version autonome en évaluation qui permet de se familiariser avec
l'outil.
Dans sa version pour Microsoft Visual Studio .NET, Crystal Reports est entièrement
intégré à l’environnement de développement facilitant la création d’états par
simples opérations de glisser-déposer.
Pour être utilisé sur une plateforme J2EE, en open source, il existe un plugin pour
Eclipse.
Crystal Reports intègre un certain nombre d'experts et d'assistants qui vous aident,
étape par étape, à créer différents types de rapports, préparer des diagrammes,
définir le format général de votre rapport, relier des bases de données associées,
sélectionner des enregistrements et des groupes à insérer dans le rapport et
regrouper des fichiers à inclure lors de la distribution de votre rapport
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
4/17
II CONCEPTION D’UN ETAT
II.1 LES SECTIONS D’UN ÉTAT
Tout état dont la conception est initialisée par Crystal Reports est identifié par un
type et une source de données; il se structure par défaut sur cinq niveaux :
• En-tête de rapport
Cette section contient toutes les informations qui seront imprimées une
seule fois, au début du rapport, notamment son titre. Vous pouvez également y placer des tableaux croisés et des diagrammes qui contiennent des
données concernant le rapport entier.
• En-tête de page
Cette section est normalement destinée aux données qui doivent s'afficher
en haut de chaque page. Il peut s'agir d'informations telles que les noms
des chapitres, le nom du document, etc. Vous pouvez également l'utiliser
pour afficher un intitulé au-dessus des champs d'un rapport. Diagrammes et
tableaux croisés ne peuvent pas figurer dans cette section, les formules
placées dans cette section sont évaluées à chaque nouvelle page.
• Détails
Cette section, le corps du rapport, est imprimée une fois par enregistrement. C'est là qu'apparaît l'essentiel des données du rapport. Diagrammes
et tableaux croisés ne peuvent pas figurer dans cette section, les formules
placées dans cette section sont évaluées à chaque enregistrement.
• Pied de page du rapport
Cette section est réservée aux totaux généraux, aux diagrammes et aux tableaux croisés portant sur la totalité du rapport, et plus généralement, à
toute information que vous ne voulez voir apparaître qu'une seule fois, à la
fin du rapport.
• Pied de page
Cette section est habituellement destinée au numéro de page et à d'autres
informations qui doivent apparaître au pied de chaque page.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
5/17
Lorsque vous ajoutez un groupe, un résumé ou un sous total à votre rapport, le programme crée deux sections supplémentaires :
• En tête de groupe (au dessus de la section Détails)
Vous placerez dans cette section le champ de nom de groupe, et si nécessaire, des diagrammes et des tableaux croisés comprenant des données du
groupe. Cette section est imprimée au début du groupe.
• Pied de page de groupe (au dessous de la section Détails)
Cette section contient généralement la valeur de résumé, s'il y en a une, et
elle peut être utilisée pour afficher des diagrammes ou des tableaux croisés ; cette section est imprimée à la fin du groupe.
II.2 LES TYPES DE DONNÉES D’UN RAPPORT
La plupart des données placées dans un rapport sont des champs de base de données qui seront normalement placés dans la section Détail.
Certaines données ne peuvent être extraites directement de la base de données et
doivent être calculées. Il est parfois nécessaire d'ajouter à un rapport des données
qui ne se trouvent pas dans les champs de données. On peut alors créer un champ
de formule, par exemple :
• Pour créer un champ du type Prix total = Qte * prix unitaire
• Pour mettre en forme l’apparence d’un texte, de champs de base de données
• Pour sélectionner les enregistrements pris en compte dans le rapport
Lors de la création de formules, vous pouvez utiliser la syntaxe Crystal ou la
syntaxe Visual Basic. Chaque formule de Crystal Reports doit renvoyer une valeur
de type Nombre, Devise, Chaîne, Booléen, Date, Heure et Date/heure.
L’éditeur de formules présente 3 fenêtres (champ du rapport, fonctions,
opérateurs) permettant de créer toute formule dans une 4eme fenêtre.
Un champ d'expression SQL utilise la syntaxe SQL au lieu du langage de formule de
Crystal Reports utilisé dans un champ de formule. Les expressions SQL permettent
d'extraire de la base de données des ensembles de données spécifiques. Il est possible de trier, regrouper et sélectionner ces données à partir de champs d'expression SQL.
Pour inviter l'utilisateur d'un rapport à saisir des informations, vous créez un champ
de paramètre. Un paramètre peut être considéré comme une question à laquelle
l'utilisateur doit répondre avant que le rapport ne puisse être généré. Les informations saisies par l'utilisateur (la réponse) permettent de déterminer ce qui apparaîtra dans le rapport. Un rapport utilisé par le service des ventes utilisera par
exemple un paramètre demandant à l'utilisateur de choisir une région. Le rapport
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
6/17
renverra alors les résultats pour la région spécifiée, au lieu de renvoyer les résultats pour toutes les régions confondues.
Pour afficher un total qui cumule toutes les valeurs d’un champ (ou de toutes les
valeurs dans certains ensembles de valeurs) sur les enregistrements sélectionnés,
vous devez créer un champ de total cumulé et l'insérer dans le rapport.
Crystal Reports vous permet d'insérer très facilement dans votre rapport des
champs spéciaux comme le numéro de page, le numéro d'enregistrement, le numéro de groupe, la date d'impression, le nombre total de pages..etc …
Lors de la conception d'un rapport, il s'avère parfois nécessaire d'insérer une
image. Ainsi, vous pouvez souhaiter faire apparaître le logo d'une entreprise dans
l'en-tête du rapport.
Les objets texte sont utilisés dans les rapports dans un grand nombre de cas. Ils
constituent un moyen puissant pour insérer des titres, étiqueter des résumés et
d'autres données sur votre rapport, et combiner facilement des champs de base de
données.
II.3 LA MISE EN FORME DES DONNÉES
Pour mettre en forme un objet
Cliquez avec le bouton droit de la souris sur l'objet et cliquez sur Mettre en
forme l'objet.
L’éditeur de mise en forme d’améliorer la présentation de l’objet : bordure,
police, paragraphe… toutes les définitions peuvent être fixes ou modulables par
des formules grâce à l’éditeur de formules appelé en cliquant sur
Pour mettre en forme un diagramme
Cliquez avec le bouton droit de la souris sur le diagramme et cliquez sur Expert
Diagramme.
Pour mettre en forme une section de rapport
Cliquez avec le bouton droit de la souris sur la section de rapport et cliquez sur
Expert Section.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
7/17
II.4 EXEMPLE
On désire éditer l’état des ventes par client pour le mois de janvier 2008, en affichant
en rouge tout CA client inférieur à 100 €.
Les 3 tables concernées de la base Article sont :
Clients (clt_Num, clt_Nom, clt_Pnom, clt_Loc, clt_pays)
Ventes (vnt_Clt, vnt_Mag, vnt_Art, vnt_Qte, vnt_Prix, vnt_Date)
Articles (art_Num, art_Nom, art_Poids, art_Coul, art_Pa, art_Pv, art_Qte, art_Frs)
Analyse de la conception du rapport :
Les sections En-tête de groupe n° 1 et Pied de Page de groupe n° 1 ont été créées
suite à l’ajout d’un nouveau groupe (grâce au menu contextuel Insérer un groupe
sur la ligne Champs de nom de groupe dans l’explorateur de champs .ou dans le
menu Crystal Reports / Insérer / Groupe), ce qui a permis d’insérer dans le rapport
un champ de regroupement, Nom du groupe n° 1.
L’objectif était de définir un groupe par client, les enregistrements étaient donc
triés par ordre croissant et regroupés par Clt_Nom de la table Clients.
Les chaînes de texte, Le ou Client : ou encore Total général : ont été saisies et
positionnées dans l'état grâce au menu contextuel sur la section Insérer / Objet
texte ou dans le menu Crystal Reports / Insérer / Objet texte. Le texte peut par la
suite être modifié au click droit sur l’objet texte, grâce à l’option Modifier l’objet
texte, et mis en forme (bordure, police, alignement …) grâce à l’option Mettre en
forme l’objet.
Les champs de base de données comme Art_Nom, Vnt_Qte ou Vnt_Prix ont été
positionnés sur l'état par Glisser Déposer de la fenêtre Explorateur de champs/
Champs de base de données à la fenêtre de conception.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
8/17
En développant l’arborescence, on remarquera que les champ utilisés dans le
rapport sont cochés ; en utilisant l’option Parcourir du menu contextuel de chaque
champ, on obtient la visualisation des données.
Les champs de total cumulé, bien que similaires aux champs de résumé, offrent
plus de contrôle sur la façon dont le total est calculé et sur le moment où il est
réinitialisé.
• Le champ #CaClient a été créé grâce au menu contextuel Nouveau sur la ligne
Champs de total cumulé dans l’Explorateur de champs.
Il a fallu définir le nom du champ, le nom du champ de la base de données sur
lequel porte l’opération (ventes.Vnt_Prix) ainsi que le type de l’opération
(somme) ; il a fallu également définir à quel moment était évalué le champ
(pour chaque enregistrement) et quand il devait être réinitialisé (au changement du groupe).
Tous ces paramétrages peuvent être modifiés grâce au menu contextuel du
champ de total avec l’option Modifier le total cumulé.
• Le champ de résumé correspondant au total général, a été créé grâce au
menu contextuel Insérer / Résumé ou a été défini le nom du champ à résumer
(ventes.Vnt_Prix), le type de l’opération (somme) et la section emplacement
du résumé.
Ce paramétrage peut être modifié grâce au menu contextuel du champ de
résumé avec l’option Changer l’opération de résumé.
Les champs spéciaux, date d’impression, titre du rapport, ainsi que le numéro de
page ont été positionnés sur l'état par Glisser Déposer de la fenêtre Explorateur de
champs/ Champs spéciaux à la fenêtre de conception ou par le menu Crystal
Reports / Insérer / Champs spéciaux.
Il aura fallu définir au préalable alimenter certains champs spéciaux (titre du
rapport, commentaires …) grâce à l’option du menu Crystal Reports/ Rapports /
Propriétés du rapport.
Une formule a été insérée dans l’éditeur de mise en forme pour afficher en rouge
tous les chiffres d’affaire inférieurs à 100€.
En cliquant, on obtient
l’éditeur de formules
Dans lequel a été saisi :
if {#CaClient}<100 then crRed else crBlack
Un champ de formule @VerifCA a été inséré grâce au menu contextuel Nouveau sur
la ligne Champs de formule dans l’Explorateur de champs.
if {#CaClient} < 100 then "???"
qui éditera ??? en rouge sur le rapport lorsque le chiffre d’affaire sera inférieur à
100.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
9/17
Notre objectif était d’analyser les ventes pour le mois de janvier 2008 :
On aurait pu définir une formule de sélection grâce au menu Crystal Reports/
Rapport / Formule de sélection qui nous permet de définir en dur, une formule du
style :
{Ventes.Vnt_Date} in DateTime (2008, 01, 01, 00, 00, 00) to DateTime (2008, 01,
31, 00, 00, 00)
Une solution plus souple est d’utiliser un champ de paramètre, créé grâce au menu
contextuel Nouveau sur la ligne Champs de paramètre dans l’Explorateur de
champs.
On créera donc 2 champs paramètres DatD et DatF qui représenteront les dates de
début et de fin de sélection.
Pour chaque paramètre, on indiquera alors son nom, le texte de l’invite associé
ainsi que le type du paramètre (chaîne, nombre, date …). Plusieurs options sont
disponibles permettant de définir si plusieurs valeurs sont autorisées, valeurs ou
plage de valeurs …
Il faut ensuite connecter les paramètre DatD et DatF au champ de base de données
souhaité, par le menu Crystal Reports/ Rapport / Expert sélection.
Les paramètres seront évalués lors de la demande de l’aperçu.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
10/17
L’aperçu du rapport principal donne :
II.5 DÉFINITION DES CHAMPS PARAMÈTRES
Les champs paramètres ont été définis dans le designer (voir paragraphe
Conception d’un état).
A ce stade, le projet peut être généré et exécuté. Une fenêtre automatique sera
ouverte pour permettre la saisie de la valeur du paramètre déclaré dans le rapport.
Toutefois, la valeur du paramètre peut provenir de champs saisis dans des
contrôles d’une feuille de notre projet Java.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
11/17
Dans notre exemple :
Les valeurs des paramètres seront issues de 2 contrôles DateTimePicker, dtpDateD
et dtpDateP
Pour passer les valeurs des paramètres du code de l’application à l’état, il se doit de
coder les lignes de codes suivantes :
En utilisant le modèle objet CrystalReportViewer :
ListeVentes myReport = new ListeVentes();
this.CRViewer.ReportSource = myReport;
// définition des infos de connection
// …
// définition des paramètres
ParameterFields PFS = CRViewer.ParameterFieldInfo;
PFS["DatD"].CurrentValues.AddValue(dtpDebut.Value.ToString());
PFS["DatF"].CurrentValues.AddValue(dtpFin.Value.ToString());
La collection de paramètres est extraite du viewer par le biais de sa collection
ParameterFields.
La valeur du paramètre est alors ajoutée à sa collection CurrentValues.
En utilisant le modèle objet ReportDocument :
Sous forme de rapport non incorporé, par le biais d’un objet ReportDocument,
l’affectation des paramètres se fera, de la même façon entre les instructions Load
et l’affectation de la propriété ReportSource du viewer.
ReportDocument myReport = new ReportDocument();
string strChemin = @"C:\Init C#\" + Application.ProductName +
"\\" + "ListeVentes.rpt";
myReport.Load(strChemin);
// définition des infos de connection
// …
// définition des paramètres
myReport.SetParameterValue("DatD", dtpDebut.Value);
myReport.SetParameterValue("DatF",dtpFin.Value);
this.CRViewer.ReportSource = myReport;
On peut aller plus loin dans la gestion des paramètres en donnant la possibilité à un
paramètre de prendre plusieurs valeurs et en gérant les valeurs par défaut.
II.6 DÉFINITION DES PARAMÈTRES D’IMPRESSION
L’impression d’un état peut s’effectuer de deux façons :
• Par le biais de l'interface utilisateur graphique (GUI) : avec le bouton
Imprimer de la barre d'outils fournie avec le contrôle CrystalReportViewer :
la boite standard d’impression sera affichée avec des options limitées (pas de
sélection de page, pas de choix de format de papier...)
• En utilisant l'objet ReportDocument
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
12/17
Le composant CrystalReportViewer permet de charger et de visualiser un état mais
permet également de l’imprimer.
Afin de personnaliser l’impression d’un état, il est possible de lui définir des
options d’impression par l’intermédiaire de la propriété PrintOptions de l’objet
ReportDocument.
Cette propriété contient d’autres propriétés dont voici un bref aperçu :
• PageMargins obtient ou définit les marges d’impression
• PaperOrientation obtient ou définit l’orientation du papier (portrait ou
paysage).
• PaperSize obtient ou définit la taille du papier utilisé (A3, A4, enveloppe, …).
• PaperSource obtient ou définit la source de papier à utiliser (bac
d’alimentation supérieur, cassette papier, …).
• PrinterDuplex obtient ou définit l’option de duplex de l’imprimante
(impression simple face, impression recto-verso, …).
• PrinterName obtient ou définit le nom de l’imprimante à utiliser.
Un état peut être imprimé directement à partir du code de l’application par
l’intermédiaire de la méthode PrintToPrinter, membre de l’objet
ReportDocument. Cette méthode permet de définir le nombre de copies et les
numéros des premières et dernières pages à imprimer.
Pour de plus amples informations, se référer à la documentation de Crystal
Reports. (aide en ligne)
Exemple : au click sur le bouton Imprimer défini sur la feuille, impression du
rapport chargé précédemment en utilisant les énumérations PaperOrientation et
PaperSize de l’espace de nom CrystalDecisions.Shared.
private void btnImprimer_Click(object sender, EventArgs e)
{
//définition des options d’impression
PrintOptions printOptions = myReport.PrintOptions;
printOptions.PrinterName = @"\\Servpsi\Lexmark";
printOptions.PaperOrientation = PaperOrientation.Portrait;
printOptions.PaperSize = PaperSize.PaperA4;
try
{
//appeler l’impression non assemblée de la page 1
// à la page 99.
myReport.PrintToPrinter(1, false, 1, 99);
string message = "OK";
}
catch (Exception ex)
{
string message = "KO" + ex.Message;
}
}
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
13/17
II.7 DÉFINITION DES PARAMÈTRES D’EXPORTATION
Dans certains cas, un état ne doit pas être imprimé mais exporté sous la forme
d’un fichier texte (pdf, Excel, Word, …). L’exportation d’un état peut s’effectuer
de deux façons :
• Par le biais de l'interface utilisateur graphique (GUI) : avec le bouton Exporter
de la barre d'outils fournie avec le contrôle CrystalReportViewer (pas
d’exportation possible en HTML)
• En utilisant l'objet ReportDocument, au travers de sa propriété ExportOptions
Celle-ci contient d’autres propriétés dont voici un bref aperçu :
• ExportDestinationType obtient ou définit la destination d'exportation de
l’état (serveur Microsoft Exchange, serveur Mail Microsoft, fichier sur le
disque).
• ExportFormatType obtient ou définit le format d’exportation (fichier html,
Word, Excel, …).
• ExportFormatOptions obtient ou définit les options de formatage pour le type
d’exportation sélectionné précédemment.
La méthode membre Export permet ensuite d’exporter l’état suivant les options
définies précédemment.
Exemple : : au click sur le bouton Exporter défini sur la feuille, export du rapport
chargé précédemment en tant que fichier disque de format pdf en utilisant les
énumérations ExportDestinationType et ExportFormatType de l’espace de nom
CrystalDecisions.Shared.
private void btnExporter_Click(object sender, EventArgs e)
{
// Options
ExportOptions eO = new ExportOptions();
eO.ExportDestinationType = ExportDestinationType.DiskFile;
eO.ExportFormatType = ExportFormatType.PortableDocFormat;
// Propriétés pour export
DiskFileDestinationOptions dfo = ExportOptions.CreateDiskFileDestinationOptions();
dfo.DiskFileName = @"C:\\Init C#\\liste.pdf";
eO.ExportDestinationOptions = dfo;
// Exportation
myReport.Export(eO);
}
L’instance de la classe ExportOptions va stocker par ses propriétés
ExportDestinationType et ExportFormatType la destination d’exportation, ainsi
que le format d’exportation.
Le nom du fichier disque sera stocké par sa propriété ExportFormatOptions grâce
à un objet de la classe DiskFileDestinationOptions.
La méthode Export sera ensuite appelée avec son argument l’instance de la classe
ExportOptions.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
14/17
III LES APPLICATIONS WEB
La création d’un état Crystal Reports au sein d’un projet Web est la même que
pour une application Windows : Pour afficher un état au sein d’une application, il
suffit de l’associer au CrystalReportViewer de l’application.
Le contrôle CrystalReportViewer comporte sensiblement les mêmes propriétés que
dans le cas d’applications Windows à une différence près : une nouvelle propriété
ReportSourceId
Les conséquences :
On peut toujours utiliser les modèles objet CrystalReportViewer et
ReportDocument comme précédemment dans les applications Windows. Une
xxxxxxxxxxxxxxxxxxx
Généralement, le gestionnaire d'événements Page_Load permet de saisir le code de
configuration du Web Form dans une application Web ASP.NET de manière à ce que
ces instructions soient appelées pendant l'événement Page.Load (rechargement des
pages à partir du Viewstate, ce qui implique une sérialisation des données)
Mais le code de configuration du rapport Crystal doit être appelé plus tôt, car le
contrôle CrystalReportViewer se lie à des objets qui ne peuvent pas être sérialisés
(classe ReportDocument).
La solution recommandée consiste à placer le code de liaison du rapport dans l'événement Init qui s'exécute avant que ViewState ne soit restauré. Dans un Web Form
C# de Visual Studio 2005, les gestionnaires d'événements Page_Init, Page_Load ou
Page_PreRender de la classe code-behind sont connectés automatiquement à l'événement Init, Load ou PreRender lorsque le paramètre AutoEventWireup de la directive Page est défini sur True. La signature de gestionnaire d'événement doit correspondre exactement pour pouvoir être appelée.
III.1 UTILISATION DU MODÈLE OBJET CRYSTALREPORTVIEWER
Exemple : Affichage du rapport incorporé ListeVentes.rpt au chargement de la
feuille frmListeVentes dans un contrôle CrystalReportViewer de nom CRViewer.
Le rapport est affiché au click sur le bouton Afficher.
private void Page_Init(object sender, EventArgs e)
{
ConnectionInfo conBDArticle = new ConnectionInfo();
conBDArticle.ServerName = "XXXXXX";
conBDArticle.DatabaseName = "Article";
conBDArticle.IntegratedSecurity = true;
// Recherche du chemin d’accès du fichier physique du rapport
string reportPath = Server.MapPath("ListeVentes.rpt");
CRViewer.ReportSource = reportPath;
// Infos de connexion
TableLogOnInfos tableLogOnInfos = CRViewer.LogOnInfo;
foreach (TableLogOnInfo tliCurrent in tableLogOnInfos)
{
tliCurrent.ConnectionInfo = conBDArticle;
}
}
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
15/17
Les valeurs des paramètres seront issues de 2 contrôles Calendar, calD et calF
protected void btnAfficher_Click(object sender, EventArgs e)
{
// paramètres
ParameterFields PFS = CRViewer.ParameterFieldInfo;
PFS["DatD"].CurrentValues.AddValue(this.calD.SelectedDate.ToString());
PFS["DatF"].CurrentValues.AddValue(this.calF.SelectedDate.ToString());
this.CRViewer.Visible = true;
}
III.2 UTILISATION DU MODÈLE OBJET REPORTDOCUMENT
Exemple : Affichage du rapport incorporé ListeVentes.rpt au chargement de la
feuille frmListeVentes dans un contrôle CrystalReportViewer de nom CRViewer.
Le rapport est affiché au click sur le bouton Afficher.
Les valeurs des paramètres seront issues de 2 contrôles Calendar, calD et calF
ReportDocument myReport;
//…
private void Page_Init(object sender, EventArgs e)
{
myReport = new ReportDocument();
// Recherche du chemin d’accès du fichier physique du rapport
string reportPath = Server.MapPath("ListeVentes.rpt");
myReport.Load(reportPath);
this.CRViewer.ReportSource = myReport;
// définition des infos de connection
ConnectionInfo conBDArticle = new ConnectionInfo();
conBDArticle.ServerName = "XXXXXX";
conBDArticle.DatabaseName = "Article";
conBDArticle.IntegratedSecurity = true;
TableLogOnInfo tliCurrent;
foreach (CrystalDecisions.CrystalReports.Engine.Table tblTable
in myReport.Database.Tables)
{
tliCurrent = tblTable.LogOnInfo;
tliCurrent.ConnectionInfo = conBDArticle;
tblTable.ApplyLogOnInfo(tliCurrent);
}
}
protected void btnAffiche_Click(object sender, EventArgs e)
{
// définition des paramètres
myReport.SetParameterValue("DatD", this.CalD.SelectedDate);
myReport.SetParameterValue("DatF", this.CalF.SelectedDate);
//this.CRViewer.ReportSource = myReport;
this.CRViewer.Visible = true;
}
L’impression et l’exportation se gèrent de la même manière que pour une
pplication WinForm.
Générer un état avec Crystal Reports
afpa  2008– Informatique et télécoms – filière étude développement
16/17
Etablissement référent
DI NEUILLY
Équipe de conception
Elizabeth Cattanéo (AFPA Marseille Saint Jérôme)
Remerciements :
Noms ou texte
sogos financeurs
crédit photos
Reproduction interdite
Article L 122-4 du code de la propriété intellectuelle.
« toute représentation ou reproduction intégrale ou partielle faite sans le
consentement de l’auteur ou de ses ayants droits ou ayants cause est
illicite. Il en est de même pour la traduction, l’adaptation ou la
reproduction par un art ou un procédé quelconques. »
Date de mise à jour jj/mm/aa
afpa  Date de dépôt légal mois année
afpa / Direction de l’Ingénierie13 place du Générale de Gaulle / 93108 Montreuil
Cedex
association nationale pour la formation professionnelle des adultes
Ministère des Affaires sociales du Travail et de la Solidarité

Documents pareils