Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Data report - varios registros

Estas en el tema de Data report - varios registros en el foro de Visual Basic clásico en Foros del Web. Hola gente del foro, les comento que estoy teniendo problemas al generar un reporte con el "datareport", quiero generar varios registros, pero solo me toma ...
  #1 (permalink)  
Antiguo 06/11/2009, 10:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 47
Antigüedad: 16 años, 1 mes
Puntos: 1
Pregunta Data report - varios registros

Hola gente del foro, les comento que estoy teniendo problemas al generar un reporte con el "datareport", quiero generar varios registros, pero solo me toma el primero, en realidad estoy leyendo solo el primero, alguine podria ayudarme con el bucle que genera mas de un registro o con la funcion que lo hace.

Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 06/11/2009, 10:55
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Data report - varios registros

Hola!!
La forma en que utilizo el datareport, es creando un recordset y pasando sus campos a los campos en la seccion de detalles del reporte (RptTextBox), de esa forma me salen todos los registros.

strSelect = "SELECT [CAMPO1],[CAMPO2] FROM [TABLA]"

rsData.Source = strSelect
rsData.Open , Conexion, adOpenForwardOnly, adLockReadOnly

If Not rsData.EOF Then

With drREporte
Set .DataSource = Nothing
.DataMember = ""
Set .DataSource = rsData.DataSource

With .Sections("Section1").Controls
For I = 1 To .Count
If TypeOf .Item(I) Is RptTextBox Then
.Item(I).DataMember = ""
.Item(I).DataField = rsData.Fields(I - 1).Name
End If
Next I
End With

.Caption = "Titulo del Reporte"
.Show (vbModal)
End With

End If 'rsData.EOF
  #3 (permalink)  
Antiguo 06/11/2009, 12:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 47
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Data report - varios registros

Gracias lokoman, pero no logro que funcione. Estoy trabajando con una base en access.

Saludos.
  #4 (permalink)  
Antiguo 06/11/2009, 14:37
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Data report - varios registros

En el DataReport solo tienes que agregar rptTextBox en la sección de detalle. Con el código que te digo funciona bien en cualquier BD, puedes decir que error que te dá o poner el código para ver?
  #5 (permalink)  
Antiguo 07/11/2009, 05:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 47
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Data report - varios registros

Te paso los codigos que tengo.

Código:
'Set rs = con.OpenRecordset("select *from cliente")
rsdata = rs  'ACA MARCA ERROR (uso no valido de la propiedad)
rsdata.OpenRecordset , conextion, adOpenForwardOnly, adlockreadonlny
If Not rsdata.EOF Then
 With DataReport1
 Set .DataSource = nothind  'ACA NO ENCUANTRO LA PROPIEDAD (.DataSource)
 .DataMember = ""
 Set .DataSource = rsdata.DataSource  

  With .Sections("section1").Controls  'section1 ES UN CAMPO DEL DATA REPORT?? (objeto no encontrado)
  For X = 1 To Count
  If TypeOf .Item(X) Is RptTextBox Then  'RptTextBox  (la variable no esta establecida)
   .Item(X).DataMember = ""
  .Item(X).DataField = rsdata.Fields(X - 1).Name
  End If
  Next X
  DataReport1.Show vbModal 'muestras tu datareport..
 End With
 End With
End If 'rsdata.eof
Los errores que aparecen estan comentados. Espero que te sirva para que me ayudes.
Gracias, saludos.
  #6 (permalink)  
Antiguo 07/11/2009, 21:20
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años
Puntos: 0
Respuesta: Data report - varios registros

Set rs = New ADODB.Recordset

te falta declarar que va a ser rs
  #7 (permalink)  
Antiguo 10/11/2009, 14:37
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Data report - varios registros

Hola!!
Tienes unos cuantos puntos por arreglar....
•tu conexion se llama "CON"
•el reporte se llama DataReport1, si tienes otro nombre no te va a salir la propiedad..
•debes agragar textboxes (RptTextBox ) en la seccion1 del data report, si no lo haces te dará error..
•la seccion1 es la seccion de detalle en el reporte, ahí debes poner tantos RptTextBox como campos en tu query, ejemplo si tu query invoca 2 campos, entonces debes poner 2 RptTextBox, si pones de mas o de menos, te dará error...
•debes corregir la linea"
Set .DataSource = nothind ' la "D" no va...
por
Set .DataSource = nothinG
•declarar el recordset:
dim rsData as ADODB.recordset
set rsData =new ADODB.recordset
-------------
'Set rs = con.OpenRecordset("select *from cliente")
rsdata = rs 'ACA MARCA ERROR (uso no valido de la propiedad)
rsdata.OpenRecordset , conextion, adOpenForwardOnly, adlockreadonlny
If Not rsdata.EOF Then
With DataReport1
Set .DataSource = nothind 'ACA NO ENCUANTRO LA PROPIEDAD (.DataSource)
.DataMember = ""
Set .DataSource = rsdata.DataSource

With .Sections("section1").Controls 'section1 ES UN CAMPO DEL DATA REPORT?? (objeto no encontrado)
For X = 1 To Count
If TypeOf .Item(X) Is RptTextBox Then 'RptTextBox (la variable no esta establecida)
.Item(X).DataMember = ""
.Item(X).DataField = rsdata.Fields(X - 1).Name
End If
Next X
DataReport1.Show vbModal 'muestras tu datareport..
End With
End With
End If 'rsdata.eof
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 15:41.