J'essaie de créer une application de console VB6 pour exporter automatiquement Crystal Reports au format PDF. Cela doit être fait sans interaction de l'utilisateur (pas de boîte de dialogue Enregistrer sous ou Imprimer). L'idée est de remplacer une application existante qui utilise Neevia DocCreator pour imprimer au format PDF, mais nécessite que l'utilisateur interagisse avec une boîte de dialogue Enregistrer sous pour chaque rapport.Exportation de Crystal Reports 8.0 vers PDF dans VB6 sans interaction utilisateur
En raison de la situation de notre entreprise, je suis contraint à VB6 et Crystal Reports 8.0. Je ne peux pas acheter de logiciel supplémentaire ni télécharger de logiciel open source tiers, ce qui est interdit par la politique.
Je rencontre un problème lors de l'exportation réelle. Dans le code ci-dessous, à l'aide d'un exemple de rapport à tester, la ligne "oXRpt.Export False" génère une erreur "DLL d'exportation manquante ou obsolète". Je n'ai pas été en mesure de déterminer à quelle DLL il se réfère. La référence Crystal Report Export dans le projet pointe vers C: \ Program Files \ Seagate Software \ Viewers \ ActiveXViewer \ sviewhlp.dll. Cette DLL existe dans le répertoire référencé.
Est-ce que quelqu'un a réussi à le faire, ou quelqu'un a-t-il connaissance de quelle DLL pourrait être le problème? Je peux également accepter une solution qui imprime au format PDF sans aucune interaction de l'utilisateur (nous n'avons pas Adobe Acrobat complet et cette société ne l'achètera pas, pas ma décision, désolé). Voici mon code:
Sub Main()
Dim oXApp As CRAXDRT.Application
Dim oXRpt As CRAXDRT.Report
Dim oXOpt As CRAXDRT.ExportOptions
On Error GoTo ExportErr
Set oXApp = CreateObject("CrystalRuntime.Application")
Set oXRpt = oXApp.OpenReport(App.Path & "\C1910X.rpt") '"\C0562.rpt")
oXRpt.RecordSelectionFormula = "{REPORT_HEADER.ReportControlID} = " & 1985735
With oXRpt
.EnableParameterPrompting = False
.MorePrintEngineErrorMessages = True
End With
Set oXOpt = oXRpt.ExportOptions
With oXOpt
.DestinationType = crEDTDiskFile
.DiskFileName = App.Path & "\C1910X.pdf"
.FormatType = crEFTPortableDocFormat
End With
oXRpt.Export False 'throws missing or out-of-date dll error
ExportErr:
MsgBox Err.Number & ", " & Err.Description
End Sub
vous pouvez réinstaller pour le rapport de cristal l'add-on – maSTAShuFu
Vous êtes manque certains fichiers critiques utilisés pour l'exportation de Crystal Reports uniquement. Je ne me souviens pas de ce qu'ils sont en ce moment, je ne suis pas en mesure d'accéder à mon code. Je fais exactement ce que vous cherchez - j'exporte des factures vers des fichiers PDF et je vais même plus loin et je les envoie par e-mail, le tout sans intervention de l'utilisateur autre que l'initiation de la fonction. Si vous n'avez pas les fichiers d'exportation corrects, cela échouera exactement comme vous l'avez indiqué. J'ai 8.5 mais je suis sûr qu'ils sont les mêmes pour 8.0. J'y reviendrai plus tard ce soir (si je me souviens bien) et posterai une réponse plus précise alors. –