J'essaie d'exécuter un rapport Crystal à partir de mon application Web construite à l'aide d'ASP.NET 4.0 et de Visual Studio 2010. J'ai installé les éléments suivants à partir du site SAP ( http://www.businessobjects.com/jump/xi /crvs2010/us2_default.asp )
1) SAP Crystal Reports, version pour Visual Studio 2010 - Package d'installation EXE standard qui installe le logiciel dans l'EDI de Visual Studio.
2) Moteur d'exécution SAP Crystal Reports pour .NET Framework 4 (64 bits)
J'ai une page appelée Reports.aspx dans laquelle j'ai un contrôle Crystal Report Viewer
<CR:CrystalReportViewer ID="rptViewer" runat="server" AutoDataBind="true" />
Dans le fichier Reports.aspx.cs, j'ai le code suivant:
protected override void OnPreRender(EventArgs e)
{
ReportDocument report = new ReportDocument();
var path = Server.MapPath("Reports/Sample.rpt");
report.Load(path);
report.SetDatabaseLogon("username", "password", "servername", "databasename");
rptViewer.ReportSource = report;
}
Sur la ligne report.Load (path), l'erreur suivante apparaît:
Opération non prise en charge. Un document traité par le moteur JRC ne peut pas être ouvert dans la pile C++.
Comment puis-je réparer cela?
assurez-vous que le rapport est dans le dossier app_code
en initialiser une nouvelle instance au lieu d’initialiser un document de rapport et d’y charger le rapport.
Sample report = new Sample();
cela a fonctionné pour moi
J'ai également eu le même problème, mon problème était que le chemin du rapport n'était pas valide. Peut-être avez-vous le même problème, vérifiez Server.MapPath ("Reports/Sample.rpt") retournant un chemin valide?
Vous devrez modifier deux propriétés dans les fichiers .rpt:
Reconstruire, construire le package de déploiement et publier. Terminé!
REMARQUE: ci-dessous, le terme "site Web" fait référence aux nœuds de site Web réels dans IIS, PAS à un répertoire virtuel au sein d'un site Web.
Problème lié à la cause: Il n'y a pas de dossier "aspnet_client" accessible par l'application.
Cela peut se produire pour plusieurs raisons:
Problème solution (pour Windows Server 2008 R2)
Je me suis heurté à cela lorsque j'ai converti un site Web en application Web. Le rapport fonctionnerait correctement sur ma machine de développement, mais pas sur le serveur. Puis j'ai réalisé que le fichier rpt était manquant sur le serveur!
Par défaut, les fichiers de rapport étaient considérés comme des ressources incorporées et n'étaient pas copiés lors de la publication de l'application Web. Je viens de les changer individuellement, de republier le site et tout allait bien à nouveau.
Cette erreur est un vrai régal et semble avoir de nombreux antécédents possibles. Heureusement, je n'ai perdu qu'une journée sur ma variante particulière:
ReportDocument.Load()
crée également une copie temporaire locale. (Cela peut n'être que dans le cas d'une charge provenant d'un emplacement de lecteur réseau, je ne l'ai pas testé dans le cas d'une charge locale.)
Si le contexte utilisateur dans lequel le chargement se produit n'a pas le droit de créer le fichier temporaire localement, Load
échouera avec la même erreur très inutile.
En outre, j'ai fini par diagnostiquer ceci avec Process Monitor . Cela pourrait vous être utile également.
J'ai également eu un échec de chargement de rapport si j'ai laissé par erreur le fichier de rapport ouvert dans Crystal Reports Designer.
Assurez-vous que les fichiers de votre rapport se trouvent dans leur dossier d'origine. J'ai eu la même erreur en premier, après avoir "publié" mon site Web MVC sur IIS. Je n'avais pas réalisé que "Publier" n'avait pas mis de fichiers rpt dans le paquet.
Réinstallez le "moteur de rapport Crystal" sur le serveur.
Action de construction définie sur "Contenu".
Cela a parfaitement fonctionné pour moi ..!