Le contenu suivant est le code du programme :
Avant d'étudier Crystal Reports dans VS.Net, mon ami et moi étions très curieux de savoir comment ajouter ces éléments compliqués à notre application Web. Une semaine plus tard, après avoir lu de nombreux documents "HOWTO", nous avons ajouté avec succès quelques rapports simples à notre programme Asp.net et obtenu quelques conseils.
Cet article vous apprend à utiliser Crystal Reports dans les applications Web .Net et peut également vous aider à éviter les détours dans le processus d'apprentissage. Afin d'obtenir les meilleurs résultats, les lecteurs doivent avoir des connaissances de base sur l'accès à la base de données Asp.Net et une expérience de développement à l'aide de VS.Net.
Introduction
Crystal Reports peut être obtenu de plusieurs manières, dont l'une consiste à utiliser VS.Net pour le créer, ce qui fournit un modèle très riche qui nous permet d'exploiter les propriétés et les méthodes au moment de l'exécution. Si vous utilisez VS.Net pour développer des programmes .Net, vous n'avez pas besoin d'installer d'autres logiciels car ils sont déjà intégrés dans VS.Net.
avantage:
VS.Net Crystal Reports présente les principaux avantages suivants :
Développement rapide de rapports
Possibilité d'exporter dans des graphiques interactifs complexes
Peut être utilisé dans WebForm avec d'autres contrôles
Capable d'exporter dynamiquement des rapports au format .pdf, .doc, xls, html, rtf et autres formats
structure:
Certains composants constituent la structure à deux niveaux de Crystal Reports. Les applications Web requises sont :
Client:
Le client n'a besoin que d'un navigateur pouvant accéder au rapport intégré dans la page aspx.
serveur:
- Moteur de rapport Crystal (CREngine.dll)
Il peut effectuer certaines tâches, telles que la fusion de données dans des fichiers de rapport, la conversion de rapports vers d'autres formats, etc. C'est précisément grâce au moteur de reporting que Crystal Reports dans Asp.Net peut être converti au format HTML ordinaire.
- Concepteur de rapports Crystal (CRDesigner.dll)
Les Crystal Reports sont créés dans le concepteur, où vous pouvez concevoir des titres, insérer des données, des formules, des graphiques, des sous-rapports, etc.
- Fichier de rapport .rpt
La première étape de l'exécution d'un rapport consiste à créer ce rapport dans l'interface de Crystal Report Designer. Microsoft a fourni des exemples .rpt prêts à l'emploi dans l'installation par défaut.
-Source de données
La méthode d'obtention de la base de données à partir du fichier .rpt dépend de votre choix de méthode. Vous pouvez choisir de laisser Crystal Reports sélectionner les données lui-même sans utiliser de code ou vous pouvez choisir d'assembler manuellement le DataSet, puis de le transférer vers le fichier de rapport. .
- Contrôle de formulaire Web Crystal Report Viewer (CRWebFormViewer.dll)
Le contrôle Crystal Report View est un contrôle WebForm, qui peut être considéré comme un conteneur qui stocke des rapports dans une page .aspx. Remarque : Dans certaines opérations complexes, le serveur de rapports et le serveur Web peuvent ne pas se trouver sur le même hôte physique et le serveur Web transmet la requête HTTP au serveur de rapports. Crystal Reports peut également être exécuté en tant que WebService.
La récupération des données de Crystal Reports en mode exécution peut être réalisée à l'aide des méthodes suivantes :
- Mode tirer :
Sur demande, Crystal Reports se connecte directement à la base de données en fonction du pilote spécifié et rassemble les données.
- Mode poussée :
À ce stade, la table de développement doit écrire son propre code pour connecter les données et assembler le DataSet, et en même temps le transférer vers le rapport. Dans ces cas, vous pouvez optimiser les performances du rapport en utilisant le partage de connexion et en limitant la taille de la collection d'enregistrements.
Type de rapport :
Crystal Report Designer peut inclure des rapports directement dans le projet ou utiliser des objets de rapport indépendants.
- Rapports fortement typés :
Lorsque vous ajoutez un fichier de rapport à un projet, il devient un rapport « fortement typé ». Dans ces cas, vous aurez le pouvoir de créer directement l’objet de rapport, ce qui réduira une partie du code et pourra offrir des performances.
- Rapport non typé :
Les rapports ici ne sont pas directement inclus dans le projet et sont donc appelés rapports « non typés ». Dans ce cas, il faut créer une instance à l'aide de l'objet "ReportDocuemt" de Crystal Reports et utiliser le rapport "manuellement".
Autres choses à noter
- Bien que Crystal Report Viewer possède des fonctionnalités intéressantes telles que le zoom, la navigation dans les pages, etc. Mais il ne propose pas de fonction d'impression, il faut appeler la fonction d'impression du navigateur.
- Si le Crystal Report dans VS.Net n'est pas enregistré, il ne peut être utilisé que 30 fois. Après 30 fois, la fonction « enregistrer » ne peut plus être utilisée. Pour éviter cela, vous ne devez pas enregistrer ce produit ici sur http://www. crystaldecisions.com/ . (Cela ne semble pas être le cas. Il semble pouvoir l'utiliser pendant longtemps sans s'inscrire, mais l'assistance ne peut pas être fournie)
- L'installation par défaut de Crystal Reports ne peut prendre en charge que 5 utilisateurs. Afin de prendre en charge davantage d'utilisateurs, vous devez acheter une licence sur http://www.cristaldecisions.com/ .
Ressentons-le - en utilisant un fichier Crystal Report prêt à l'emploi dans Asp.net 1) Faites glisser le contrôle Crystal Report Viewer (Crystal Report Viewer) de la barre d'outils WebForm vers la page .aspx.
2) Appelez la fenêtre des propriétés du champ Crystal Report Viewer
3) Cliquez sur le bouton [...] pour afficher la propriété "Data Binding" et la fenêtre DataBinding apparaît.
4) Sélectionnez « Source du rapport » dans la zone « Propriétés pouvant être liées » sur la gauche.
5) Sélectionnez le bouton radio "Expression de liaison personnalisée" et spécifiez le nom et le chemin du fichier .rpt dans la fenêtre inférieure à droite, par exemple : "C:\Program Files\Microsoft Visual Studio.NET\ Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt" puis "OK"
Remarque : Le fichier « World Sales Report.rpt » est créé lors de l'installation de VS.Net. Si vous avez spécifié un autre répertoire pendant le processus d'installation, vous feriez mieux de confirmer l'exactitude du chemin à ce moment-là.
Les étapes ci-dessus insèrent en fait le code suivant dans le fichier Asp.Net :
ainsi que:
identifiant="CrystalReportViewer1"
runat="serveur" Largeur="350px" Hauteur="50px"
Source du rapport=''>
Remarque : Le style généré par ReportSource dans le code généré automatiquement dans ma version officielle de VS.Net n'est pas comme ceci, c'est :
Source du rapport=""
C'est faux et un message d'erreur apparaîtra. Il y a deux erreurs :
Il doit être modifié manuellement selon le format introduit dans cet article. Cela peut être considéré comme un bug de VS.Net.
6) Appelez la méthode DataBind dans la méthode Page_Load. (Le code est VB.Net)
Sous-page privé_Load (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs)
Liaison de données()
Fin du sous-marin
7) Enregistrez et compilez votre page. Vous disposez désormais d’une page WebForm contenant Crystal Reports intégré.
Remarque : dans le développement réel, il y aura une erreur indiquant que le répertoire inetsrv n'est pas accessible au début. La solution consiste à modifier les attributs de sécurité du répertoire afin que l'utilisateur dispose d'autorisations d'écriture. Flying Knife J'ai trouvé que les solutions fournies par le système .Net sont inutiles, et c'est peut-être parce que j'utilise le système d'exploitation Windows.Net.
Utilisation de Crystal Reports dans Asp.Net (partie 2)
www.dotnet8.com 2002-9-6 DotNet Bar
Le contenu suivant est le code du programme :
Utilisation du mode Pull Nous utiliserons les étapes suivantes pour exécuter Crystal Reports via le mode Pull
1. Créez d'abord le fichier rpt et utilisez l'interface de conception Crystal Report pour configurer certaines connexions de données nécessaires.
2. Faites glisser et déposez un contrôle CrystalReportViewer sur la page aspx, définissez ses propriétés pour spécifier le fichier .rpt que nous avons créé à l'étape précédente.
3. Appelez la méthode DataBind dans le code.
Créez un fichier .rpt :
1) Cliquez avec le bouton droit sur "Navigateur de solutions" et sélectionnez "Ajouter"--"Ajouter un nouvel élément"-->"Crystal Report" dans le menu contextuel.
2) Sélectionnez le bouton radio "Comme rapport vierge" dans "Crystal Report Library" et enfin cliquez sur "OK".
3) Le Crystal Report Designer apparaîtra ici.
4) Cliquez avec le bouton droit sur la « Zone de détails » dans le rapport et sélectionnez « Base de données » -> « Ajouter/Supprimer une base de données... »
5) Dans la fenêtre contextuelle "Expert en base de données", développez l'option "OLE DB (ADO)" et une autre fenêtre "OLE DB (ADO)" apparaîtra.
6) Dans la fenêtre pop-up « OLE DB (ADO) », sélectionnez « Fournisseur Microsoft OLE DB pour SQL Server » puis « Suivant »
7) Précisez le serveur d'informations auquel vous connecter : ASPCN (écrivez quel que soit le nom de votre machine)
ID utilisateur : sa
mot de passe:
Base de données : Pubs
8) Cliquez sur "Suivant" et enfin cliquez sur le bouton "Terminer".
9) À ce moment, vous pouvez voir la base de données que nous avons sélectionnée dans la fenêtre « Expert en base de données ».
10) Développez la base de données "Pubs", développez la "Table", sélectionnez la table "Magasins" et ajoutez-la à la zone "Tables sélectionnées", cliquez sur le bouton "OK".
11) Maintenant, dans le « Navigateur de ressources de champ », le tableau que vous avez sélectionné et les champs du tableau seront affichés dans la zone « Champ de base de données » sur la gauche.
12) Faites glisser et déposez les champs requis dans la zone « Détails » du rapport. Les noms des champs apparaîtront automatiquement dans la zone « En-tête ». Si vous souhaitez modifier le texte de l'en-tête, vous pouvez cliquer avec le bouton droit sur le texte dans la zone "En-tête", sélectionner l'option "Modifier l'objet texte" et le modifier.
13) Enregistrez pour avoir un fichier Crystal Report.
Créer le contrôle CrystalReportViewer
14) Revenez au WebForm précédent, faites glisser et déposez un contrôle Crystal Report Viewer sur la page.
15) Appelez la fenêtre des propriétés du contrôle Crystal Report Viewer, sélectionnez la zone "DataBindings" et cliquez [...]
16) Dans la « Fenêtre de liaison de données Crystal Report Viewer », sélectionnez « ReportSource » dans les « Propriétés pouvant être liées » à droite, puis sélectionnez « Expression de liaison personnalisée » dans le coin inférieur droit pour spécifier le chemin du fichier .rpt.
17) À ce stade, vous pouvez voir un aperçu du fichier de rapport composé de certaines données virtuelles du contrôle Crystal Report Viewer.
Remarque : Dans l'exemple ci-dessus, CrystalReportViewer peut appeler directement les données réelles au moment de la conception car les données ont été enregistrées à ce moment-là. Dans ce cas, lorsque les données ne sont pas enregistrées au moment de la conception, elles ne peuvent pas être affichées. Au lieu de cela, des données factices sont affichées et les données réelles sont sélectionnées uniquement au moment de l'exécution.
Code derrière la programmation
18) Appelez la méthode DataBind dans la méthode Page_Load.
exécuter votre programme
19) Créez et exécutez votre programme !
Vous pouvez désormais utiliser certaines fonctions intégrées de Crystal Reports directement sur la page Web, telles que la navigation dans les pages, le zoom, etc.
Utilisation de Crystal Reports dans Asp.Net (partie 2)
www.dotnet8.com 2002-9-6 DotNet
[HTML] Nous utilisons les étapes suivantes pour exécuter Crystal Reports en mode Push :
1. Concevoir un ensemble de données
2. Créez un fichier .rpt et affectez-le au DataSet créé à l'étape précédente.
3. Faites glisser et déposez un contrôle CrystalReportViewer dans la page aspx et connectez-le au fichier rpt précédent.
4. Accédez à la base de données en code et stockez les données dans le DataSet
5. Appelez la méthode DataBind.
Concevoir un ensemble de données
1) Cliquez avec le bouton droit sur "Navigateur de solutions" et sélectionnez "Ajouter" -- "Ajouter un nouvel élément" --> "Ensemble de données"
2) Glissez et déposez la table "Stores" (située dans la base de données PUBS) de "SQL Server" dans "Server Explorer".
3) À ce stade, il y aura un diagramme de structure de la table Stores dans l'ensemble de données.
- Le fichier .xsd contient uniquement un diagramme de structure, mais il ne contiendra aucune donnée.
Créez un fichier .rpt :
4) Créez ce fichier en utilisant la méthode présentée ci-dessus. La seule différence est d'utiliser un ensemble de données au lieu des données de connexion directe précédentes.
5) Après avoir créé le fichier .rpt, cliquez avec le bouton droit sur "Détails" --> "Ajouter/Supprimer une base de données"
6) Dans la fenêtre "Database Expert", développez "Project Data" (en remplacement du précédent OleDb), développez "ADO.Net Data Set" -- "DataSet1" et sélectionnez la table "Stores".
7) Ajoutez la table « Magasins » aux « Tables sélectionnées » et cliquez sur « OK »
8) Utiliser la méthode en mode PULL pour créer un WebForm
Créer un contrôle Crystal Report Viewer
9) Créez un contrôle Crystal Report Viewer et définissez ses propriétés. Ceci est cohérent avec le mode PULL.
Code derrière le code :
10) Utilisez la sous-fonction suivante dans la méthode Page_Load :
Code VB.Net :
SubBindReport()
Atténuer myConnection en tant que nouveau SqlClient.SqlConnection()
myConnection.ConnectionString= "server= (local)NetSDK;database=pubs;Trusted_Connection=yes"
Atténuer MyCommand en tant que nouveau SqlClient.SqlCommand()
MaCommande.Connexion = maConnexion
MyCommand.CommandText = "Sélectionner * dans les magasins"
MaCommand.CommandType = CommandType.Text
Dim MyDA en tant que nouveau SqlClient.SqlDataAdapter()
MyDA.SelectCommand = MyCommand
Dim myDS en tant que nouveau jeu de données1()
'C'est le DataSet que nous utilisons en mode conception
MonDA.Fill(monDS, "Magasins")
'Vous devez utiliser le même nom que votre DataSet précédent.
Dim oRpt comme nouveau CrystalReport1()
'Rapport Crystal Reliure
oRpt.SetDataSource(myDS)
'Définir le ReportSource de Crystal Report
CrystalReportViewer1.ReportSource = oRpt
Fin du sous-marin
Code C# :
vide privé BindReport()
{
string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
CrystalReport1 oCR = new CrystalReport1();
Ensemble de données1 ds = nouveau Ensemble de données1();
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Sélectionner * dans les magasins" ;
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
MonAdaptateur.Fill(ds,"stores");
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR ;
}
Remarque : Dans le code ci-dessus, vous devez noter que oRpt est un fichier de rapport « fortement typé ». Si vous devez utiliser des rapports "UnTyped", vous devez utiliser l'objet ReportDocument puis appeler le fichier rapport.
Exécutez votre programme.
11) Exécutez votre programme
Exporter des fichiers de rapport vers d'autres formats
Vous pouvez exporter des fichiers de rapport vers les formats suivants :
1. PDF (format de document portable)
1. 2. DOC (document MS Word)
2. 3. XLS (feuille de calcul MS Excel)
3. 4. HTML (Hyper Text Markup Language – compatible 3.2 ou 4.0)
4. 5. RTF (Rich Text Format)
utilise le mode Pull pour exporter des rapports Lors de l'exportation de fichiers créés en mode Pull, Crystal Reports ouvre avec précision les données requises. Voici le code pour exécuter la fonction d'exportation :
Code C# :
Code VB.Net :
Sous-bouton privé Button1_Click (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs) gère Button1.Click
Dim myReport As CrystalReport1 = New CrystalReport1()
'Remarque : Nous créons ici une instance Crystal Report à typage fort.
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = Nouveau CrystalDecisions.Shared.DiskFileDestinationOptions()
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
' Cette option est également nécessaire lors de l'exportation vers d'autres fichiers
' Tels que Microsoft Exchange, MAPI, etc.
myReport.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
'Ici, nous l'exportons vers un fichier au format .pdf, vous pouvez également choisir d'autres types de fichiers ci-dessus
DiskOpts.DiskFileName = "c:Output.pdf"
'Si vous ne spécifiez pas le répertoire exact, le fichier sera enregistré dans le répertoire [Windows]System32.
myReport.ExportOptions.DestinationOptions = DiskOpts
« Les fichiers Crystal Report ne contiennent pas de propriété FileName directe, vous ne pouvez donc pas spécifier directement le nom du fichier enregistré.
'Vous devez donc utiliser l'objet DiskFileDestinationOptions et définir sa propriété DiskFileName
'Pour le chemin souhaité, spécifiez enfin la propriété DestinationsOptions de Crystal Reports comme DiskFileDestinationOption ci-dessus.
monRapport.Export()
'Le code ci-dessus fera le travail d'exportation.
Fin du sous-marin
Exportez Crystal Reports en mode PUSH Lorsque le rapport exporté est créé en mode PUSH, la première étape consiste à établir une connexion et à assembler le DataSet par programmation, puis à définir la propriété SetDataSource du rapport. Les étapes suivantes sont les mêmes qu'en mode Pull.
[/HTML]
Résumé de l'utilisation de Crystal Reports dans l'environnement .NET
. Crystal Reports est un excellent outil de développement de rapports lorsque je développais un système de gestion général, tous les rapports utilisaient Crystal Reports. Sa simplicité, sa facilité d'utilisation et ses fonctions puissantes m'ont fait aimer. plus Maintenant, je vais présenter les rapports Crystal à tout le monde à l'aide de notes.
1. Lorsque vous utilisez le Crystal Report intégré, veuillez vous inscrire, sinon vous ne pouvez utiliser
le Crystal Report que 30 fois. Numéro d'enregistrement : 6707437608.
Mot de passe : AAP5GKS0000GDE100DS
2. Utilisez CrystalReportViewer pour l'aperçu
Le contrôle CrystalReportViewer vous permet d'afficher le Crystal Report dans l'application. La propriété ReportSource définit le rapport à afficher. Une fois cette propriété définie, le rapport est affiché dans la visionneuse. La source du rapport peut être un ReportDocument, le chemin du fichier de rapport ou un rapport fortement typé.
1. Ouvrez la "Boîte à outils" et faites glisser un CrystalReportViewer sur le formulaire, que nous nommons rptVew.
2. Utilisez le glisser-déposer pour redimensionner la visionneuse Windows Forms à la taille souhaitée et déplacez-la à la position souhaitée.
3. Lorsque vous exécutez l'application, le rapport sera affiché dans la visionneuse.
3. Créez un nouveau rapport
1. Pointez sur « Ajouter » et cliquez sur « Ajouter un nouvel élément ».
2. Dans la boîte de dialogue "Ajouter un nouvel élément", sélectionnez Crystal Report dans la zone "Modèle", nommez le rapport rptClient et cliquez sur "Ouvrir".
3. Dans la galerie Crystal Report, sélectionnez l'une des options suivantes :
· Utiliser Report Expert : vous guide tout au long du processus de création de rapport et ajoute vos sélections à Crystal Report Designer.
· En tant que rapport vierge : ouvre Crystal Report Designer.
· À partir d'un rapport existant : crée un nouveau rapport avec la même conception qu'un autre rapport que vous spécifiez.
Remarque La bibliothèque Crystal Report contient des experts qui peuvent vous guider dans la création de plusieurs types spécifiques de rapports. Vous souhaiterez peut-être faire appel à un expert pour créer votre rapport initial afin de déterminer quelle méthode de construction de rapport convient à vos besoins.
4. Cliquez sur le bouton OK.
Si vous choisissez d'utiliser Report Expert, la boîte de dialogue Report Expert apparaît avec l'Explorateur de données. Sélectionnez les données requises pour chaque dossier, effectuez les opérations dans l'interface de l'onglet Report Expert, puis cliquez sur Terminer pour accéder à Crystal Report Designer et à votre rapport.
4. Avez-vous besoin de définir la source de données de manière dynamique ?
Crystal Reports se connecte à la base de données via un pilote de base de données. Chaque pilote est écrit pour gérer un type de base de données ou une technologie d'accès à la base de données spécifique.
Modèles Pull et Push Pour fournir aux développeurs les méthodes d'accès aux données les plus flexibles, le pilote de base de données Crystal Reports est conçu pour fournir des modèles d'accès aux données Pull et Push.
modèle à tirer
Dans le modèle pull, le pilote se connectera à la base de données et « extraira » les données selon ses besoins. Lors de l'utilisation de ce modèle, la connexion à la base de données et les commandes SQL exécutées pour obtenir les données sont gérées par Crystal Reports lui-même, sans que les développeurs aient besoin d'écrire du code. Utilisez le modèle pull si vous n’avez pas besoin d’écrire de code spécial au moment de l’exécution.
modèle à pousser
En revanche, le modèle push oblige les développeurs à écrire du code pour se connecter à la base de données, à exécuter des commandes SQL pour créer un jeu d'enregistrements ou un ensemble de données correspondant aux champs du rapport et à transmettre l'objet au rapport. Cette méthode vous permet de mettre en place le partage de connexion dans votre application et de filtrer les données avant que Crystal Reports ne les reçoive.
4. Créez des rapports à partir d'ensembles de données ADO.NET et
créez des objets d'ensemble de données à partir de la base de données
1. Créez un nouveau fichier de schéma dans le projet :
a Dans l'explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, pointez sur « Ajouter » et. puis cliquez sur « Ajouter un nouvel élément ».
b. Dans la zone Catégories de la boîte de dialogue Ajouter un nouvel élément, développez le dossier, puis sélectionnez Données.
c. Sélectionnez Ensemble de données dans la zone Modèle.
d. Acceptez le nom par défaut Dataset1.xsd.
Cela crée un nouveau fichier de schéma (Dataset1.xsd) qui sera utilisé ultérieurement pour générer un ensemble de données fortement typé. Le fichier de schéma apparaîtra dans le concepteur de jeux de données ADO.NET.
2. Spécifiez l'emplacement de la base de données :
a. Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur Connexions de données et sélectionnez Ajouter une connexion.
b. Dans la boîte de dialogue Propriétés de liaison de données, cliquez sur l'onglet Fournisseur, puis sélectionnez un fournisseur (tel que le fournisseur Microsoft OLE DB pour SQL Server).
c. Cliquez sur l'onglet Connexion et spécifiez l'emplacement de votre base de données. Entrez votre serveur et vos informations de connexion si nécessaire.
d. Cliquez sur le bouton OK.
Votre base de données, ses tables et ses champs apparaissent désormais dans l'Explorateur de serveurs sous le nœud Connexions de données.
3. Dans l'Explorateur de solutions, double-cliquez sur Dataset1.xsd (s'il ne s'agit pas déjà de la vue active).
Dataset1.xsd devrait maintenant apparaître dans l'onglet Ensembles de données.
4. Pour schématiser l'ensemble de données, faites glisser les tables requises de l'Explorateur de serveur vers l'onglet Ensembles de données de Dataset1.xsd.
5. Cliquez sur Enregistrer Dataset1.xsd pour enregistrer le fichier Dataset1.xsd.
6. Dans le menu Générer, cliquez sur Générer pour générer l'objet jeu de données pour le projet.
L'objet ADO.NET DataSet fournit une description des données à partir desquelles des tables peuvent être ajoutées à un rapport Crystal. Utilisez l'Expert Base de données dans Crystal Report Designer pour ajouter des tables à partir d'objets Ensemble de données ADO.NET.
Veuillez appeler l'expert en base de données lorsque vous utilisez l'expert en rapport pour créer un nouveau rapport. Ou, pour accéder à l'expert de base de données à partir d'un rapport créé à l'aide d'ADO.NET, cliquez avec le bouton droit dans le Concepteur de rapports, pointez sur Bases de données, puis cliquez sur Ajouter/Supprimer une base de données.
Connecter un rapport à un objet Ensemble de données ADO.NET
1. Dans Database Expert, développez le dossier Project Data.
2. Développez le dossier « ADO.NET Datasets ».
3. Sélectionnez l'objet d'ensemble de données requis.
Par exemple, si vous utilisez un objet de jeu de données généré à partir du fichier schéma « Dataset1.xsd » du projet « WindowsApplication1 », vous devez sélectionner « WindowsApplication1.Dataset1 ».
4. Sélectionnez les tableaux à ajouter au rapport, comme vous le feriez avec d'autres sources de données.
5. Code pour les sources de données à changement dynamique
Dim dsdataSet As New DataSet()
Dim oRpt As New rptClient() 'Le rapport établi rptClient
nécessite que les lecteurs remplissent eux-mêmes l'ensemble de données dsdataSet
'Utilisez le modèle objet "moteur de rapport" pour transmettre l'ensemble de données rempli au rapport
oRpt. SetDataSource(dsdataSet. Tables(0))
'Lier l'objet de rapport avec les données à la visionneuse Windows Forms, rptVew (contrôle CrystalReportViewer)
rptVew.ReportSource = oRpt
Notez que la méthode FillDataSet peut se connecter à la base de données spécifiée, extraire les données, puis déconnectez la base de données. Si vous souhaitez ajouter plusieurs tables de la base de données au rapport, utilisez l'instruction SQL JOIN pour joindre ces tables, puis spécifiez une table de résultats dans la méthode FillDataSet
6. Créez un rapport maître-détails
Dans le rapport, il existe de nombreux rapports. Structure de table maître-détails, telle que les détails de la commande et du produit de la commande, la commande est un enregistrement dans une table et les entrées sont plusieurs enregistrements dans une autre table. Les deux tables sont liées via un champ. Ce type de rapport peut utiliser sa mise en œuvre de fonction de regroupement. :
1. Créez un nouveau projet
2. Ajoutez un contrôle CrystalReportViewer à FORM1
3. Connectez-vous à la base de données Northwind sur SQL SERVER 2000 dans le gestionnaire de ressources de service
4. Ajoutez un ensemble de données Dataset1 et ajoutez les commandes et les détails de la commande sont ajoutés aux données. ensemble.
5. Ajoutez un Crystal Report, utilisez Report Expert, sélectionnez "ADO.NET Data Set" dans les données du projet, insérez les tableaux Commandes et Détails de la commande, "Lien" est le lien vers le champ associé, sélectionnez le champ à afficher dans "Champ" Pour les champs de la table principale et de la table détaillée, la base de sélection de groupe dans le groupe est le champ OrdersID de la table Commandes, le total, le graphique, la sélection (peut être filtré), le style (peut définir le titre du rapport) et peut être réglé par vous-même. Après la configuration, cliquez sur Terminer.
6. Ajustez la position, la largeur, etc. des champs à afficher dans le concepteur de rapports.
7. Ajoutez du code dans la fenêtre.
Private Sub Form1_Load (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs) gère MyBase.Load
Dim oRpt comme nouveau CrystalReport1 ()
Dim dsdataSet en tant que nouveau Dataset1 ()
Dim CN As New Data.SqlClient.SqlConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa")
CN.Open()
Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from commandes", CN)
daOrders.Fill(dsdataSet, "commandes")
Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)
daDetails.Fill(dsdataSet, "Order Details")
'Utilisez le modèle objet "Report Engine" pour transmettre l'ensemble de données renseigné au rapport
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8. Exécutez le programme
7. Utilisez un programme pour modifier le texte du rapport.
Le code est le suivant :
Dim GetTextObject As TextObject
' Obtenez le ReportObject par son nom, convertissez-le en TextObject et renvoyez cet objet.
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "Système XXXX"
Résumé : Crystal Reports possède des fonctions très puissantes. Il peut également exporter des fichiers WORD, EXCEL, RTF et autres, et peut également générer des graphiques complexes et esthétiques. C'est un outil puissant pour le développement de rapports WEB et WINDOWS.
(Une partie des informations contenues dans cet article provient de MSDN)
Auteur : Li Honggen
E-MAIL : [email protected]
J'ai les idées suivantes :
1. Obtenez les données liées à la base de données SQL via une requête de connexion ;
2. Placez-le dans DataSet ;
3. Appelez Crystal Reports (modèle linéaire ou en colonnes) pour générer des rapports ;
4. Sortez et générez un document EXCEL.
S'il vous plaît, dites-moi, héros, comment mettre en œuvre les idées ci-dessus ? (Ce serait mieux s'il y avait des exemples)
Merci beaucoup!
-------------------------------------------------- -------------
1. Ajoutez un nouveau DataSet de projet à votre projet, connectez-vous à la base de données et ajoutez les tables de données ou procédures stockées requises.
Faites glisser dans ce DataSet et compilez le DataSet
2. Utilisez le Crystal Report fourni avec Vs.net pour créer un rapport avec DataSet comme source de données.
3. Insérez les données dans ce rapport dans le programme
4.Crystal Report a la possibilité de sortir vers Excel, ce qui peut également être réalisé via un programme.
Dim conn As SqlConnection
Dim comme SqlDataAdapter
Dim strSQL comme chaîne
conn = Nouveau SqlConnection()
conn.ConnectionString = "ID utilisateur=sa ; PWD=1234 ; Source de données=xxxx ; Catalogue initial =xxxxx"
conn.Open()
strSQL = "Sélectionner * dans TableName"
da = Nouveau SqlDataAdapter (strSQL, conn)
Dim ds comme nouveau DataSet()
da.Fill(ds, "TableName")
Dim RptDoc comme nouveau ReportName()
RptDoc.SetDataSource(ds)
'Spécifiez les données pour RptDoc,
CrystalView1.ReportSource = RptDoc 'Spécifier les données pour CrystalView
CrystalView1.DataBind()
conn.Close()
5. Si vous devez afficher des champs associés à plusieurs tables, il est préférable de créer un DataSet à l'aide d'une procédure stockée.
-------------------------------------------------- -------------
Veuillez vous référer au code suivant :
string strconn=chaîne de connexion ;
SqlConnection myconn=nouveau SqlConnection(strconn);
string strcmd=@"instruction select ";
SqlCommand mycmd=new SqlCommand(strcmd,myconn);
SqlDataAdapter myda=new SqlDataAdapter(strcmd,myconn);
DataSet myds=new DataSet();
maconn.Open();
myda.Fill(myds,"nom du rapport");
Nom du rapport myrpt =nouveau nom du rapport();
monrpt.SetDataSource(myds);
this.CrystalReportViewer1.ReportSource=myrpt;
Exporter vers EXCEL :
myrpt.ExportOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myrpt.ExportOptions.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.Excel;
CrystalDecisions.Shared.DiskFileDestinationOptions opt=new CrystalDecisions.Shared.DiskFileDestinationOptions();
opt.DiskFileName=@"Nom du fichier";
monrpt.ExportOptions.DestinationOptions =opt;
myrpt.Export();
téléchargement de l'aide en chinois pour Crystal Reports 9 :
http://www.ourfly.com/download/download.aspx
http://www.enwell.net/soft/
http://www.fast8.com/news.asp
de Crystal Reports pour Visual Studio .NET
PictureObject voient
Classe PictureObject¦ Propriétés de l'instance publique de l'espace de noms CrystalDecisions.CrystalReports.Engine
Border(Hérité de ReportObject) Border. Obtenez l'objet Border.
Hauteur (hérité de ReportObject) Int32. Obtient ou définit la hauteur de l'objet en twips.
Kind (hérité de ReportObject) ReportObjectKind. Obtient le type d'objet de rapport.
Gauche (hérité de ReportObject) Int32. Obtient ou définit la position du coin supérieur gauche de l'objet en twips.
Nom (hérité de ReportObject) Chaîne. Obtenez le nom de l'objet.
ObjectFormat (hérité de ReportObject) ObjectFormat. Obtenez l'objet ObjectFormat.
Top (hérité de ReportObject) Int32. Obtient ou définit la position supérieure de l'objet en twips.
Largeur (hérité de ReportObject) Int32. Obtient ou définit la largeur de l'objet en twips.
Voir
PictureObject
ClassImports CrystalDecisions.CrystalReports.Engine
Dim picObject As PictureObject
picObject = oRpt.ReportDefinition.ReportObjects.Item("image1")
Extrait de : http://expert.csdn.net/Expert/topic/1896/1896874.xml?temp=.78677
Lorsque vous utilisez Crystal Reports basé sur un formulaire Web, si vous suivez simplement la méthode "A Dao" sur Internet, vous sera certainement invité. Vous : La connexion a échoué.
Concernant ce problème, j'ai passé une journée entière à étudier le fichier d'aide de Crystal Reports et j'ai finalement trouvé une solution.
Je ne suis pas une personne conservatrice. Je crois qu’il y a beaucoup d’internautes qui, comme moi, dépensent de l’énergie sur ce sujet.
Voici quelques étapes que j’ai suivies pour mettre en œuvre cette solution. Ne vous inquiétez pas, cela vous sera d'une grande aide si vous le lisez lentement.
Étape 1 : Regardez l'exemple de fichier Crystal Reports est livré avec un exemple de fichier et la base de données est accessible (sans mot de passe). J'ai d'abord exécuté l'exemple de fichier (basé sur webform et winform) et le résultat a montré le rapport correct, tout comme l'exemple du "couteau volant".
J'ai donc créé moi-même un fichier de rapport et un fichier .aspx, mais le résultat a montré que la connexion a échoué ! Mais j’ai remplacé le fichier de rapport par un exemple de fichier de rapport et plus aucune erreur ne s’est produite.
Quel est le problème ? Se pourrait-il que le fichier de format de rapport comporte des paramètres d'autorisation de connexion ? Grâce au suivi et au débogage, j’ai comparé et analysé mon fichier de rapport et l’exemple de fichier de rapport, et je n’ai trouvé aucune différence. Il semble que le problème ne réside pas dans le fichier de rapport.
Est-ce un problème de base de données ? Lorsque j'ai créé un accès, la connexion a échoué !
N'est-ce pas un problème de base de données (ma propre base de données a un accès sans mot de passe, et il en va de même pour la base de données dans l'aide) ? N'est-ce pas un problème avec le fichier de format de rapport (j'ai soigneusement analysé que les codes originaux des deux sont les mêmes) ?
Alors, où se produit le problème ? Je n'arrive pas à comprendre !
Étape 2 : Rechercher le fichier d'aide J'ai donc demandé à nouveau de l'aide. J'ai cherché à l'aide de Crystal Reports et j'ai finalement trouvé les mots « Access Secure Database [C#] » et j'ai trouvé le paragraphe suivant :
Le processus d'accès à une base de données sécurisée via Crystal Reports pour Visual Studio .NET diffère entre Web Forms et Windows Forms. Dans Windows Forms, une boîte de dialogue demande automatiquement à l'utilisateur un nom d'utilisateur et un mot de passe (le test réussit facilement). Dans Web Forms, vous devez concevoir un formulaire pour obtenir ces informations de l'utilisateur. Dans les deux cas, le code peut être utilisé pour spécifier des noms d'utilisateur et des mots de passe, offrant ainsi le même niveau de sécurité à tous les utilisateurs de l'application.
J'ai donc utilisé la même base de données (d'abord en utilisant la base de données Access dans l'exemple d'aide, puis en utilisant la base de données Access que j'ai créée). Il s'avère que pour le même fichier de rapport, Winform peut afficher un succès, mais WebForm affiche toujours un échec de connexion ! Alors je comprends un peu ce que cela signifie !
Il semble que le problème réside dans les paramètres d'autorisation.
Étape 3 : Recherchez de l’aide et réussissez enfin !
Dans l'aide, j'ai trouvé les mots "Définir les paramètres de connexion à la base de données", qui fournissaient des informations que j'ai trouvées plus tard très utiles :
L'exemple suivant montre comment transmettre les paramètres de connexion dans une table de rapport. Cet exemple utilise une connexion à une base de données SQL Server sécurisée.
Démarrez un nouveau projet et ajoutez un contrôle Button et quatre contrôles TextBox au formulaire.
Nommez les contrôles Text Box : serverNameTxt, dbNameTxt, userNameTxt et passwordTxt.
Double-cliquez sur le contrôle Button pour spécifier le code de l’événement Click. Insérez le code approprié en fonction de la langue utilisée.
[C#]
// Déclarez les variables requises.
TableLogOnInfo logOnInfo = nouveau TableLogOnInfo ();
int i = 0;
// Parcourez chaque table du rapport.
pour (i=0;i == Report.Database.Tables.Count - 1;i++)
{
//Définissez les informations de connexion de la table actuelle.
logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text;
logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text;
logOnInfo.ConnectionInfo.UserID = userNameTxt.Text;
logOnInfo.ConnectionInfo.Password = mot de passeTxt.Text;
Report.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}
Notez que les bases de données PC protégées par mot de passe telles que Microsoft Access et Paradox utilisent également cette méthode, mais Logoninfo.ServerName et Logoninfo.Databasename doivent être laissées vides.
Je l'ai donc essayé comme ça et j'ai reçu un message d'erreur: TableLogoninfo et un rapport n'ont pas été trouvés.
Plus tard, j'ai découvert que TableLogoninfo est membre de l'espace de noms Crystaldecisions.Shared. J'ai donc ajouté un devis:
Utilisation de cristalecisions.shared;
Cette fois, le problème s'est produit dans le rapport.
Rapport? Qu'est-ce que c'est? J'ai vérifié toute l'aide, mais il n'y a pas de fonction ou de classe!
[Sérieusement! Ce problème m'a troublé depuis longtemps! J'ai cherché ce qu'est le rapport! La société de rapport Waterscape est également très utile et n'écrit pas en détail! Il est temps de se battre! ! ! ]
En fin de compte, j'ai finalement découvert que le rapport n'est qu'un objet défini par l'utilisateur, pas un objet du système lui-même.
Quand j'ai été confus, j'ai soudainement pensé, pourquoi ne pas jeter un œil à la base de données derrière le rapport, qu'est-ce que le problème a finalement été résolu, j'ai trouvé les informations suivantes dans l'aide de l'aide
ReportDocument ORPT = nouveau rapport Document ();
Le rapport est membre de la classe DocumentCrystaldeCisions.Crystalreports.Engine.
Modifier le code: et ajouter une référence
Utilisation de cristalecisions.shared; // responsable de l'interprétation de la classe Tablelogoninfo
Utilisation de cristaldecisions.crystalreports .Engine; // responsable de l'interprétation de la classe RapportDocument privé void page_load (expéditeur d'objet, System.Eventargs e)
{
TableLogonInfo LogonInfo = new TableLogonInfo ();
// Un rapport d'objet ReportDocument doit être déclaré à l'avance et le rapport de données doit être chargé en même temps.
ReportDocument ORPT = nouveau rapport Document ();
ORPT.Load ("C: \ Inetpub \ wwwroot \ exer \ pagelet \ cristal \ cr1.rpt"); // Changer vers votre propre emplacement correct //
Créer des informations de sécurité
// Les bases de données PC protégées par mot de passe telles que Microsoft Access et Paradox utilisent également cette méthode, mais logoninfo.servername // et logoninfo.databasename doit être laissé vide
logoninfo.connectioninfo.servername = "www";
logoninfo.connectioninfo.databasename = "archives";
logoninfo.connectioninfo.userid = "sa";
LogonInfo.ConnectionInfo.Password = "123456";
LogonInfo
);
CrystalReportViewer1.Reportsource = ORPT;
}
Le fichier de rapport apparaît enfin!
Wow, j'étais tellement heureux de ne pas pouvoir m'empêcher de me lever et de m'étirer!
Étape 4: La version complète finale du code. Il y a deux inconvénients:
(1) Le fichier de format de rapport de données utilise un chemin absolu
(2) Une fois que les autorisations d'accès à la base de données sont définies, ils ne peuvent pas être modifiés dans la version finale. Présentez deux meilleures choses:
(1), fonction server.mappath
(2) lire web.config (cet exemple vous indique également comment utiliser le fichier de configuration web.config)
La modification finale est la suivante: (code complet) La base de données est SQL Server2000
Utilisation de cristalecisions.shared; // responsable de l'interprétation de la classe Tablelogoninfo
Utilisation de cristaldecisions.crystalreports .Engine; // responsable de l'interprétation de la classe RapportDocument
privé void page_load (expéditeur d'objet, System.Eventargs e)
{
TableLogonInfo LogonInfo = new TableLogonInfo ();
// Un rapport d'objet ReportDocument doit être déclaré à l'avance et le rapport de données doit être chargé en même temps.
ReportDocument ORPT = nouveau rapport Document ();
// Obtenez le vrai chemin du fichier .rpt
String path1, path2;
path1 = server.mappath (" \ exer \ pagelet ");
path2 = path1 + " \ cristal \ cr1.rpt ";
//orpt.load("c:\inetpub\wwroot\exer\pagelet\crystal\cr1.rpt ");
ORPT.load
(path2);
String A, B, C, D;
// Obtenez le nom de serveur
a = System.Configuration .ConfigurationsSettings .AppSettings ["ServerName"];
// Obtenez Databasename
b = System.Configuration .ConfigurationsSettings .AppSettings ["Database"];
// Obtenez un utilisateur
c = System.Configuration .ConfigurationsSettings .AppSettings ["userId"];
// Obtenez le mot de passe
D = System.Configuration .ConfigurationsSettings .AppSettings ["Pass"];
// Définir les paramètres LogoninFO
Logoninfo.ConnectionInfo.ServerName = A;
logoninfo.connectioninfo.databasename = b;
Logoninfo.ConnectionInfo.Userrid = C;
LogonInfo.ConnectionInfo.Password = D;
LogonInfo
);
CrystalReportViewer1.Reportsource = ORPT;
}
Description de l'ensemble du processus de démonstration:
1. Dans l'explorateur de solution, où vous devez stocker le fichier de rapport, ajoutez un nouvel article: Rapport de cristal, nommé CR1.rpt
2. Lors de la sélection de la source de données dans le "Rapport Expert" qui apparaît par la suite, assurez-vous de sélectionner OLE DB, puis de sélectionner le moteur de conduite correspondant en fonction des exigences de votre base de données:
SQL Server: fournisseur Microsoft Ole DB pour SQL Server
Accès: Microsoft Jet.4.0
3. Entrez la connexion de la base de données correcte.
4. Créez un rapport de données et enregistrez le fichier CR1.rpt
5. Open WebForm1.aspx. Ajouter CrystalReportViewer Contrôle: Nom: CrystalReportViewer1
6. Ajoutez le code ci-dessus dans l'événement page_load dans webform1.aspx.cs:
(Remarque: n'oubliez pas de citer!)
************************************************** * ***
Vous trouverez ci-dessous les détails liés à ce contenu dans web.config
*** Notez que
// Obtenez le mot de passe
D = System.Configuration .ConfigurationsSettings .AppSettings ["Pass"]; le "Pass" dans AppSettings ["Pass"] ici reste cohérent. Bien sûr, vous pouvez choisir n'importe quel nom que vous aimez, mais cela doit être cohérent.
http://www.cnblogs.com/zhangyd1080/archive/2006/11/15/561770.html