none
Exportar a pdf desde un crystal report RRS feed

  • Pregunta

  • Buenos días , necesito generar archivos pdf desde un reporte en crystal report, quiero que ese pdf se guarde con campos del mismo reporte, ejemplo:

    20131589063-02-01-0098-0000095.pdf

    Son varios registros que me muestran en un gridviw y todos esos datos de la grilla quiero pasar a pdf.

    Saludos 


    • Editado Ronald Paico jueves, 22 de marzo de 2018 15:47
    • Cambiado Enrique M. Montejo sábado, 24 de marzo de 2018 7:51 Pregunta relacionada con Crystal Reports.
    jueves, 22 de marzo de 2018 15:42

Respuestas

  • Hola:

    Te pongo un ejemplo de exportación de informes por código a diversos formatos.

     Private Sub ExportacionProyeccionesFinancieras()
            Dim a As Assembly = Assembly.GetExecutingAssembly
            Dim rm As New ResourceManager(a.GetName.Name & ".Textos", a)
    
            Label1.Visible = True
            Label1.Text = ""
    
            If (ComboBox1.SelectedIndex = 2) Then  'Excel
                Dim Ruta As String = "Informes Exportados Financial\Informes Excel\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".xls"
                Dim CrFormatTypeOptions As New ExcelFormatOptions
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.Excel
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado" & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Excel " & vbCrLf &
                              "'EXCEL' "
    
            ElseIf (ComboBox1.SelectedIndex = 3) Then  'Pdf
                Dim Ruta As String = "Informes Exportados Financial\Informes PDF\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".pdf"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes PDF " & vbCrLf &
                              "'PDF'"
    
            ElseIf (ComboBox1.SelectedIndex = 4) Then  'Word
                Dim Ruta As String = "Informes Exportados Financial\Informes Word\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".doc"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.WordForWindows
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Word " & vbCrLf &
                              " 'WORD' "
    
            ElseIf (ComboBox1.SelectedIndex = 5) Then  'Rtf
                Dim Ruta As String = "Informes Exportados Financial\Informes Rtf\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".doc"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.RichText
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Rtf " & vbCrLf &
                              "'RTF. (Rich Text Format)' "
    
            ElseIf (ComboBox1.SelectedIndex = 6) Then  'Xml
                Dim Ruta As String = "Informes Exportados Financial\Informes Xml\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".xml"
                Dim CrFormatTypeOptions As New XmlExportFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.Xml
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Xml " & vbCrLf &
                              " 'XML''"
    
            End If
    
            CrReport.Close()
            CrExportOptions = Nothing
            Timer1.Enabled = True
    
        End Sub

    Sustituye lo que precises por tus nombres. 

    Ahí lo trato en un combo en el que usuario escoge a donde exportar.

    Un saludo.

    Gemma

    jueves, 22 de marzo de 2018 18:38

Todas las respuestas

  • Hola Ronald:

    Desde el mismo Crystal, puedes exportar el informe a varios tipos de archivos, entre ellos pdf. Allí, le podrás poner el mismo nombre o el que quieras. Verás que cuando se abre la ventana del visualizador de informes, a la izquierda hay una impresora y un sobre, accedes al sobre y allí podrás escoger lo que precises.

    Un saludo.

    Gemma

    jueves, 22 de marzo de 2018 16:03
  • Pero lo que yo deseo es no hacer ese proceso, si no que con un boton me genere los pdf
    jueves, 22 de marzo de 2018 16:11
  • Este código lo utilizo en los ReportViewer, no sé si funcionar para CrystalReport (supongo que si):

     'Creamos el archivo en formato PDF
     Dim ByteReport As Byte() = rpvPedido.LocalReport.Render("PDF", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
     Dim NewFile As New FileStream(Archivo, FileMode.Create)
     NewFile.Write(ByteReport, 0, ByteReport.Length)
     NewFile.Close()
     If bAbrirPdf = True And bUnirDocPDFs = False Then
           System.Diagnostics.Process.Start(Archivo)
     End If

    rpvPedido es el reporte del informe. Al pulsar el botón haz la llamada al reporte añadiendo el código.

    un saludo.




    • Editado rbs61 jueves, 22 de marzo de 2018 17:09
    jueves, 22 de marzo de 2018 17:03
  • Hola:

    Te pongo un ejemplo de exportación de informes por código a diversos formatos.

     Private Sub ExportacionProyeccionesFinancieras()
            Dim a As Assembly = Assembly.GetExecutingAssembly
            Dim rm As New ResourceManager(a.GetName.Name & ".Textos", a)
    
            Label1.Visible = True
            Label1.Text = ""
    
            If (ComboBox1.SelectedIndex = 2) Then  'Excel
                Dim Ruta As String = "Informes Exportados Financial\Informes Excel\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".xls"
                Dim CrFormatTypeOptions As New ExcelFormatOptions
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.Excel
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado" & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Excel " & vbCrLf &
                              "'EXCEL' "
    
            ElseIf (ComboBox1.SelectedIndex = 3) Then  'Pdf
                Dim Ruta As String = "Informes Exportados Financial\Informes PDF\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".pdf"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes PDF " & vbCrLf &
                              "'PDF'"
    
            ElseIf (ComboBox1.SelectedIndex = 4) Then  'Word
                Dim Ruta As String = "Informes Exportados Financial\Informes Word\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".doc"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.WordForWindows
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Word " & vbCrLf &
                              " 'WORD' "
    
            ElseIf (ComboBox1.SelectedIndex = 5) Then  'Rtf
                Dim Ruta As String = "Informes Exportados Financial\Informes Rtf\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".doc"
                Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.RichText
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Rtf " & vbCrLf &
                              "'RTF. (Rich Text Format)' "
    
            ElseIf (ComboBox1.SelectedIndex = 6) Then  'Xml
                Dim Ruta As String = "Informes Exportados Financial\Informes Xml\Empresa" & VarGlobal.StrCodEmpresa & "\" & RutaExport & ".xml"
                Dim CrFormatTypeOptions As New XmlExportFormatOptions()
    
                CrDiskFileDestinationOptions.DiskFileName = Ruta
                CrExportOptions = CrReport.ExportOptions
    
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.Xml
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                CrReport.Export()
                Label1.Text = "Informe Proyección Financiera exportado." & vbCrLf &
                              "Ruta: Financial System\Informes Exportados Financial\Informes Xml " & vbCrLf &
                              " 'XML''"
    
            End If
    
            CrReport.Close()
            CrExportOptions = Nothing
            Timer1.Enabled = True
    
        End Sub

    Sustituye lo que precises por tus nombres. 

    Ahí lo trato en un combo en el que usuario escoge a donde exportar.

    Un saludo.

    Gemma

    jueves, 22 de marzo de 2018 18:38