Chemin d'accès virtuel: Crystal report Viewer

cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014 - 30 janv. 2014 à 15:09
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 23 févr. 2014 à 21:19
Bonjour Tous,
je ne sais pas si mon sujet est indiqué pour ce forum... sinon je m en excuse.

j'ai un souci avec mes états Crystal report ils ne s'affichent ni en local sur le serveur ni sur une machine cliente... mais pourtant en mode "debug/release" lancé depuis visual studio tout roule sans problème...

l'erreur suivante est générée:'C:/inetpub/wwwroot/monSite/REPORT/DecompteDefinitifAvecPret.rpt' est un chemin physique, mais un chemin d accès virtuel était attendu.
besoin d'aide SVP

voici mon code..


 protected void Page_Load(object sender, EventArgs e)
        {
            ReportDocument _myCrystalReport = new ReportDocument();
            _myCrystalReport.Load(Server.MapPath("C:/inetpub/wwwroot/monSite/REPORT/DecompteDefinitifAvecPret.rpt"));
            _myCrystalReport.SetDatabaseLogon("", "", @"(local)", "MURCASFASAS", true);
            _myCrystalReport.SetParameterValue("_matricule", DecompteTextBox.Text);
            CrystalReportViewer1.ReportSource = _myCrystalReport;
        }

5 réponses

cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
30 janv. 2014 à 15:35
l'erreur a évolué j'ai modifié la ligne 4 :
_myCrystalReport.Load(Server.MapPath("~/monSite/REPORT/DecompteDefinitifAvecPret.rpt"));


l'erreur suivante est générée par la ligne 5: Opération non prise en charge. Un document traité par le moteur JRC ne peut pas être ouvert dans la pile C++
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
3 févr. 2014 à 13:22
Salut,

j'utilise le même code que toi, pour charger le report je fais :
(avec le site sur wwwroot/monSite/REPORT/ )

string m_report = "monReport.rpt";

ReportDocument m_doc = new ReportDocument();

string  m_reportPath = Path.Combine(Server.MapPath("./REPORT/"), m_report);

m_doc.Load(m_reportPath);


et ça marche bien.

bye...
0
merci d'avoir répondu et désolé pour le retard de ma réponse... j'ai testé tel que mentionné plus haut... coté client j'ai aucune erreur mais l état crystal n'est pas visible(à partir du site).. lorsque j'exécute la mm page en mode debug je recois l'erreur suivante:
0x800a1391 -Erreur d'exécution javascript <<bobj>> est indéfini.

la ligne de code générant l erreur est : bobj.crv.stateManager.setComponentState('ContentPlaceHolder1_CrystalReportViewer1__UI',eval('('+document.getElementById('__CRYSTALSTATEctl00$ContentPlaceHolder1$CrystalReportViewer1').value+')'));
0
Salut yann_lo_san, je reviens encore avec le même problème... j'ai exécuté ton code il marche bien mais quand je change le chemin au niveau du site, rien ne s'affiche et aucune erreur n est générée...


 protected void Page_Load(object sender, EventArgs e)
{
try
{

string m_report = "CrystalReport1.rpt";
ReportDocument m_doc = new ReportDocument();
string m_reportPath = Path.Combine(Server.MapPath("wwwroot/Fasas_Murcas_2/Presentation/"), m_report);
m_doc.Load(m_reportPath);

}
catch (Exception ex)
{
ClientScriptManager cs = Page.ClientScript;
Type csType = this.GetType();
cs.RegisterStartupScript(csType, "myAlert", "<script language=JavaScript>window.alert('" +ex.Message + " -- " + ex.StackTrace + " -- " + ex.TargetSite+ "');</script>");


}
}

je ne sais pas si ce problème est lié à la version de CrystalReport(CRforVS_13_0_7)
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
8 févr. 2014 à 17:46
Salut,

Je ne sais pas si cela à un rapport avec ton erreur, mais
as tu essayé de transformer le répertoire REPORT en dossier virtuel dans IIS ?

Dans l'arborescence du serveur WEB, Click droit sur REPORT, puis Dossier virtuel ou créer l'application,
ce qui permet d'en faire un répertoire virtuel.

bye...
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 févr. 2014 à 20:19
Salut,

attention, ton code d'affichage de l'exception risque de ne pas marcher si une quote existe dans le message d'exception.
C'est déjà arrivé pour moi.

Je te conseille donc de faire ceci pour être sur que l'exception soit bien affichée :

cs.RegisterStartupScript(
	csType, 
	"myAlert", 
	"<script language=\"JavaScript\">window.alert(\'" + 
	ex.Message.Replace("\'", " ").Replace("\"", " ") + " -- " + 
	ex.StackTrace.Replace("\'", " ").Replace("\"", " ") + " -- " + 
	ex.TargetSite + "\');</script>");
</code>


Une autre solution est de lancer la page Trace.axd une fois que ta page a fini de charger.

Si par exemple tu utilises l'url :
http://monSite/maPageChargeReport.aspx
et bien tapes dans la barre d'adresse :
http://monSite/trace.axd

tu auras une page contenant toutes les données GET/POST, les variables serveur et client ect... Plus l'erreur en rouge si une exception à été exécutée.
Voir la doc .net pour activer ce moteur de trace automatique et tous les Handler utiles en .AXD

bye...
0
Slt yann_lo_san,
peux tu me donner les différentes configurations de ton matériel et logiciel(version etc...)? les miennes sont les suivantes:
-visual studio 2012 ultimate
-Crystal Report 13.0.8
-Windows Server 2012 (64bits)
-IIS 8.0

fais tu une configuration particulière pendant le déploiement de ton site?(genre copie d'un dossier ou ajout de balise dans ton fichier webconfig??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
23 févr. 2014 à 21:19
Salut,

Visual studio 2010
Crystal report 13
Windows server 2003
IIS 6

Pas de config particulière sauf pour le mode trace/debug

Le répertoire Report est un dossier virtuel en lecture/écriture

Sinon as tu tracé cette ligne

Path.Combine(
Server.MapPath("/wwwroot/Fasas_Murcas_2/Presentation/"), m_report));

(J'ai rajouté le slash avant wwwroot)

Cela doit afficher : C: ou D: selon ton serveur

C:\RACINE_DU_SITE\wwwroot\Fasas_Murcas_2\Presentation\leReport.rpt

Es ce bien ce le chemin que tu veux ?
0
Rejoignez-nous