Problemi Export Report in PDF

martedì 24 maggio 2005 - 10.14

markmark Profilo | Newbie

Ciao a tutti, dovrei fare un export dei report in pdf, per farlo eseguo il seguente codice:


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

Dop.DiskFileName = "Prova.pdf";

exp = rpt.ExportOptions;
exp.DestinationOptions = Dop;
exp.ExportDestinationType = ExportDestinationType.DiskFile;
exp.ExportFormatType = ExportFormatType.PortableDocFormat;

rpt.Export();

Dove rpt è un ReporDocument

Il codice mi restituisce il seguente errore:

CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Error in File c:\inetpub\wwwroot\CRM\Report\OrderConfirmation.rpt: Access to report file denied. Another program may be using it.

Sapreste darmi una mano?

Ciao grazie a tutti

Andy Profilo | Senior Member

Ciao...da una prima occhiata in questo codice non c'è nulla che non vada, anche io ho un export a Pdf e come vedi agisco allo stesso modo:

Dim Rpt As New ReportDocument
Dim DOp As New DiskFileDestinationOptions

Rpt.Load("C:\Lista.rpt", CrystalDecisions.[Shared].OpenReportMethod.OpenReportByDefault)
Rpt.SetDataSource(DS_Comm)

DOp.DiskFileName = "C:\Lista.rpt"
With Rpt.ExportOptions
.DestinationOptions = DOp
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
End With
Rpt.Export()


Come vedi l'unica cosa che non abbiamo in comune e che FORSE potrebbe darti fastidio è la Load:

Rpt.Load("C:\Lista.rpt", CrystalDecisions.[Shared].OpenReportMethod.OpenReportByDefault)

Quindi prova a copiare la sintassi completa x il Load del file..magari è solo quello..

Andy Profilo | Senior Member

...scusami..ho notato che la mia sintassi è in VB e la tua in C#, comunqe il concetto è lo stesso, devi solo "tradurre" il comando...

markmark Profilo | Newbie

le due righe di codice sotto riportate erano gia nella mia pagina solo che prima non le avevo postate, quindi il problema non sta qui...

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


non potrebbe essere un problema di versioni di asp net o framework o di visual studio? o cercato anche in rete e vedo che il codice è sempre come il mio... solo che a me da quella eccezione...
Un'altra cosa... il report lo creo con il Crystal Report integrato in visual studio, non so se può essere utile

Andy Profilo | Senior Member

No, lo escludo, anche io uso CR integrato in VS.Net..

Altre idee non mi vengono, dall'errore mi sembra un poblema sul file prova.pdf che tenti di esportare...hai provato a cancellarlo (se esiste prima di creare un nuovo report)?

markmark Profilo | Newbie

il file prova.pdf non esiste, dovrei creare un pdf da fargli sovrascrivere?

Andy Profilo | Senior Member

No infatti, non deve esistere, intendevo il contrario, ossia se esistesse cancellalo prima di lanciare l'export.

Però il file .pdf potresti provare a crearlo in locale(C:\) invece di crearlo su Server, come vedo dall'esempio..magari il problema è proprio sulle protezioni del Server..hai già provato?

totti240282 Profilo | Guru

io non penso che lo possa creare in locale,perche se si specifica c:\,sarebbe il driver del server.

Andy Profilo | Senior Member

Ciao totti..?? Perchè??

Se un applicativo viene lanciato su Server Ok, ma se un applicativo viene lanciato su Client vedrà come disco C:\ il suo disco C (del Client, e non del Server)..quindi si può tranquillamente fare..
Poi l'export crea un .Pdf, in che senso parli di driver del Server?

markmark Profilo | Newbie

Ho appena provato passandogli un file con path "locale" , ma l'eccezione rimane sempre questa:

Access to report file denied. Another program may be using it.

totti240282 Profilo | Guru

io parlavo nel caso l'applicazione girava sul server,se gira in locale tutto ok :)

Andy Profilo | Senior Member

io parlavo nel caso l'applicazione girava sul server,se gira in locale tutto ok :)

..ah, ok allora si.. =)



Ho appena provato passandogli un file con path "locale" , ma l'eccezione rimane sempre questa:

Access to report file denied. Another program may be using it.


..mi spiace, non so proprio..prova a guardare le protezioni delle cartelle, non credo dipenda da CR a questo punto..

markmark Profilo | Newbie

volevo chiedervi unultimo favore, visto che abbiamo dedotto che non è un problema di crystal report o di codice, il problema potrebbe essere nelle impostazioni di IIS, mi fareste la cortesia di guardare i vostri settings e di dirmi se c'è quelche differenza...
Vi allego i miei settings...

Andy Profilo | Senior Member

Mi spiace, lavoro con WinForm, niente IIS..^_^

markmark Profilo | Newbie

alla grande ragazzi, tutto risolto, era un problema di IIS... Grazie per la disponibilita

alfapi Profilo | Newbie

ma allora il problema del file che è usato da un'altro processo, si è capito come risolverlo^

aprope Profilo | Newbie

scusatemi ma ho lo stesso problema.

potreste dirmi qual'era il problema di IIS..

Grazie in anticipo

alfapi Profilo | Newbie

In IIS devi dare i permessi di lettura e scrittura alla web application.
Oppure : http://support.businessobjects.com/library/kbase/articles/c2010773.asp

aprope Profilo | Newbie

grazie ora lo controllo

aprope Profilo | Newbie

Adesso mi dice questo

Load report failed.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Load report failed.

aprope Profilo | Newbie

Adesso mi dice questo

Load report failed.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Load report failed.
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5