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