Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2007, 14:30
Avatar de krakxp
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