begin process at 2012 02 13 02:47:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > UTILITAIRE CRYSTAL REPORTS

UTILITAIRE CRYSTAL REPORTS


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous :crystal, reports, reporting, etats Niveau :Débutant Date de création :17/12/2005 Vu / téléchargé :30 692 / 6 574

Auteur : addy

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


 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

  • '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
'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


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) IMPORTER/EXPORTER FACILEMENT VOS DONNÉES SOUS DIFFÉRENTS FOR...
Source avec Zip Source avec une capture Source .NET (Dotnet) ADDYSHEDULE : VISUALISEUR DE PROGRAMMES
Source avec Zip Source .NET (Dotnet) UTILITAIRE DE CRYPTOGRAPHIE
Source avec Zip Source avec une capture Source .NET (Dotnet) DATALIB : SIMPLIFIEZ-VOUS LA VIE AVEC ADO.NET
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER UNE BASE DE DONNEES MS ACCESS VERS MYSQL OU POSTGR...

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) GESTION DES NOTE MODE CONNECTÉ par mar1hilali

Commentaires et avis

Commentaire de anvert le 19/12/2005 11:54:59

Bonjour,
La base Northwind que tu utilises est une base de données Access au format mdb. Il en existe une autre sous forme d'un projet Access de format ADP.
Dans ton code tu te sers de SQL Server pour ouvrir une connexion à la base. Elle échoue car le server SQL ne sait pas l'atteindre sous ces 2 formats.
Comment fais-tu?

Commentaire de addy le 20/12/2005 18:48:47

Northwind est un exemple de base de données fourni avec tous les SGBD de Microsoft. La version que j'ai utilisé est fournie avec SQL Server. Le programme s'execute donc sans problème sur mon poste. Cependant, tu peux utiliser la version fournie avec MS Office sous-forme de fichier ADP. Il suffit d'installer au préalable MSDE (un SQL Server allégé) lui aussi fourni avec MS Office

Commentaire de souad2511 le 15/05/2006 02:42:36

bonjour svp , vous pouvez me donnez un autre code pour le crystalreport
et pour un combobox je veu chosir un etat ds le combobox et le crystale se charge aprés mon choix avec tout les informations de l'etat que j'ai choisi  et aprés je click sur un bouton pour imprimé la fiche .merci

Commentaire de addy le 16/05/2006 20:47:41

Tu peux utiliser le code ci-dessus pour résoudre ton problème. Saches que tu auras besoin d'un fichier .rpt et d'un DataSet différents pour chaque élément de ta liste.

ton code pourrait ressembler a ceci :

Dim helper As New CRHelper()

Select Case ComboBox1.SelectedItem
Case valeur1
   helper.FileName = "valeur1.rpt"
   helper.DataSource = dsValeur1
   .
   .
   .
End Select

helper.Print(Nothimg)

Commentaire de raoudha_hedile le 29/11/2006 10:23:15

bonjour
est ce que je peut mettre un code qui me permet de selectionner un bon de commande donnée et le crystal report peut charger ce  bon en tenant compte que tous les bon son classées dans un seul table triés par date

Commentaire de addy le 30/11/2006 19:50:51

Parfaitement.
Tout d'abord, quand tu imprimes des bons de commande ou des factures, il est bon que chacun tienne sur une page ou du moins que chaque document (facture ou bon de commande) commence sur une nouvelle page. Pour obtenir cet effet, fais un clic droit sur la marge à droite de la section correspondant au pied de page du document. En principe, cela devrait être un groupe (puisque que tu imprimes en fait des lignes de facture groupées par facture. Tu obtiens un tel jeu d'enregistrements en faisant une jointure entre la table des factures et celle des lignes de facture). Dans le menu contextuel qui apparaît selectionne 'Section Expert' (désolé mon Crystal est en Anglais). Dans la boîte de dialogue qui suit, trouve et coche la case 'Reset page number after'. Pour reduire l'état à une seule facture, construit ta requête de sorte qu'elle ne retourne que les lignes de cette facture. Pour le reste, concevoir un état c'est comme générer un document Word: c'est avant toute chose une question de bon goût.

Commentaire de prince4878 le 15/08/2007 21:53:26

Salut ! comment je peux faire avec une base Mysql ??

Commentaire de addy le 27/08/2007 05:02:23

Le fournisseur de données n'a aucune importance dans ce cas. Il te suffit d'avoir l'API correspondante et dans ton cas, il s'agit de MySQL.Data disponible en téléchargement sur le site de MySQL AB. Pour le reste, une fois que tes données sont contennues dans un DataSet, tout se passe sans problème.

Commentaire de bdl20042000 le 20/01/2009 15:24:05 9/10

merci pour ce code qui me simplifie la gestion des rapports.
pour ceux qui ont cherché, un moment comme moi, à enregistrer le rapport sans l'afficher.
voici le code que j'ai rajouté :
' Sauvegarde le rapport dans un fichier en format PDF, XLS, WORD, RTF, HTM
    ' sans afficher à l'écran le rapport
    Public Sub SaveAs(ByVal nomFichier As String, Optional ByVal format As String = "PDF")
        Dim crExportOptions As ExportOptions
        Dim crDiskFileDestinationOptions As New DiskFileDestinationOptions
        Dim strFormat As String = format.ToUpper

        crDiskFileDestinationOptions.DiskFileName = nomFichier

        crExportOptions = m_Report.ExportOptions
        crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
        crExportOptions.DestinationOptions = crDiskFileDestinationOptions

        Select Case strFormat
            Case "XLS"
                crExportOptions.ExportFormatType = ExportFormatType.Excel
            Case "DOC"
                crExportOptions.ExportFormatType = ExportFormatType.WordForWindows
            Case "RTF"
                crExportOptions.ExportFormatType = ExportFormatType.RichText
            Case Else
                crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
        End Select

        Try
            m_Report.Export()
        Catch ex As Exception
            MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

il ne reste plus qu'à l'appeler via un CRH.SaveAs("C:\test.pdf") pour l'enregistrer en format PDF (celui par défaut) ou CRH.SaveAs("C:\test.xls","xls") si en format Excel etc.

Commentaire de addy le 21/01/2009 09:03:15

Excellent!
On pourrait cependant faire que le format par défaut soit déduit de l'extension du nom de fichier de destination. Pour obtenir ce comportement, il suffit de retirer le mot clé 'Optional' et l'initialisation qui encadrent le paramètre 'format' de la méthode ci-dessus et d'ajouter la surcharge suivante:

Public Sub SaveAs(ByVal nomFichier As String)
    SaveAs(nomFichier, IO.Path.GetFileNameExtension(nomFichier).Substring(1))
End Sub

Commentaire de msm02 le 06/02/2010 15:09:50

bjr je veux mettre le contenu d'un combobox ou b1 textbox choisir apartire de la forme et le metté dans le contenu de crystal report ???
merci d'avance

Commentaire de addy le 08/02/2010 11:29:29

Défini un champ de formule dans l'état et affecte-lui la valeur du contrôle comme ceci:
myCRHelper.FormulaText("MaFormule") = "'" & txtFormule.Text.Replace("'", "''") & "'"

Commentaire de msm02 le 08/02/2010 21:52:52

merci bcp addy mé j itulise l'assistant de vb pour ajouté un nouvelle element crystal report et jé ajouté un nouveau champs dans l'explorateur des champs mé quand jé fé par exemple

CrystalReport11 .formuletext("nom_champ")=..............  erreur " formulatext né pas un

membre de windowsapplication.crystalreport1" ?
merci .

Commentaire de addy le 09/02/2010 16:07:54

Jette un coup d'oeil au code-source de CRHelper, tu trouveras que la propriété FormulaText de CRHelper mappe en réalité l'expression m_Report.DataDefinition.FormulaFields(nom_fomule).Text. Donc dans ton cas, il te suffit de faire référence à CrystalReport11.DataDefinition.FormulaFields(nom_fomule).Text

Commentaire de msm02 le 10/02/2010 00:04:18

merci ADDY pour vos reponse mé j essayé de faire ce que tu ma dit mé il n'affiche R1

voilà le code que jé utilisé :

CrystalReport11.DataDefinition.FormulaFields("msm").Text = TextBox1.Text

Commentaire de addy le 10/02/2010 10:46:20

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.

Commentaire de msm02 le 10/02/2010 11:17:37

merci ADDY tu peux m'aider pour trouver un cours ou bien un document qui explique crystale rporte  

Commentaire de addy le 10/02/2010 11:39:34

Lance une recherche sur google. Les bons tutos sont plutôt rares Crystal Reports étant un produit essentiellement commercial...

Commentaire de msm02 le 10/02/2010 11:42:03

oki merci je lé fé mé je trouve ps qlq chose du bien

Commentaire de bdl20042000 le 11/02/2011 09:26:34

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Crystal Reports [ par nico ] J'ai un état Crystal reports que je lance plusieurs fois (dans une boucle) avec réactualisation de la base de donnée à chaque tour. Le problème c'est Crystal reports [ par henri ] est ce que tu pourrais me dire comment modifier le chemin d'une base de donnees, par code dans une fenetre sous visual basic, d'un etat crystal report emaquetage et crystal reports [ par amri2 ] j'ai développé une application qui utilise crystal reports, le pb est que lorque je crée l'install avec l'assistant d'empaquetage, l'éxecution de l'ap crystal reports [ par lapapana ] Est ce que qq peut me dire comment afficher des données relatives à deux tables d'une bd dans une feuille de crystal reports:table1:-----------table2- Afficher un rapport Crystal Reports [ par inisis ] Bonjour,J'ai créé un rapport sous Crystal Reports 8, maintenant je voudrais l'afficher à partir de VB6. Je ne vois pas comment faire car j'ai essayé d Visual Basic et Seagate Crystal Reports [ par ataeallah ] bonjour,j'ai deux petit problèmes:1- je veux savoir comment affiche le contenu du MSHFLEXGRID dans un etat de crystal report.2- je filtre l'etat avec crystal reports [ par olivier ] qu'elle dll faut t'il reditribuer pour faire marcher crystal reports 8 et 8.5 merci car j'ai un programme vb avec crviewer et ca marche meme pas quand crystal reports et section [ par olivier ] comment changer les section de crystal reports pour qu'elles soit à l'horizontale au lieu de la verticale au lieu de 123faire 1 2 3 merci de votre aid


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,806 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales