Cours avec manuel d’intégration à Visual Basic, tutoriel & guide de travaux pratiques en pdf.
Intégration avec passage d’un jeu d’enregistrements au rapport
L’édition brute d’un rapport est certainement la plus évidente à mettre en place. Cependant, elle convient peu à la réalité. En effet, on souhaitera souvent éditer un état incomplet, c’est-à-dire filtré ou trié par l’utilisateur de l’application. Dans ce cas, il faut recourir à l’édition avec passage d’un jeu d’enregistrement.
Note : pour que les techniques décrites ci-dessous fonctionnent, il est impératif que l’option
- Enregistrer les données avec l’état » du menu fichier de Crystal Reports soit désactivée.
- Pour un rapport ne comportant pas de sous-état
- Comme pour l’intégration brute, il faut avant tout ajouter les composants nécessaires à Crystal Reports, mais également les composants nécessaires à la création d’un recordset qui sont :
Références : Microsoft ActiveX Data Objects 2.5 Library msado15.dll
Contrôles : Microsoft ADO Data Control 6.0msadodc.ocx
Ensuite, créer une feuille et y placer un composant CRViewer, qui sera normalement appelé « CRViewer1 » par défaut.
c) Ensuite, il faut insérer le code suivant :
Déclarations
Dim app As New CRAXDRT.Application Dim RecordSet As ADODB.Recordset Dim Report As New CRAXDRT.Report Dim lStrSql As String Dim lStrConnect As String
Dim Connect As ADODB.Connection
- jeu d’enregistrements
- Contient l’ordre SQL pour le recordset
- Contient la chaîne de connection à la base
- Objet de type connection
Private Sub Form_Load()
- Change le pointeur de souris en sablier MousePointer = vbHourglass
- Définit la requête pour le jeu d’enregistrements
lStrSql = « SELECT champ1, champ2, champN FROM table1, table2, tableN »
‘ Définit la chaine de connection
lStrConnect = « Provider=Nom_du_provider;User ID=nom_du_user; » & _ « Data Source=Nom_de_la_base; Password=Mot_de_passe »
‘ Instancie l’objet Connection
Set Connect = new ADODB.Connection
- Ouvre la connection avec la chaine de connection open lStrConnect
- Instancie l’objet Recordset
Set RecordSet = new ADODB.Recordset
- Initialise le recordset avec la requête et l’objet connection open lStrSql, Connect
- On peut éventuellement appliquer des tris ou filtres existant sur d’autres recordset sort = autreRecordSet.sort
RecordSet.filter = autreRecordSet.filter
- Instancie l’objet application
Set app = New CRAXDRT.Application
‘ Ouvre le fichier rapport
Set Report = app.OpenReport(« C:\chemin\du\fichier\nom_de_fichier.rpt « )
- Indique que la source du rapport est le recordset que l’on vient de définir Database.SetDataSource RecordSet
- Indique à l’objet de visualisation que les données viennent du rapport ReportSource = Report
- Lance la visualisation du rapport
- Le pointeur de souris redevient normal une fois le chargement effectué MousePointer = vbDefault End Sub
Pour un rapport comportant un sous-état
Dans ce cas de figure, le type utilisé pour le rapport change. En effet, concernant les composants utilisés, Crystal Reports Engine 8 Object Library (cpeaut32.dll) vient remplacer Crystal Report 8 ActiveX Report Designer Run Time Library (craxdrt.dll).
En ce qui concerne les données, il faut créer deux jeux d’enregistrements. En effet, l’un est destiné à l’état principal, et l’autre au sous -état.
De plus, les composants utilisés étant différents de ceux utilisés précédemment, la création d’un objet CRViewer est inutile, puisque cette méthode commande elle-même l’ouverture d’une fenêtre de visualisation du rapport.