Foros del Web » Programación para mayores de 30 ;) » .NET »

Crystal report y procedimientos alamcenado

Estas en el tema de Crystal report y procedimientos alamcenado en el foro de .NET en Foros del Web. hola a todos: miren, tengo el sgte problema, resulta que tengo que hacer reportes en base a cierto informacion que le entrego al SP (procedimiento ...
  #1 (permalink)  
Antiguo 12/11/2009, 17:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 42
Antigüedad: 15 años, 5 meses
Puntos: 0
Crystal report y procedimientos alamcenado

hola a todos:
miren, tengo el sgte problema, resulta que tengo que hacer reportes en base a cierto informacion que le entrego al SP (procedimiento almacenado), osea el SP recibe parametros y el me devuelve una consulta SELECT, osea un grupo de datos.

MI problema es que no se como hacer para llamar al SP, pasarle los parametros, y ademas ese grupo de parametros que me devuelva el SP, mostrarlos en el informe.

teni pensado hacerlo con un sqlcommand pero no se como recuperar el grupo de valores que me entrega el SP para luego pasarlo al informe.

aca esta el codigo del sqpcommand que les decia recien

Código:
Dim testCMD As New SqlCommand("spMostrarEnfermedad", con)

testCMD.CommandType = CommandType.StoredProcedure

Dim RetValue As SqlParameter = testCMD.Parameters.Add("RetValue", SqlDbType.Int)
            RetValue.Direction = ParameterDirection.ReturnValue

Dim nombre As SqlParameter = testCMD.Parameters.Add("nombre", SqlDbType.VarChar, 50)
            nombre.Direction = ParameterDirection.Input

nombre.Value = nom_enferm

   con.Open()

   Dim myReader As SqlDataReader = testCMD.ExecuteReader()

myReader.Close()
el problema es que no se como puedo pasarle estos valores al reporte (Crystal report)


ojala me puedan ayudar

GRACIAS e antemano
  #2 (permalink)  
Antiguo 12/11/2009, 17:53
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crystal report y procedimientos alamcenado

Hola, necesariamente necesitas usar el SqlDataReader, salvo que uses generics creo que te convendría usar un DataTable, claro que todo depende del escenario en el que te encuentres.

Podrías hacer algo así:
Código vb.net:
Ver original
  1. Private Function Consulta() As DataTable
  2. Using testCMD As New SqlCommand("spMostrarEnfermedad", con)
  3. testCMD.CommandType = CommandType.StoredProcedure
  4. Dim RetValue As SqlParameter = testCMD.Parameters.Add("RetValue", SqlDbType.Int)
  5.             RetValue.Direction = ParameterDirection.ReturnValue
  6. Dim nombre As SqlParameter = testCMD.Parameters.Add("nombre", SqlDbType.VarChar, 50)
  7.             nombre.Direction = ParameterDirection.Input
  8. nombre.Value = nom_enferm
  9. Using testDa As New SqlDataAdapter(cmd)
  10.        Dim dt As New DataTable()
  11.        da.Fill(dt)
  12.        return dt
  13. End Using
  14. End Using
  15.  
  16. 'Para llamar al reporte
  17. private sub cargarReporte()
  18. Dim rpt As New ReportDocument()
  19. rpt.Load("C:\mireporte.rpt") 'Reemplazalo por la ruta del reporte
  20. rpt.SetParameterValue("RetValue", 0) //parametro 1
  21. rpt.SetParameterValue("nombre", nom_enferm) //parametro 2
  22. rpt.SetDataSource(Me.Consulta)
  23. CrystalReportViewer1.ReportSource = rpt
  24. End sub

Como te das cuenta tienes que usar el método setParameterValue para los parámetros, el primer valor es el nombre del parámetro y el segundo el dato que tendrá este parámetro.
Luego con SetDataSource le indicas el origen de datos.
Al final le agregas el reporte al visor mediante la propipedad ReportSource.

Cualquier duda me avisas
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 12/11/2009, 18:21
 
Fecha de Ingreso: noviembre-2008
Mensajes: 42
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Crystal report y procedimientos alamcenado

muchas gracias por la respuesta (ademas de la velocidad XD) te agradesco el tiempo, lo pruebo y te aviso como me fue

Edito:

Funciona perfecto!!, de verdad estuve buscando mucho tiempo asi que muchas gracais de verdad

saludos::

Última edición por laif; 12/11/2009 a las 19:21
  #4 (permalink)  
Antiguo 23/02/2010, 07:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Crystal report y procedimientos alamcenado

Hola, con la generacion de reportes en crystal reports usando procedimientos almacenados yo lo realizo de la siguiente manera:
1) agrego un nuevo item Data Set (.xsd), ponle el nombre Reportes.xsd.
2) dentro del item Reportes.xsd agregas un datatable con el nombre Productos, (te doy los nombres como ejemplo), dentro de esta tabla agregas columnas con el mismo nombre y tipo de dato que te devuelve el select que esta dentro del procedimiento almacenado.
3) creas tu reporte de crystal reports, productos.rpt, te dara 3 opciones, debes escoger "reporte en blanco".
4) cuando te muestre el reporte productos.rpt, seleccionas la opcion database files click derecho, seleccionas database expert, te apareceran varias opciones deberas seleccionar Projects Data luego ADO.NET DataSets, seleccionas la tabla que creaste dentro de Reportes.xsd y listo.
5) para llamar al procedimiento almacenado enviarle parametros y mandarselos al reporte en crystal reports puedes usar el siguiente codigo:


vString$ = "SP_RptImprimeFactura '" & CompanyCode$ & "','" & _
" & StoreUser$ & "','" & _
" & vFacSer & "'," & vFacNum & ""

Puedes llenar un string para enviar los parametros de esta forma, lo ejecutas y lo llenas en una variable dt que sea de tipo dataset

Dim vista As New frmRepView
Dim reporte As New RptImprimeFactura
reporte.SetDataSource(dt)
vista.Show()
vista.rptView.ReportSource = reporte


Espero que te ayude la info proporcionada. Saludos
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 08:09.