VB.NET

Comment lire un fichier Crystal Reports ?

×

Recommandés

Série d'Exercices Corrigés sur VB.Net
Voici une série d'exercices corrigés sur...
En savoir plus
Guide : Déclaration d’un objet en VB.NET...
VB.NET (Visual Basic .NET) est un...
En savoir plus
Guide : Comment ouvrir une base de...
Ce guide explique étape par étape...
En savoir plus
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de...
En savoir plus
Créer un Générateur de Code QR en...
Dans ce guide, nous allons apprendre...
En savoir plus
Les Contraintes Génériques en VB.NET
Les contraintes génériques sont utilisées pour...
En savoir plus

Pour lire un fichier Crystal Reports dans une application VB.NET, vous devez charger le fichier .rpt et afficher son contenu dans un contrôle comme le CrystalReportViewer. Voici un guide détaillé pour lire un fichier Crystal Reports.


Prérequis

  1. Visual Studio : Installez une version compatible avec Crystal Reports.
  2. Runtime Crystal Reports : Téléchargez et installez le runtime pour Crystal Reports.
  3. DLL Crystal Reports : Assurez-vous que les bibliothèques suivantes sont référencées dans votre projet :
    • CrystalDecisions.CrystalReports.Engine
    • CrystalDecisions.ReportSource
    • CrystalDecisions.Shared
    • CrystalDecisions.Windows.Forms

Étape 1 : Ajouter un CrystalReportViewer

Pour lire et afficher un rapport dans une application Windows Forms, ajoutez un contrôle CrystalReportViewer à votre formulaire :

  1. Ouvrez votre formulaire dans Visual Studio.
  2. Accédez à la Boîte à outils et recherchez CrystalReportViewer.
  3. Faites glisser et déposez le contrôle dans votre formulaire.

Étape 2 : Charger et lire un fichier Crystal Reports

Ajoutez le code pour charger et afficher un rapport .rpt dans le CrystalReportViewer.

Exemple de Code Complet :

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            ' Créer une instance du rapport
            Dim reportDocument As New ReportDocument()

            ' Charger le fichier Crystal Reports
            Dim reportPath As String = "C:\Chemin\Vers\VotreRapport.rpt"
            reportDocument.Load(reportPath)

            ' Si le rapport nécessite une connexion à une base de données
            Dim connectionInfo As New ConnectionInfo()
            connectionInfo.ServerName = "NomServeur"
            connectionInfo.DatabaseName = "NomBaseDeDonnees"
            connectionInfo.UserID = "Utilisateur"
            connectionInfo.Password = "MotDePasse"

            ' Appliquer les informations de connexion à toutes les tables du rapport
            For Each table As Table In reportDocument.Database.Tables
                Dim logonInfo As TableLogOnInfo = table.LogOnInfo
                logonInfo.ConnectionInfo = connectionInfo
                table.ApplyLogOnInfo(logonInfo)
            Next

            ' Lier le rapport au CrystalReportViewer
            CrystalReportViewer1.ReportSource = reportDocument

            ' Rafraîchir le rapport pour s'assurer qu'il est mis à jour
            CrystalReportViewer1.Refresh()
        Catch ex As Exception
            MessageBox.Show($"Erreur lors du chargement du rapport : {ex.Message}", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
End Class

Étape 3 : Explications

  1. Chargement du fichier :
    • La méthode Load de ReportDocument est utilisée pour charger le fichier .rpt.
  2. Connexion à la base de données :
    • Si le rapport dépend d’une base de données, configurez les informations de connexion avec ConnectionInfo.
  3. Application des connexions :
    • Les informations de connexion doivent être appliquées à toutes les tables du rapport avec la méthode ApplyLogOnInfo.
  4. Affichage dans le CrystalReportViewer :
    • Assignez l’objet ReportDocument à la propriété ReportSource du CrystalReportViewer.

Étape 4 : Ajout de paramètres (si nécessaire)

Si votre rapport utilise des paramètres, vous devez les définir avant d’afficher le rapport.

Exemple :

Dim paramFields As New ParameterFields()
Dim paramField As New ParameterField()
Dim paramValue As New ParameterDiscreteValue()

' Ajouter un paramètre au rapport
paramField.Name = "NomDuParametre"
paramValue.Value = "ValeurDuParametre"
paramField.CurrentValues.Add(paramValue)
paramFields.Add(paramField)

CrystalReportViewer1.ParameterFieldInfo = paramFields

Étape 5 : Exporter le rapport (optionnel)

Vous pouvez également lire le rapport et l’exporter au format PDF, Excel ou Word.

Exemple d’exportation en PDF :

Dim exportPath As String = "C:\Chemin\Vers\RapportExporté.pdf"
reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath)
MessageBox.Show("Rapport exporté avec succès !")

Étape 6 : Résolution des erreurs courantes

Erreur : « Impossible de trouver les informations de connexion »

  • Vérifiez que les informations de connexion sont correctement configurées pour toutes les tables du rapport.

« Chemin introuvable »

  • Assurez-vous que le chemin du fichier .rpt est correct. Utilisez Application.StartupPath pour un chemin relatif.

Erreur : « Impossible de charger le fichier .rpt »

  • Vérifiez que le runtime de Crystal Reports est installé sur votre système.

Étape 7 : Exemple avec un chemin dynamique

Pour rendre votre application plus flexible, utilisez un chemin dynamique pour le fichier .rpt.

Exemple :

Dim reportPath As String = System.IO.Path.Combine(Application.StartupPath, "Rapports\VotreRapport.rpt")
reportDocument.Load(reportPath)

Étape 8 : Lire un fichier Crystal Reports dans une application Web (ASP.NET)

Si vous développez une application Web, utilisez le CrystalReportViewer dans une page ASP.NET.

Exemple (WebForm) :

Imports CrystalDecisions.CrystalReports.Engine

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim reportDocument As New ReportDocument()
            Dim reportPath As String = Server.MapPath("Rapports/VotreRapport.rpt")
            reportDocument.Load(reportPath)

            CrystalReportViewer1.ReportSource = reportDocument
            CrystalReportViewer1.RefreshReport()
        End If
    End Sub
End Class

Pour exporter un rapport Crystal Reports en PDF dans une application VB.NET, vous pouvez utiliser la méthode ExportToDisk ou ExportToStream de l’objet ReportDocument. Voici un guide détaillé.


Étape 1 : Préparer l’environnement

  1. Prérequis :
    • Assurez-vous que le runtime Crystal Reports est installé.
    • Référencez les bibliothèques nécessaires dans votre projet :
      • CrystalDecisions.CrystalReports.Engine
      • CrystalDecisions.Shared
  2. Créer un rapport Crystal Reports (.rpt) :
    • Configurez votre rapport pour qu’il affiche les données souhaitées.

Étape 2 : Exporter un Rapport en PDF

Voici le code de base pour exporter un rapport Crystal Reports en PDF.

Exemple 1 : Exportation de base

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module ExportCrystalReports
    Sub Main()
        Try
            ' Créer une instance du rapport
            Dim reportDocument As New ReportDocument()

            ' Chemin du fichier Crystal Reports
            Dim reportPath As String = "C:\Chemin\Vers\VotreRapport.rpt"
            reportDocument.Load(reportPath)

            ' Exporter le rapport en PDF
            Dim exportPath As String = "C:\Chemin\Vers\RapportExporté.pdf"
            reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath)

            Console.WriteLine("Rapport exporté avec succès : " & exportPath)
        Catch ex As Exception
            Console.WriteLine("Erreur lors de l'exportation : " & ex.Message)
        End Try
    End Sub
End Module

Exemple 2 : Exportation avec Connexion à une Base de Données

Si votre rapport utilise une base de données, configurez les informations de connexion avant l’exportation.

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module ExportCrystalReportsWithDB
    Sub Main()
        Try
            ' Créer une instance du rapport
            Dim reportDocument As New ReportDocument()

            ' Charger le fichier de rapport
            Dim reportPath As String = "C:\Chemin\Vers\VotreRapport.rpt"
            reportDocument.Load(reportPath)

            ' Configurer les informations de connexion
            Dim connectionInfo As New ConnectionInfo()
            connectionInfo.ServerName = "NomServeur"
            connectionInfo.DatabaseName = "NomBaseDeDonnees"
            connectionInfo.UserID = "Utilisateur"
            connectionInfo.Password = "MotDePasse"

            ' Appliquer les informations de connexion à toutes les tables
            For Each table As Table In reportDocument.Database.Tables
                Dim logonInfo As TableLogOnInfo = table.LogOnInfo
                logonInfo.ConnectionInfo = connectionInfo
                table.ApplyLogOnInfo(logonInfo)
            Next

            ' Exporter le rapport en PDF
            Dim exportPath As String = "C:\Chemin\Vers\RapportExporté.pdf"
            reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath)

            Console.WriteLine("Rapport exporté avec succès : " & exportPath)
        Catch ex As Exception
            Console.WriteLine("Erreur lors de l'exportation : " & ex.Message)
        End Try
    End Sub
End Module

Étape 3 : Exporter vers un Flux (Stream)

Si vous voulez manipuler le fichier PDF avant de le sauvegarder, utilisez un Stream.

Exemple d’exportation vers un flux

Imports System.IO
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module ExportToStream
    Sub Main()
        Try
            ' Créer une instance du rapport
            Dim reportDocument As New ReportDocument()

            ' Charger le fichier de rapport
            Dim reportPath As String = "C:\Chemin\Vers\VotreRapport.rpt"
            reportDocument.Load(reportPath)

            ' Exporter le rapport en flux PDF
            Dim pdfStream As Stream = reportDocument.ExportToStream(ExportFormatType.PortableDocFormat)

            ' Enregistrer le flux en tant que fichier PDF
            Dim exportPath As String = "C:\Chemin\Vers\RapportStream.pdf"
            Using fileStream As New FileStream(exportPath, FileMode.Create, FileAccess.Write)
                pdfStream.CopyTo(fileStream)
            End Using

            Console.WriteLine("Rapport exporté avec succès depuis le flux : " & exportPath)
        Catch ex As Exception
            Console.WriteLine("Erreur lors de l'exportation : " & ex.Message)
        End Try
    End Sub
End Module

Étape 4 : Ajouter des Paramètres au Rapport

Si votre rapport accepte des paramètres, vous pouvez les définir avant l’exportation.

Exemple avec paramètres

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module ExportWithParameters
    Sub Main()
        Try
            ' Créer une instance du rapport
            Dim reportDocument As New ReportDocument()
            Dim reportPath As String = "C:\Chemin\Vers\VotreRapport.rpt"
            reportDocument.Load(reportPath)

            ' Ajouter un paramètre
            Dim paramFields As New ParameterFields()
            Dim paramField As New ParameterField()
            Dim paramValue As New ParameterDiscreteValue()

            paramField.Name = "NomDuParametre"
            paramValue.Value = "ValeurDuParametre"
            paramField.CurrentValues.Add(paramValue)
            paramFields.Add(paramField)

            ' Assigner les paramètres au rapport
            reportDocument.SetParameterValue("NomDuParametre", "ValeurDuParametre")

            ' Exporter le rapport en PDF
            Dim exportPath As String = "C:\Chemin\Vers\RapportParametre.pdf"
            reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath)

            Console.WriteLine("Rapport exporté avec succès avec paramètres : " & exportPath)
        Catch ex As Exception
            Console.WriteLine("Erreur lors de l'exportation : " & ex.Message)
        End Try
    End Sub
End Module

Étape 5 : Résolution des erreurs courantes

Erreur : « Impossible de trouver les informations de connexion »

  • Vérifiez que les informations de connexion sont correctement appliquées à toutes les tables du rapport.

« Le fichier est introuvable »

  • Assurez-vous que le chemin du fichier .rpt est correct. Utilisez System.IO.Path.Combine pour des chemins dynamiques.

Erreur : « Le rapport est déjà utilisé »

  • Si vous exportez plusieurs rapports dans une même instance, appelez reportDocument.Close() et reportDocument.Dispose() après chaque exportation.

Étape 6 : Exporter dans d’autres formats

Outre le PDF, vous pouvez exporter dans d’autres formats comme Excel ou Word.

Exemple :

' Exportation au format Excel
reportDocument.ExportToDisk(ExportFormatType.Excel, "C:\Chemin\Vers\RapportExcel.xls")

' Exportation au format Word
reportDocument.ExportToDisk(ExportFormatType.WordForWindows, "C:\Chemin\Vers\RapportWord.doc")

Recommandés

Guide : Manipulation des Tableaux de Chaînes...
Un tableau de chaînes en VB.Net...
En savoir plus
Guide : Comment ouvrir une base de...
Ce guide explique étape par étape...
En savoir plus
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de...
En savoir plus
Ouvrir un fichier de rapport Crystal Reports...
Crystal Reports est un outil puissant...
En savoir plus
Créer un Générateur de Code QR en...
Dans ce guide, nous allons apprendre...
En savoir plus
Les Contraintes Génériques en VB.NET
Les contraintes génériques sont utilisées pour...
En savoir plus
AZ

Share
Published by
AZ

Recent Posts

Méthode des points de vue narratifs en 4ème

Introduction En classe de 4ème, l’étude du récit occupe une place importante dans l’apprentissage du…

4 heures ago

Classification des Documents : Organiser et Automatiser la Gestion Documentaire

Dans toute organisation moderne — entreprise, association, service administratif ou bureau de projet — la…

2 jours ago

Modèle de Bilan Actif Passif sur Excel : Concevoir un tableau comptable clair et automatisé

Dans la pratique comptable, le bilan constitue l’un des documents les plus fondamentaux pour comprendre…

2 jours ago

Fiche Méthode analyse linéaire + guide complet pour la réussir

L’analyse linéaire impressionne souvent plus qu’elle ne le devrait. Au moment d’aborder l’oral du bac…

3 jours ago

Analyse linéaire au bac français : méthode complète, exemples et conseils pour réussir l’oral

L’analyse linéaire occupe une place centrale à l’oral du bac français. C’est l’exercice qui permet…

3 jours ago

Créer une fiche de suivi en ligne : générateur personnalisable à imprimer

Créer une fiche de suivi claire et adaptée à son activité prend souvent plus de…

3 jours ago

This website uses cookies.