|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription: avril 2002
Messages: 6
|
Bonjour,
J'aurais besoin de savoir s'il est possible de générer plusieurs éléments dans un fichier PDF à partir de .NET et plus particulièrement des Reports Crystal reports. Mon but est de pouvoir créer un seul fichier PDF avec une exportation de plusieurs reports vers ce fichier PDF. Si vous avez déjà effectué ce type de manipulation, auriez-vous la gentillesse de m'expliquer comment et avec quelle version de Crystal Reports. Bien à vous et merci. Frédérick |
|
|
00
|
|
|
#2 |
|
Nouveau membre du Club
![]() Inscription: décembre 2003
Messages: 56
|
Bonjour,
je pense que la seule solution à ton problème est de créer un nouveau rapport, et d'y insérer tes rapports en tant que sous-rapports... Du coup à l'exportation tu auras bien un seul PDF. Bon courage ! |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Inscription: mai 2002
Messages: 313
|
Voici le code pour exporter 1 report en PDF => il suffit de lire les reports à la suite pour faire fonctionner l'ensemble.
Version VB.NET réalisée par mes soins Code :
Imports System
Imports System.IO
Imports System.Text
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports
Public Class CrystalReportTool
'Clear all output buffers
'Friend ReadOnly instance AS New CrystalReportTool
Public Sub exporterFluxPdf(ByRef response AS HttpResponse, ByVal rpTemp AS ReportDocument, ByVal nomfic AS String)
response.ClearHeaders()
response.ClearContent()
response.Clear()
response.ContentType = "application/pdf"
response.AddHeader("Content-Disposition", "attachment; filename=" & nomfic & ".pdf")
Dim oStream AS MemoryStream
oStream = rpTemp.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
response.Buffer = True
response.BinaryWrite(oStream.ToArray())
response.End()
End Sub
End Class
et une version C# développée par un collègue : Code :
public static void exporterFluxPdf(System.Web.HttpResponse response, CrystalDecisions.CrystalReports.Engine.ReportDocument rpTemp) { // Clear ALL output buffers response.ClearHeaders(); response.ClearContent(); ExportOptions expOptions = rpTemp.ExportOptions; // Output IS pdf response.ContentType = "application/pdf"; // Force save popup IN IE //Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf" ); expOptions.ExportFormatType = ExportFormatType.PortableDocFormat; // Do the print TO "prepare" the content // IF omitted the export process takes much longer time //rptReport1.PrintToPrinter(1, false, 0, 0); ExportRequestContext req = new ExportRequestContext(); req.ExportInfo = expOptions; // Get the export stream System.IO.MemoryStream s = (System.IO.MemoryStream)rpTemp.FormatEngine.ExportToStream(req); System.IO.Stream outstream = response.OutputStream; byte[] readBuf = new byte[4096]; int bytes = 0; do { bytes = s.READ( readBuf, 0, readBuf.Length ); outstream.WRITE( readBuf, 0, bytes ); } while( bytes > 0 ); response.End(); }
__________________
- Fais une recherche, c'est un conseil. Si je me mets à t'aider, tu vas pas t'en sortir - "Même avec les yeux grands ouverts, je n'y vois rien". |
|
|
00
|