• Jueves 14 de Noviembre de 2024, 04:12

Autor Tema:  Exportar Reporte A Pdf  (Leído 6413 veces)

fofoam

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Exportar Reporte A Pdf
« en: Martes 10 de Enero de 2006, 20:19 »
0
Hola, tengo un detalle al exportar un reporte de crystal reports a formato pdf, ya que al momento de abrirlo me sale el siguiente error 'distintivo desconocido:
0‚05"·

tengo el sig codigo:

        Dim oStream As System.IO.MemoryStream
        oStream = Session("Report").ExportToStream   (CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
        Response.Clear()
        Response.Buffer = True
        Response.ContentType = "application/pdf"
        Response.BinaryWrite(oStream.ToArray())
        Response.End()

Espero alguien tenga una solucion?

Salu2.

Ctapia

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Exportar Reporte A Pdf
« Respuesta #1 en: Viernes 27 de Enero de 2006, 13:40 »
0
yo exporto de otra manera

        Dim strLinkArchivo As String
        Dim strExportTempFile As String
        Dim rptReporte As Object

        strExportTempFile = [ruta y nombre del archivo donde lo vas a dejar .pdf]
        strLinkArchivo = [ruta para levantar el reporte]

        rptReporte = New [Reporte a exportar]

        '***** [si es que el reporte tiene parametros agragas estas lineas sino no]


        Dim crParameterFieldDefinitions As ParameterFieldDefinitions
        Dim crParameterFieldDefinition As ParameterFieldDefinition

        Dim crParameterValues As New ParameterValues
        Dim crParameterDiscreteValue As New ParameterDiscreteValue

        crParameterDiscreteValue.Value = [Valor del Parametro]
        crParameterFieldDefinitions = rptReporte.DataDefinition.ParameterFields
        crParameterFieldDefinition = crParameterFieldDefinitions.Item("[Nombre del Parametro]")

        crParameterValues = crParameterFieldDefinition.CurrentValues
        crParameterValues.Add(crParameterDiscreteValue)
        crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)

        crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)

        '*****

        If File.Exists(strExportTempFile) Then File.Delete(strExportTempFile)

        Dim objDiskOpt As New DiskFileDestinationOptions
        Dim crExportOptions As ExportOptions
        crExportOptions = rptReporte.ExportOptions

        With crExportOptions
            .FormatOptions = New PdfRtfWordFormatOptions
            .ExportFormatType = ExportFormatType.PortableDocFormat
            .ExportDestinationType = ExportDestinationType.DiskFile
            Dim destOption As New DiskFileDestinationOptions
            destOption.DiskFileName = strExportTempFile
            .DestinationOptions = destOption
        End With
        rptReporte.Export()
        If Not strLinkArchivo Is Nothing Then
            Response.Write("<script>window.open('" & strLinkArchivo & "','popUpArchivo');</script>")
        End If

ojala te sirva

fofoam

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Exportar Reporte A Pdf
« Respuesta #2 en: Martes 31 de Enero de 2006, 20:56 »
0
hola Ctapia, he tratado de aplicar la forma que tu utilizas para exportar pero me genera un error en la linea de rptReporte.Export()

que dice que no es posible conectar;

en las var string puse asi, aunque tengo duda? si esta correcto.
strExportTempFile = "C:\Reporte.pdf"
strLinkArchivo = "C:\"

El reporte no lo tienes que visualizar en el CrystalReportViewer?

De antemano gracias, por la solucion...

Salu2 . . .

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Exportar Reporte A Pdf
« Respuesta #3 en: Martes 7 de Febrero de 2006, 17:26 »
0
Hola, ya verificaste ke la ruta donde intentas exportar el archivo pdf tenga  permisos de escritura?
Yo tuve un error similar al exportar un pdf y mostrarlo, tuve ke agregar al directorio los permisos de escritura del usuario IUSR(cuenta de invitado para Internet), ASP.NET Machine Account(ASPNET), y desde eso me trabaja perfecto, de cualkier modo y por si te sirve de algo te pongo el código ke utilizo:

Citar
'''' Esto lo uso para agregar los parámetros al reporte en caso
 '''' de ke tangas los cambias a tu conveniencia
 

        Dim paramFields As New CrystalDecisions.Shared.ParameterFields
        Dim paramFields2 As New CrystalDecisions.Shared.ParameterFields
        Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue
        Dim discreteVal2 As New CrystalDecisions.Shared.ParameterDiscreteValue
        Dim paramField As New CrystalDecisions.Shared.ParameterField
        Dim paramField2 As New CrystalDecisions.Shared.ParameterField
        Dim rangeVal As New CrystalDecisions.Shared.ParameterRangeValue
        Dim rangeVal2 As New CrystalDecisions.Shared.ParameterRangeValue
        Dim areac As String
        Dim areai As String
        Dim areaf As String
        Dim fechai As String
        Dim fechaf As String
        Dim crReportDocument As ReportDocument
        Dim crExportOptions As ExportOptions
        Dim crDiskFileDestinationOptions As DiskFileDestinationOptions


        areac = Trim(Session("area"))


        fechai = Session("fechai")
        fechaf = Session("fechaf")


            paramField = New CrystalDecisions.Shared.ParameterField
            paramField.ParameterFieldName = "rangofecha"
            rangeVal.StartValue = CDate(fechai)
            rangeVal.EndValue = CDate(fechaf)
            paramField.CurrentValues.Add(rangeVal)

            paramField2.ParameterFieldName = "rangoarea"
            rangeVal2.StartValue = areai
            rangeVal2.EndValue = areaf
            paramField2.CurrentValues.Add(rangeVal2)
            paramFields.Add(paramField)
            paramFields.Add(paramField2)
            CrystalReportViewer3.ParameterFieldInfo = paramFields
            CrystalReportViewer3.ReportSource = emple


            Dim cr_val_r As CrystalDecisions.Shared.ParameterRangeValue
            Dim cr_val_r2 As CrystalDecisions.Shared.ParameterRangeValue
            Dim cr_Parametros As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions
            Dim cr_nom_par As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
            Dim cr_val_par As CrystalDecisions.Shared.ParameterValues
            cr_Parametros = emple.DataDefinition.ParameterFields


            cr_nom_par = cr_Parametros.Item("rangofecha")
            cr_val_par = cr_nom_par.CurrentValues
            cr_val_r = New CrystalDecisions.Shared.ParameterRangeValue
            cr_val_r.StartValue = fechai.ToString
            cr_val_r.EndValue = fechaf.ToString
            cr_val_par.Add(cr_val_r)
            cr_nom_par.ApplyCurrentValues(cr_val_par)

            cr_nom_par = cr_Parametros.Item("rangoarea")
            cr_val_par = cr_nom_par.CurrentValues
            cr_val_r2 = New CrystalDecisions.Shared.ParameterRangeValue
            cr_val_r2.StartValue = areai
            cr_val_r2.EndValue = areaf
            cr_val_par.Add(cr_val_r2)
            cr_nom_par.ApplyCurrentValues(cr_val_par)

            '*********Aki creas el pdf
            Fname = "C:\inetpub\wwwroot\checadas\archivos\" & Session.SessionID.ToString & ".pdf"
            If File.Exists(Fname) Then
                System.IO.File.Delete(Fname)
                crDiskFileDestinationOptions = New DiskFileDestinationOptions
                crDiskFileDestinationOptions.DiskFileName = Fname
                crExportOptions = emple.ExportOptions
                With crExportOptions
                    .DestinationOptions = crDiskFileDestinationOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                End With

                emple.Export()
                ' Akí te abre el pdf creado en el navegador
                Response.ClearContent()
                Response.ClearHeaders()
                Response.ContentType = "application/pdf"
                Response.WriteFile(Fname)
                Response.Flush()
                Response.Close()
            Else
                crDiskFileDestinationOptions = New DiskFileDestinationOptions
                crDiskFileDestinationOptions.DiskFileName = Fname
                crExportOptions = emple.ExportOptions
                With crExportOptions
                    .DestinationOptions = crDiskFileDestinationOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                End With
                emple.Export()
                ' Akí te abre el pdf creado en el navegador
                Response.ClearContent()
                Response.ClearHeaders()
                Response.ContentType = "application/pdf"
                Response.WriteFile(Fname)
                Response.Flush()
                Response.Close()
            End If

para borrar el archivo lo hago de este modo
Citar
Private Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Unload
        System.IO.File.Delete(Fname)
    End Sub

espero te ayude, saludos  :hola:
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)