CrystalReport impossible de Charger le rapport
J'ai un projet d'application windows (C# et .NET 2.0) qui ont utilisé la Crystal Report 2008. Mais j'obtiens l'erreur, parfois, semble-t-il accidentellement) dans le rapport de charge. Cette erreur est:
CrystalDecisions.Shared.CrystalReportsException: Load report failed.
System.Runtime.InteropServices.COMException (0x8000020D): Unable to load report.
at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
--- End of inner exception stack trace ---
at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
at SIA.DataTransfer.Forms.frmReport.GetStateReport(Int32 transferType)
merci de me guider. Comment puis-je résoudre ce problème?
Cela se passe sur votre machine de développement? Ou tout simplement des machines de production?
Il est arrive seulement dans les machines de production. je suis sûr que le rapport de chemin d'accès est correct.
J'ai rencontré ce problème avant ... la première chose que je voudrais faire est de vérifier pour s'assurer que le rapport est correct.
Il est arrive seulement dans les machines de production. je suis sûr que le rapport de chemin d'accès est correct.
J'ai rencontré ce problème avant ... la première chose que je voudrais faire est de vérifier pour s'assurer que le rapport est correct.
OriginalL'auteur mSafdel | 2009-07-26
Vous devez vous connecter pour publier un commentaire.
Si votre application est un fichier exécutable autonome alors cette erreur est générée, car vous n'êtes pas la fermeture de votre rapport d'objet correctement lorsque vous avez terminé avec tout ce que vous faites. Vous pourriez voir cette erreur d'exécution de votre application en tant que ASP.NET application avec un grand nombre d'utilisateurs qui accèdent à votre site simultanément.
Vous pouvez l'origine de l'erreur apparaissent plus tôt en jouant sur cette clé de registre:
Normalement, elle est, par défaut, 75. Pour le débogage, vous pouvez le régler à une valeur plus petite et la cause de l'erreur d'apparaître plus tôt.
Lorsque vous avez terminé d'utiliser un objet de rapport, appelez le .La méthode Close() qui va nettoyer les géré par les nations unies, les ressources utilisées.
Il y a ceux qui mentionnent pour changer le réglage à -1. C'est une erreur, il ne fera que causer d'autres problèmes pour une application qui est de longue durée. Le processus est finalement à court de ressources et de commencer à échouer dans les moyens qui seront d'autant plus difficiles à résoudre.
J'ai juste besoin de savoir si .disposer fonctionne bien .fermer (j'ai eu une erreur lors de l'impression de la mine, même en utilisant .disposer entre les impressions). Et l'erreur se produit surtout lorsque je l'imprimer plus de 75 fois...
Je n'ai pas pu trouver la clé ci-dessus dans l'emplacement spécifié, même si je l'ai trouvé ici: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Business Objects\Suite 12.0\Report Application Server\. Dans ce dossier, j'ai trouvé deux: A) InprocServer\PrintJobLimit et B) du Serveur\PrintJobLimit
OriginalL'auteur John Dyer
L'augmentation de
CurrentJobLimit
n'est pas la solution; ce nombre sera atteint si le compteur n'est pas réinitialisé.Pour éviter compteur de Travail augmenter, vous devez fermer le Document Crystal Report (
ReportSource.Close()
) par programmation.C'est la seule façon d'éviter de continuer à augmenter de ouvert du rapport, qui sont comptés par
CurrentJobLimit
pas CrystalReportViewer mais CrystalReportViewer1.Source d'état a méthode Close.
qu'est-ce que CrystalReportViewer1?
est le nom de CrystalReportViewer Contrôle qui se trouve dans votre page et affiche le rapport. Si vous déposez une CrystalReportViewer de contrôle, le nom par défaut sera CrystalReportViewer1
J'ai posté ce fil plus tôt aujourd'hui: stackoverflow.com/questions/29643043/... Si vous voulez dire que la fermeture de la
ReportDocument
, alors je le fais aussi, mais je n'ai pas decrystalReportViewer1.ReportSource.Close()
méthode.OriginalL'auteur Emanuele Greco
J'ai vérifié John Dyer solution, ci-dessus, ne fonctionne pas dans tous les cas.
J'ai également vérifié que la réinstallation de Cristal d'Exécution n'a pas de bon pour cette erreur.
Pour mon application ce n'était qu'il se passe sur Citrix installe un stand-alone .exe, avec des rapports intégrés. Avant d'utiliser le Visualiseur de Rapports Crystal, j'ai besoin de vous assurer que je n'ai effacé aucun rapport précédemment chargé dans le navigateur, comme par John instructions. Donc, je vais vous écrit quelque chose (en VB) qui ressemble à
où CleanOutViewer est:
Les appels après .Close() n'a également eu aucun effet (et ont été ajouté comme une alternative de tenter de forcer le Cristal de libérer des ressources).
OriginalL'auteur David T. Macknet
Rapport Crystal Document doit être manuellement éliminés.
Vous devez contrôler la durée de vie de tous les Rapports dans votre application et appeler leurs Éliminer avant d'atteindre la limite de 75.
Il y a une bonne approche sur la façon d'atteindre cet objectif dans ce lien:
http://geekswithblogs.net/technetbytes/archive/2007/07/17/114008.aspx
OriginalL'auteur Jazz
L'internet suggère également de réinstaller le rapport crystal à l'exécution sur les machines que vous essayez d'ouvrir le rapport sur les (faire en sorte que tous les emplacements ont la même version).
OriginalL'auteur SeanJA
Pour info, je viens de vérifié cette solution pour un problème similaire. Le ReportDocument.La méthode de chargement a échoué lors de l'utilisation d'un partage réseau mappé ou le chemin UNC et de l'installation de crystal reports VS d'exécution sur le serveur de fichiers résolu le problème.
OriginalL'auteur spm