Hola, e echo algunos reportes con crystal y enviado parametros al crystal, te paso la forma de como lo ajo espero te ayude... (soy un poco nuevo con esto de los reportes....)
Para generar el crystal report utiliso un dataset este con los campos que requiero en el reporte...(el crystal report en lugar de conectarlo a la base de datos, le agrego el dataset)
En una de tus repuestas vi que dices que lo que requieres es enviar la info consultada previamente en tu formulario desde un boton enviando el ID del trabajador.... podemos hacer un reporte que muestre esta info consultandola desde la base de datos y no enviandole como parametro, te pongo los pasos.....
Voy por pasos....
1.- Genero un dataSet con los campos que requiero mostrar en reporte.
2.- Creo un nuevo reporte en blanco, a este reporte le database expert le agregego el dataset que se creo. Realizas el formato de tu reporte y agregas los campos del dataset.
3.- Creo una pag (PageReports.aspx) donde pongo mi crystalreportview (crv) y crystalreporsource(crs). Al crv voy a su propiedad ReportSourceID y le agrego el crs.
4.- Codigo para mostrar el reporte.
4.1 codigo en tu formulario para enviar el id del trabajador y mandar llamar la pagina que contendra el reporte. etse en algun boton. btnMostrar
Código:
Dim id As String = "4000=" & lblIDregistro.Text
Dim strURL As String = "PageReports.aspx?" & id
If Not id = "" Then
Response.Redirect(strURL)
End If
4.2 Codigo en load para obtener el idtrabajador y mandar llamar la funcion que mostrara el reporte.
LOAD
Código:
dim idTrab as string = Request.Params("4000")
Call show(idTrab)
FUNCION QUE GENERA EL REPORTE
Código:
Public Sub show(idTrabajador as string)
Try
Me.lblError.Text = ""
'Se verifica que id tengan información
If Not idTrabajador = "" Then
'[Inicia proceso para mostrar reporte]
sqlConn.ConnectionString = strConn
cmd.Connection = sqlConn
'aki ponemos la consulta que me genera la info, la que tienes en tu boton para mostrar la informaicón del trabajador en tu formulario
cmd.CommandText = "select * from trabajadores where ID=" & idTrabajador
cmd.CommandType = CommandType.Text
da.SelectCommand = cmd
da.Fill(ds, "trabajadores")
strReportName = "CrystalReport.rpt" 'aki ponemos el nombre del reporte
'aki ago un mapeo para encontrar la ruta del reporte
crs.Report.FileName = Server.MapPath("Reports\" & strReportName)
crs.ReportDocument.SetDataSource(ds)
'-->Pasar el parametro, encaso de que si envies parametros aki los envias
Dim auditor As String = "*Firma, **Nombre, Puesto y Firma"
pd.Value = auditor
nParametro.Add(pd)
Parametros = crv.ParameterFieldInfo
Parametros(0).CurrentValues = nParametro
Else
lblError.Text = "No se ha especificado el id del trabajador."
End If
Catch ex As Exception
'lblError.Text = ex.Message & ex.InnerException.Message
lblError.Text = ex.Message
End Try
End Sub
en la pagina que contiene el reporte tiene que agregar algunos imports.
Código:
Imports Microsoft.VisualBasic
Imports System
Imports System.Configuration
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data
Imports System.Data.OleDb
variables que se utilizan en el codigo
Código:
Private strConn As String = System.Configuration.ConfigurationManager.ConnectionStrings("SACSConnectionString").ConnectionString
Private sqlConn As New OleDbConnection
Private cmd As New OleDbCommand
Private strReportName As String = ""
Private da As New OleDbDataAdapter
Private ds As New DataSet
Private rpt As ReportDocument
Dim nParametro As New ParameterValues
Dim pd As New ParameterDiscreteValue
Dim pf As New ParameterField
Dim Parametros As ParameterFields
Espero te ayude, en caso de que no le ayes en alguna parte del codigo me mandas un correo...
hace poco tuve tu mismo problema asi que por algun lugar de mi compu debo tener los link con tutoriales de como hacer el reporte....si tienes algun problema los busco y te los paso....
Suerte....