[HELP] Error: Fail to render the page.

lunedì 20 febbraio 2006 - 11.42

markmark Profilo | Newbie

Ciao a tutti,
Volevo sottoporvi un problema di visualizzazione di un report...
Ho creato un'applicazione che sfrutta la reportistica in Crystal report... finchè sono in Debug e cerco di visualizzare il report va tutto a buon fine... Quando però installo l'applicazione sul server e tento di accedere al report dall'esterno ottengo il seguente errore:

CrystalReportViewer - report
Error: Fail to render the page.

Al posto del Viewer ho un rettangolo giallo.

Spulciando in rete ho letto che è un problema di sicurezza di IIS e che per risolverlo bisogna aggiungere al web.config della propria applicazione il seguente tag:

<identity impersonate="false" />

Il tag l'ho inserito ma la situazione non migliora per niente.
Qualcuno è in grado di aiutarmi...
Ciao e grazie

Programmatore Asp .NET C#

freeteo Profilo | Guru

ciao,
potrebbero esserci vari fattori, qualcosa legato al web config, ma proviamo a procedere per gradi: sulla macchina dove fai il deploy hai installato il runtime di crystal?

ovvero hai fatti 1 pacchetto di setup al quale hai aggiunto i merge module? http://support.businessobjects.com/communityCS/TechnicalPapers/crnet_deployment.pdf

o se sei in 2005 gli puoi anche dire di avere crystal come prerequisito: http://blogs.dotnethell.it/freeteo/Post_1190.aspx

fammi sapere...ciao
Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo

markmark Profilo | Newbie

Il progetto di setup è configurato correttamente.
Infatti il problema sorge dopo una recente modifica all'applicazione, prima funzionava tutto correttamente.
In pratica ho aggiunto un nuovo report.

Per installare la modifica non ho reinstallato tutto, ho semplicemente inserito il report e sostituito la pagina che lo visualizza.

Grazie
Programmatore Asp .NET C#

freeteo Profilo | Guru

ciao,
allora sembra 1baco, ma se provi con altri report il problema non succede?
il report nuovo ha percaso 1 sottreport? perche dicono che ci potrebbe essere 1 bug del programma,che risolvi "girandoci intorno" :-)
il link: http://support.businessobjects.com/library/kbase/articles/c2014843.asp

ciao
Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo

markmark Profilo | Newbie

Nessun sottoreport...
gli altri report della stessa applicazione funzionano correttamente.
Pensi possa essere un bug di crystal report o della mia applicazione?
Se è di crystal report come faccio a girarci intorno?

Ancora grazie per la disponibilità
Programmatore Asp .NET C#

freeteo Profilo | Guru

mmmhhmmm ...
- ovviamente hai specificato il percorso (o da codice il Datasource) del report ed è corretto?
- che differenza ha questo report, immagini embedded, multitabella (devi settare la sorgente per tutte in questo ultimo caso) ?

dovresti provare a capire (o carpire ) quale è la differenza per capire dove va in errore...altrimenti cosi' non saprei dirti nemmeno se si tratta di "baco"...

ciao
Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo

markmark Profilo | Newbie

Allora... vediamo di andare un pò nel dettaglio...
I report, sia funzionanti che non, non hanno nessuna struttura particolare, riportano semplicemente i dati risultanti dalla query in una "griglia".
il codice che uso per il report non funzionante è il seguente:

DatiOrdine ds = new DatiOrdine(); //Richiamo il dataSet

SqlDataAdapter da = new SqlDataAdapter(sqlstmt, hConn); //eseguo la query sul dataAdapter
da.Fill(ds.Tabellone); //popolo il dataSet con i risultati della query

hConn.Close(); //Chiudo la connessione co il DB

if (Request.Params["FattPro"] == null) //Se ho ricevuto il Parametro FattPro allora stampo la fattura proforma
{
rpt.Load(Server.MapPath("Report\\OrderConfirmation.rpt"), CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault);
}
else //Altrimenti stampo la conferma d'ordine
{
rpt.Load(Server.MapPath("Report\\FattPro.rpt"), CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault);
}

//rpt definito come ReportDocument
//report definito come ReportViewer

rpt.SetDataSource(ds); //setto il DataSource del ReportDocument
report.ReportSource = rpt; //setto il DataSource del ReportViewer

//Eseguo l'export in pdf del report
DiskFileDestinationOptions Dop = new DiskFileDestinationOptions();
ExportOptions exp = new ExportOptions();

fileName = Session.Contents["NomeUtente"].ToString() + "_ConfermaReport.pdf";

Dop.DiskFileName = Server.MapPath("Report\\" + fileName);
exp = rpt.ExportOptions;
exp.DestinationOptions = Dop;
exp.ExportDestinationType = ExportDestinationType.DiskFile;
exp.ExportFormatType = ExportFormatType.PortableDocFormat;

rpt.Export();

Con questo codice ottengo il messaggio di errore che ti ho detto prima... l'export in pdf va a buon fine, quindi il report viene per forza creato.

Il codice per un report funzionante invece è il seguente:

DatiListino ds = new DatiListino();
SqlDataAdapter da = new SqlDataAdapter(sqlstmt, hConn);
da.Fill(ds.Listino);

hConn.Close();

rpt.Load(Server.MapPath("Report\\Listino.rpt"), CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault);
rpt.SetDataSource(ds);

report.ReportSource = rpt;

DiskFileDestinationOptions Dop = new DiskFileDestinationOptions();
ExportOptions exp = new ExportOptions();

fileName = Session.Contents["NomeUtente"].ToString() + "_Listino.pdf";

Dop.DiskFileName = Server.MapPath("Report\\" + fileName);
exp = rpt.ExportOptions;
exp.DestinationOptions = Dop;
exp.ExportDestinationType = ExportDestinationType.DiskFile;
exp.ExportFormatType = ExportFormatType.PortableDocFormat;

rpt.Export();

Di fondo non c'è nessuna differenza tra i due codici, tranne che per l'istruzione if/else nel primo listato.
Ripeto... siccome l'export va a buon fine il report deve per forza di cose essere stato creato .

La cosa mi lascia perplesso
Programmatore Asp .NET C#
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5