Utilitaire crystal reports

Soyez le premier à donner votre avis sur cette source.

Vue 37 202 fois - Téléchargée 7 388 fois

Description

CRUtil est une classe qui vous permet d'initialiser et d'afficher rapidement un état Crytal Reports dans votre application .NET. Elle offre également une fonctionnalité pour l'initialisation du texte des champs de formules de l'état.

Source / Exemple :


'Remarque: les references suivantes sont necessaires pour compiler cette source :
'1. CrystalDecisions.Shared
'2. CrystalDecisions.ReportSource
'3. CrystalDecisions.Windows.Forms
'4. CrystalDecisions.CrystalReports.Engine

Imports System.Windows.Forms
Imports System.Drawing.Printing

Imports CrystalDecisions.Shared
Imports CrystalDecisions.Windows.Forms
Imports CrystalDecisions.CrystalReports.Engine

' Permet de charger et d'afficher rapidement un état Crystal Reports
' Fourni un moyen d'initialisation facile des champs de formule de l'état
Public Class CRHelper
    Private m_FileName As String        ' Chemin d'accès au fichier RPT à charger
    Private m_DataSource As DataSet     ' Source de données de l'état
    Private m_Report As ReportDocument  ' Représente l'état Crystal Reports lui-même

    ' Constructeur par défaut
    Public Sub New()
        m_Report = New ReportDocument
    End Sub

    ' Constructeur qui charge l'état et ses données
    Public Sub New(ByVal fileName As String, ByVal dataSource As DataSet)
        m_Report = New ReportDocument
        Me.FileName = fileName
        Me.DataSource = dataSource
    End Sub

    ' Accesseur  pour le chemin d'accès au fichier RPT
    Public Property FileName() As String
        Get
            Return m_FileName
        End Get
        Set(ByVal Value As String)
            m_FileName = Value
            m_Report.Load(Value)
        End Set
    End Property

    ' Accesseur  pour la source de données de l'état
    Public Property DataSource() As DataSet
        Get
            Return m_DataSource
        End Get
        Set(ByVal Value As DataSet)
            m_DataSource = Value
            m_Report.SetDataSource(Value)
        End Set
    End Property

    ' Accesseur  pour l'objet état Crystal Reports
    Public ReadOnly Property Report() As ReportDocument
        Get
            Return m_Report
        End Get
    End Property

    ' Accesseur pour le texte des champs de formule de l'état
    Public Property FormulaText(ByVal Index As Integer) As Object
        Get
            Return m_Report.DataDefinition.FormulaFields(Index).Text
        End Get
        Set(ByVal Value As Object)
            m_Report.DataDefinition.FormulaFields(Index).Text = Value
        End Set
    End Property

    ' Accesseur pour le texte des champs de formule de l'état
    Public Property FormulaText(ByVal Name As String) As Object
        Get
            Return m_Report.DataDefinition.FormulaFields(Name).Text
        End Get
        Set(ByVal Value As Object)
            m_Report.DataDefinition.FormulaFields(Name).Text = Value
        End Set
    End Property

    ' Affiche un aperçu avant impression de l'état
    Public Sub PrintPreview(ByVal owner As Form)
        Dim CRViewer As New CrystalReportViewer
        With CRViewer
            .DisplayGroupTree = False
            .Dock = DockStyle.Fill
            .ReportSource = m_Report
            .Zoom(2)
        End With

        Dim fViewer As New Form
        With fViewer
            Select Case m_Report.PrintOptions.PaperOrientation
                Case PaperOrientation.Landscape
                    .Size = New Size(600, 450)
                Case Else
                    .Size = New Size(400, 600)
            End Select

            .Text = "Aperçu avant impression"
            .StartPosition = FormStartPosition.CenterParent
            .Controls.Add(CRViewer)

            .ShowDialog(owner)
            .Dispose()
        End With
    End Sub

    ' Provoque l'impression directe de l'état
    Public Sub Print(ByVal printSettings As PrinterSettings)
        Dim copies As Integer = 1
        Dim collated As Boolean
        Dim startPage, lastPage As Integer

        If Not Nothing Is printSettings Then
            copies = printSettings.Copies
            collated = printSettings.Collate
            startPage = printSettings.FromPage
            lastPage = printSettings.ToPage
            m_Report.PrintOptions.PrinterName = printSettings.PrinterName
        End If

        m_Report.PrintToPrinter(copies, collated, startPage, lastPage)
    End Sub
End Class

' Démonstration
Module Demo
    Const CONSTR As String = "Server=(local);Integrated Security=SSPI;Persist Security Info=false;Database=Northwind"

    Sub Main()
        Dim CRH As New CRHelper

        Dim dsEmp As New DataSet("Employees")
        Dim conNWind As New SqlClient.SqlConnection(CONSTR)
        Dim daEmp As New SqlClient.SqlDataAdapter("SELECT * FROM Employees", conNWind)

        Try
            daEmp.Fill(dsEmp, "Employees")
            With CRH
                .FileName = "..\Employees.rpt"
                .DataSource = dsEmp

                .FormulaText("EnteteGauche1") = "'Ma Société'"
                .FormulaText("EnteteGauche2") = "'Ma Direction'"
                .FormulaText("EnteteGauche3") = "'Mon Service'"
                .FormulaText("EnteteGauche4") = "'N''Importe Quoi D''Autre'"
                .FormulaText("Titre") = "'Liste des employés de Northwind'"

                .PrintPreview(Nothing)
            End With
        Catch ex As Exception
            MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
End Module

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
63
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
19 mai 2009

Pour ceux qui comme moi sont en train de passer à VS 2010.(après avoir installé CRforVS_13_0 trouver sur le site de SAP)
Vous deviez rencontrer un problème à l'initialisation de la classe car il indique qu'il manque le fichier "DefaultAnimation.gif".
Pour contourner le problème, dans les propriétés du projet - Ressources, j'ai ajouté une image vide en format GIF avec comme nom "DefaultAnimation" - puis dans l'Explorateur de solutions, je suis aller retrouver le fichier pour pouvoir changer son propriété "Action de génération" pour sélectionner "Ressource incorporée" au lieu de "Aucun" par défaut.
Messages postés
5
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
10 février 2010

oki merci je lé fé mé je trouve ps qlq chose du bien
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Lance une recherche sur google. Les bons tutos sont plutôt rares Crystal Reports étant un produit essentiellement commercial...
Messages postés
5
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
10 février 2010

merci ADDY tu peux m'aider pour trouver un cours ou bien un document qui explique crystale rporte
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Essaie CrystalReport11.DataDefinition.FormulaFields("msm").Text = "'" & TextBox1.Text.Replace("'", "''") & "'". Si ça ne marche toujours pas, alors le champ "msm" de ton état n'est probablement pas un champ de formule. Dans ce cas, jette un coup d'oeil à la doc de Crystal Reports pour trouver comment créer une formule.
Afficher les 20 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.