none
Como exporta un reporte de reporting services automáticamente a PDF RRS feed

  • Pregunta

  • Hola que tal grupo, alguien que me ayude por favor. 

    Estoy trabajando en asp.net y reporting services y lo que quiero es que cuando de clic en el botón de imprimir, me abra mi reporte .rdlc en formato PDF. Sin la necesidad de mandar a exportar en algún otro formato. solamente PDF.

    Muchas gracias por la ayuda.

    viernes, 7 de julio de 2017 15:49

Respuestas

  • Como  te mencionaron anteriormente nada se hace magicamente , por eso somos programadores que le des la sensacion que sea asi es por que naciste para esto pero detras  hay un trabajo grande de muchas personas incluyendote.

    Private Function crear_PDFaEnviar(ByVal nombrepdf)
            Try
    
                ruta_pdf = String.Concat(Environment.CurrentDirectory, "\", nombrepdf, ".pdf")
                Dim rptDocument As New rpt_ordendecompra
                Dim dt As DataTable = cls_obj.getOrdenCompra(dgvlistadoordenes.Item(0, dgvlistadoordenes.CurrentRow.Index).Value.ToString)
                rptDocument.SetDataSource(dt)
                crv.ReportSource = rptDocument
    
                ExportToPDF(rptDocument, ruta_pdf)
    
                Return True
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Aviso".Empty, MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return False
            End Try
        End Function
    
    Public Shared Function ExportToPDF(ByVal rpt As ReportDocument, ByVal NombreArchivo As String) As String
            Dim rutaArchivo As String = Nothing
            Dim diskOpts As New DiskFileDestinationOptions()
    
            Try
                rpt.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
                rpt.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
                rutaArchivo = NombreArchivo
    
                If File.Exists(rutaArchivo) Then
                    File.Delete(rutaArchivo)
                End If
                diskOpts.DiskFileName = rutaArchivo
                rpt.ExportOptions.DestinationOptions = diskOpts
                rpt.Export()
            Catch ex As Exception
                Throw ex
            End Try
    
            Return rutaArchivo
        End Function
    

    viernes, 7 de julio de 2017 19:32

Todas las respuestas

  • Reporting Services por sí solo no lo hace. Tendrías que aportar esa funcionalidad desde la aplicación cliente. Si desarrollas en asp.net, eso se puede hacer con un control ReportViewer, al que puedes decirle que no presente los botones estándar, y en su lugar dibujas tú el botón de imprimir fuera del reportviewer. Después, en el clic de ese botón, haces una llamada al método "exportar" del ReportViewer (que no sé si existe en la versión Web del reportviewer o solo en la de Winforms), o bien la haces directamente al WebService de Reporting Services para pedirle el PDF. Te devolverá los bytes en bruto, que puedes salvar como quieras desde tu aplicación cliente.
    viernes, 7 de julio de 2017 17:40
    Moderador
  • Como  te mencionaron anteriormente nada se hace magicamente , por eso somos programadores que le des la sensacion que sea asi es por que naciste para esto pero detras  hay un trabajo grande de muchas personas incluyendote.

    Private Function crear_PDFaEnviar(ByVal nombrepdf)
            Try
    
                ruta_pdf = String.Concat(Environment.CurrentDirectory, "\", nombrepdf, ".pdf")
                Dim rptDocument As New rpt_ordendecompra
                Dim dt As DataTable = cls_obj.getOrdenCompra(dgvlistadoordenes.Item(0, dgvlistadoordenes.CurrentRow.Index).Value.ToString)
                rptDocument.SetDataSource(dt)
                crv.ReportSource = rptDocument
    
                ExportToPDF(rptDocument, ruta_pdf)
    
                Return True
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Aviso".Empty, MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return False
            End Try
        End Function
    
    Public Shared Function ExportToPDF(ByVal rpt As ReportDocument, ByVal NombreArchivo As String) As String
            Dim rutaArchivo As String = Nothing
            Dim diskOpts As New DiskFileDestinationOptions()
    
            Try
                rpt.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
                rpt.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
                rutaArchivo = NombreArchivo
    
                If File.Exists(rutaArchivo) Then
                    File.Delete(rutaArchivo)
                End If
                diskOpts.DiskFileName = rutaArchivo
                rpt.ExportOptions.DestinationOptions = diskOpts
                rpt.Export()
            Catch ex As Exception
                Throw ex
            End Try
    
            Return rutaArchivo
        End Function
    

    viernes, 7 de julio de 2017 19:32