Foros del Web » Programando para Internet » ASPX (.net) »

Exportacion de Crystal A PDF

Estas en el tema de Exportacion de Crystal A PDF en el foro de ASPX (.net) en Foros del Web. Hola creo ke me van a odiar porke nomas pregunto y pregunto pero buneo un saludo a todos y me pregunta es la siguiente ke ...
  #1 (permalink)  
Antiguo 18/10/2007, 16:56
Avatar de krakxp  
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 10 meses
Puntos: 0
Exportacion de Crystal A PDF

Hola creo ke me van a odiar porke nomas pregunto y pregunto pero buneo un saludo a todos y me pregunta es la siguiente ke esta mal en mi codigo de exportacion:

Código:
    Private RepDiaCrr As New CryRptDiaCrr
    Private crreportdocument As New ReportDocument
   Private Ruta As String = Server.MapPath(ConfigurationSettings.AppSettings("Ruta"))

        Dim rptExportPath, rptFname, rptdirreport_export As String
        Dim crExportOptions As ExportOptions
        Dim crDiskFileDestinationOptions As DiskFileDestinationOptions

        'Asigna el nombre del reporte que sera exportado 
        rptFname = sNomxDef + ".pdf"

        'INDICAMOS LA RUTA DE EXPORTACION
        'rptExportPath = Server.MapPath(Ruta)
        rptExportPath = Request.PhysicalApplicationPath + Ruta

        'CREAR UNA NUEVA EXPORTACION DE ARCHIVO A DISCO
        crDiskFileDestinationOptions = New DiskFileDestinationOptions

        'SIMPLIFICACION DE CODIGO, ESTE SE HACE PARA EVITAR ESCRIVIR MUCHAS VECES crreportdocument.ExportOptions.....
        crExportOptions = crreportdocument.ExportOptions

        'SELECCIONAMOS EL FORMATO AL QUE QUEREMOS EXPORTAR
        crDiskFileDestinationOptions.DiskFileName = rptExportPath + rptFname
        With crExportOptions
            .DestinationOptions = crDiskFileDestinationOptions
            .ExportDestinationType = ExportDestinationType.DiskFile
            .ExportFormatType = ExportFormatType.PortableDocFormat
        End With

        rptdirreport_export = "Reportes Exportados\"

        'INDICA EL NOMBRE DEL ARCHIVO A EXPORTAR
        Try
            'EXPORTA EL REPORTE Y LO ABRE, REDIRECCIONANDOLO
            crExportOptions.DestinationOptions = crDiskFileDestinationOptions
            crreportdocument.Export()
            Response.Redirect(rptdirreport_export & System.IO.Path.GetFileName(rptFname)) ' abre el reporte exportado
        Catch err As Exception
            Response.Write("<BR>")
            Response.Write(err.Message.ToString) ' escribe el mensaje de error si llega a ocurrir alguno
        End Try
Y el error ke me manda es ke tengo algo mal en la linea

crExportOptions = crreportdocument.ExportOptions

pero no se porke me manda ese error, me podrian ayudar

  #2 (permalink)  
Antiguo 19/10/2007, 01:51
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Exportacion de Crystal A PDF

Por lo poco que sé de Crystal Reports me parece que el error está en lo siguiente.
Tienes una variable, "crExportOptions As ExportOptions" a la que le das el valor de la propiedad ExportOptions de tu reporte. Luego estás modificando la variable de opciones de exportación, pero no las opciones de exportación del reporte. En mi opinión olvídate de esa variable y modifica directamente las opciones de exportación del reporte. Así:

Código:
'SELECCIONAMOS EL FORMATO AL QUE QUEREMOS EXPORTAR
crDiskFileDestinationOptions.DiskFileName = rptExportPath + rptFname
With crreportdocument.ExportOptions
    .DestinationOptions = crDiskFileDestinationOptions
    .ExportDestinationType = ExportDestinationType.DiskFile
    .ExportFormatType = ExportFormatType.PortableDocFormat
End With
A ver si así ya funciona.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 19/10/2007, 14:30
Avatar de krakxp  
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: Exportacion de Crystal A PDF

Oye que crees no me funciono, ahora me dice:

Detalles de la excepción: CrystalDecisions.CrystalReports. Engine.ParameterFieldCurrentValueException: Falta el valor actual del campo de parámetro.

y este mi codigo por si le quieres ver en que parte del todo estoy mal :

1.- Esto es lo ke importo
[CODE]
Imports CrystalDecisions
Imports CrystalDecisions.Web
Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.CrystalReports.Engine
.
.
.
/CODE]

2.-Estas son mis variables

Código:
    'Instancia del reporte creado, puede ser también un objeto ReportDocument y cargar el reporte de RptDiaCrr a través del método Load
    Private RepDiaCrr As New CryRptDiaCrr
    'Ruta de los reportes, obtenida a través de la ruta relativa guardada en el Web.config
    Private DirRpt As String = Server.MapPath(ConfigurationSettings.AppSettings("Rpt"))
    Private DirRptExp As String = Server.MapPath(ConfigurationSettings.AppSettings("RptExp"))
    Private sFecAct As String
    Private dsrptDiaCrr As DataSet
    Private crreportdocument As New ReportDocument
.
.
.
3.-Esto es lo ke tengo en el load

Código:
        Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables   'declaracion de una variable de tipo tablas
        Dim crTable As CrystalDecisions.CrystalReports.Engine.Table     'declaracion de una variable de tipo tabla
        Dim crConnInfo As New CrystalDecisions.Shared.ConnectionInfo    'declaracion de una variable de tipo connectioninfo para el reportdocument
        Dim crLogOnInfo As CrystalDecisions.Shared.TableLogOnInfo       'declaracion de una variable de tipo connectioninfo para la tabla

        crTables = crreportdocument.Database.Tables

        For Each crTable In crTables
            crConnInfo.DatabaseName = "Bd" 'El nombre de la base de datos
            crConnInfo.ServerName = "xxx.xxx.xxx.xxx"  'El nombre de la base del servidor
            crConnInfo.UserID = "usuario"         'El nombre de la base de usuario
            crConnInfo.Password = "contraseña"       'El nombre de la base de contraseña
            crLogOnInfo = crTable.LogOnInfo         'El nombre de la base de las tablas
            crLogOnInfo.ConnectionInfo = crConnInfo 'Asigna al connectioninfo, que es la misma informacion de conexion del reporte
            crTable.ApplyLogOnInfo(crLogOnInfo)     'Asigna al connectioninfo el nombre de la base de la tabla
        Next


        dsrptDiaCrr = buss.rptDiaCrr(sFecAct)
        If dsrptDiaCrr Is Nothing Then
            Response.Redirect("PagError.aspx?eCode=rptDiaCrr")
        Else
            'carga el reporte que que indicamos en la ruta anterior
            crreportdocument.Load(DirRpt & "CryRptDiaCrr.rpt")

            'Conectar con la Crystal con la SQl SERVER
            CrystalSQLSERVER()

            'Asigna el origen de datos al Reporte
            RepDiaCrr.SetDataSource(dsrptDiaCrr.Tables("RptDiaCrr"))

            'Asigna el reporte al CrystalReportViewer
            crvCorr.ReportSource = RepDiaCrr
            crvCorr.DataBind()
        End If
    End Sub
4.-Y esto finalmente es lo ke tengo para la exportacion, con las correxiones algunas pequeñas modificaciones
Código:
       Dim sNomRpt As String

        'Asignamos el nombre del reporte que sera exportado 
        sNomRpt = "Reporte Diario de Correspondencia " + sFecAct + ".pdf"

        'Creamos una nueva exportacion
        Dim crDiskFileDestinationOptions As New DiskFileDestinationOptions
        Dim crExportOptions As New ExportOptions

        'Carga el reporte que que indicamos en la ruta anterior
        crreportdocument.Load(DirRpt & "CryRptDiaCrr.rpt")

        'Conectar con la Crystal con la SQl SERVER
        CrystalSQLSERVER()

        'Asignamos los valores de tipo de formato, la ruta y el destino de la exportacion 
        With crreportdocument.ExportOptions
            .DestinationOptions = crDiskFileDestinationOptions
            .ExportDestinationType = ExportDestinationType.DiskFile
            .ExportFormatType = ExportFormatType.PortableDocFormat
        End With

        Try
            'Asignamos la ruta donde se exportara el reporte
            crDiskFileDestinationOptions.DiskFileName = DirRptExp + sNomRpt
            crExportOptions.DestinationOptions = crDiskFileDestinationOptions

            'Exportamos el reporte
            crreportdocument.Export()

            'Abrimos el reporte exportado
            Response.Redirect(DirRptExp & System.IO.Path.GetFileName(sNomRpt))

        Catch err As Exception
            Response.Write(err.Message.ToString)
        End Try
GRacias por tu ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:20.