1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
Option Explicit 'on force la déclaration des variables
' Déclaration des variables
Dim strRPTPath, strRPTFile 'type string
Dim strODBCLink, strODBCLogin, strODBCPwd 'type String
Dim oCRApp, oRep, oOpt 'objets Crystal.CRPE.Application
Dim oWrap, hWnd
' Chemin et Rapport Crystal Report
strRPTPath = "C:\CR_etats\"
strRPTFile = "mon_super_fichier.rpt"
' Paramètres de connexion ODBC
strODBCLink = "MonSuperLienODBC"
strODBCLogin = "MonSuperLogin"
' Ouverture du fichier RPT
Set oCRApp = CreateObject("Crystal.CRPE.Application")
On Error Resume Next
Set oRep = oCRApp.OpenReport(strRPTPath & strRPTFile)
If Err.Number <> 0 Then ' Gestion des erreurs
MsgBox "Erreur : " & Err.Number & Chr(10) & Chr(13) & Err.Description, vbCritical, "Erreur"
WScript.Quit 3
End If
On Error Goto 0
' Demande du mot de passe pour accéder à la base de donnée
strODBCPwd = inputbox("Mot de passe :", "Accès à la base de données")
If strODBCPwd = "" Then 'si le mot de passe est vide, on considère que l'utilisateur a choisi d'annuler (bouton Annuler)
WScript.Quit 0
End If
' Connexion ODBC
' syntaxe : LogOnServer "dll", "lien ODBC", "base", "identifiant", "mot de passe"
On Error Resume Next
oCRApp.LogOnServer "p2sodbc", "" & strODBCLink & "", , "" & strODBCLogin & "", "" & strODBCPwd & "" 'obligation d'utiliser les guillemets sinon le type des paramètres est refusé
If Err.Number <> 0 Then
MsgBox "Une erreur est survenue lors de la connexion à la source de données ODBC" & Chr(10) & Chr(13) & "Erreur : " & Err.Number & Chr(10) & Chr(13) & Err.Description, vbCritical, "ODBC"
WScript.Quit 2
End If
On Error Goto 0
' Paramétrage de la fenêtre d'aperçu avant impression
Set oOpt = oRep.PrintWindowOptions
oOpt.HasExportButton = False ' désactivation du bouton d'export
oOpt.HasPrintSetupButton = True ' activation du bouton de paramétrage de l'imprimante
' Affichage de la fenêtre d'aperçu avant impression
oRep.Preview("Visualisation Crystal Report")
' Boucle permettant à l'utilisateur d'interagir avec la fenêtre d'aperçu
Set oWrap = CreateObject("DynamicWrapper") 'instancie l'objet API
oWrap.Register "USER32.DLL", "FindWindowA", "i=ss", "f=s", "r=h" 'handle de la fenêtre du script
Do
WScript.Sleep 100 'on met en pause le script tant que la fenêtre d'aperçu existe
Loop While oWrap.FindWindowA(vbNullString, "Visualisation Crystal Report")
' Fin de l'affichage de la fenêtre d'aperçu |
Partager