OVH Cloud OVH Cloud

Crystal report

2 réponses
Avatar
Jérôme
Bonjour,

je viens de faire l'aquisition de crystal report.
Je voudrais ouvrir le visualiseur d'état de crystal avec une comande VBA.

Pouvez m'aider SVP.

Merci d'avance.

Jérôme

2 réponses

Avatar
Rv
Salut Jérôme,

Cela peut dépendre de la façon dont l'état a été conçu dans crystal.
Voici une méthode utilisant le Crystal Report Viewer Control dans Access
pour ouvrir un état créé dans Crystal Report et enregistré dans un fichier
'.rpt'.
- Créer un formulaire dans lequel on insére le controle activex 'Crystal
Report Viewer Control'. Puis on le dimmensione correctement. S'il a été bien
enregistré dans la base de registre lors de l'installation vous le trouverez
dans le menu insertion - controle activex
- Nommez ce controle ctlViewer
- Copiez le code suivant dans le module de code associé à ce
formulaire.:

Option Compare Database
Option Explicit
Dim objetat As CRAXDRT.Report
Dim objAppCR As CRAXDRT.Application

Public Sub rafEtat(Optional strSel As Variant)
If Not IsMissing(strSel) Then
objetat.RecordSelectionFormula = strSel
End If
ctlViewer.Refresh
End Sub

Private Sub Form_Activate()
DoCmd.Maximize
End Sub


Private Sub Form_GotFocus()
DoCmd.Maximize
End Sub

Private Sub Form_Load()
DoCmd.Maximize
End Sub

Private Sub Form_Resize()
ctlViewer.Top = 0
ctlViewer.Left = 0
ctlViewer.Height = Me.InsideHeight
ctlViewer.Width = Me.InsideWidth
End Sub

Public Sub initEtat(strFichier As String, Optional objrs As Variant,
Optional strSelection As Variant, Optional strTitre As Variant)
Dim objView As CRViewer

Set objAppCR = New CRAXDRT.Application
Set objetat = objAppCR.OpenReport(strFichier)

If Not IsMissing(objrs) Then
objetat.Database.SetDataSource objrs
End If
If Not IsMissing(strSelection) Then
objetat.RecordSelectionFormula = strSelection
End If
objetat.ReadRecords
Me.ctlViewer.ReportSource = objetat
Me.ctlViewer.EnableExportButton = True
Me.ctlViewer.EnableDrillDown = False
Me.ctlViewer.DisplayBorder = False
Me.ctlViewer.ViewReport
Set objetat = Nothing
Set objAppCR = Nothing

End Sub

- Il faut rajouter la référence "Crystal Report X.X ActiveX Designer Run
Time Library. (X.X à ajuster selon la version pour moi 8.5). On peut
remarquer que la premiere étape (insertion de l'activex) a automatiquement
ajouter la référence. 'Crystal Report Viewer Control'
- Nommez ce formulaire frmEdition. Il servira de base de lancement pour
toutes les édition.


Maintenant à partie d'un autre formulaire. Utilisez le code suivant pour
lancer l'édition à placer sur l'événemnt clic d'un bouton nommé
'btnImprimer'.

Option Compare Database
Option Explicit
Dim objFormEdition As Form_frmEdition
Dim objetat As CrystalReport

Private Sub btnImprimer_Click()
Dim strFichier As String


DoCmd.Hourglass -1
' Chemin complet du fichier .rpt a adapter
strFichier = "c:test.rpt"

' Appel édition
Set objFormEdition = New Form_frmEdition
objFormEdition.Visible = True
Call objFormEdition.initEtat(strFichier)
DoCmd.Hourglass 0
Exit Sub

End Sub

Dites moi si ça fonctionne correctement.

A+

Rv


"Jérôme" a écrit dans le message news:

Bonjour,

je viens de faire l'aquisition de crystal report.
Je voudrais ouvrir le visualiseur d'état de crystal avec une comande VBA.

Pouvez m'aider SVP.

Merci d'avance.

Jérôme




Avatar
Rv
Salut Jérôme,

Cela peut dépendre de la façon dont l'état a été conçu dans crystal.
Voici une méthode utilisant le Crystal Report Viewer Control dans Access
pour ouvrir un état créé dans Crystal Report et enregistré dans un fichier
'.rpt'.
- Créer un formulaire dans lequel on insére le controle activex 'Crystal
Report Viewer Control'. Puis on le dimmensione correctement. S'il a été bien
enregistré dans la base de registre lors de l'installation vous le trouverez
dans le menu insertion - controle activex
- Nommez ce controle ctlViewer
- Copiez le code suivant dans le module de code associé à ce
formulaire.:

Option Compare Database
Option Explicit
Dim objetat As CRAXDRT.Report
Dim objAppCR As CRAXDRT.Application

Public Sub rafEtat(Optional strSel As Variant)
If Not IsMissing(strSel) Then
objetat.RecordSelectionFormula = strSel
End If
ctlViewer.Refresh
End Sub

Private Sub Form_Activate()
DoCmd.Maximize
End Sub


Private Sub Form_GotFocus()
DoCmd.Maximize
End Sub

Private Sub Form_Load()
DoCmd.Maximize
End Sub

Private Sub Form_Resize()
ctlViewer.Top = 0
ctlViewer.Left = 0
ctlViewer.Height = Me.InsideHeight
ctlViewer.Width = Me.InsideWidth
End Sub

Public Sub initEtat(strFichier As String, Optional objrs As Variant,
Optional strSelection As Variant, Optional strTitre As Variant)
Dim objView As CRViewer

Set objAppCR = New CRAXDRT.Application
Set objetat = objAppCR.OpenReport(strFichier)

If Not IsMissing(objrs) Then
objetat.Database.SetDataSource objrs
End If
If Not IsMissing(strSelection) Then
objetat.RecordSelectionFormula = strSelection
End If
objetat.ReadRecords
Me.ctlViewer.ReportSource = objetat
Me.ctlViewer.EnableExportButton = True
Me.ctlViewer.EnableDrillDown = False
Me.ctlViewer.DisplayBorder = False
Me.ctlViewer.ViewReport
Set objetat = Nothing
Set objAppCR = Nothing

End Sub

- Il faut rajouter la référence "Crystal Report X.X ActiveX Designer Run
Time Library. (X.X à ajuster selon la version pour moi 8.5). On peut
remarquer que la premiere étape (insertion de l'activex) a automatiquement
ajouter la référence. 'Crystal Report Viewer Control'
- Nommez ce formulaire frmEdition. Il servira de base de lancement pour
toutes les édition.


Maintenant à partie d'un autre formulaire. Utilisez le code suivant pour
lancer l'édition à placer sur l'événemnt clic d'un bouton nommé
'btnImprimer'.

Option Compare Database
Option Explicit
Dim objFormEdition As Form_frmEdition
Dim objetat As CrystalReport

Private Sub btnImprimer_Click()
Dim strFichier As String


DoCmd.Hourglass -1
' Chemin complet du fichier .rpt a adapter
strFichier = "c:test.rpt"

' Appel édition
Set objFormEdition = New Form_frmEdition
objFormEdition.Visible = True
Call objFormEdition.initEtat(strFichier)
DoCmd.Hourglass 0
Exit Sub

End Sub

Dites moi si ça fonctionne correctement.

A+

Rv


"Jérôme" a écrit dans le message news:

Bonjour,

je viens de faire l'aquisition de crystal report.
Je voudrais ouvrir le visualiseur d'état de crystal avec une comande VBA.

Pouvez m'aider SVP.

Merci d'avance.

Jérôme