Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/09/2007, 11:40
sherif
 
Fecha de Ingreso: abril-2006
Ubicación: Burgos
Mensajes: 101
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: varios registros en un informe crystal reports

Cita:
Iniciado por NEST Ver Mensaje
te voy a explicar como hago yo los reportes talvez te sirve de ayuda
1.- me voy a agregar un nuevo elemento en mi proyecto y agrego un Conjunto de datos o un dataset.

2.- Dentro del Dataset creo un DataTable que me sirve para volcar toda la informacion que jalo con el Query es importante que dentro del DataTable crees todos los campos que vas a ocupar en tu reporte para agregar una columna debes de darle click derecho sobre el Datatable luego das click sobre agregar y seleccionas columna y asi hasta crear todas las que necesitas.

3.- Agregas un Crytal Reports a tu proyecto igual que el Dataset.


4.- Luego en el Crystal Reports seleccionas el menu explorador de campos y dentro de ese menu da click derecho sobre el submenu campos de base de datos.
Seleccionas el item que dice asistente de base de datos luego seleccionas la carpeta Project data luego ADO.NET Dataset y luego elegis el DataTable que creaste.

5.- Una vez hecho esto te apareceran todos los campos que creaste en el Datatable ahora solo tenes que darle forma al reporte.

6.- Luego que ya tenes tu reporte hecho te vas al formulario de donde lo vas a llamar y agregas un CrystalReportViewer.

7.- En tu formulario agregas el siguiente codigo.

Public MyRdSS OleDbDataReader
Public MyAdSS OleDbDataAdapter
Public dt As DataTable
Public dr As DataRow

Private Sub CrystalR_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalR.Load

Me.MyAdSS = New OleDbDataAdapter(ConsultaSl, cnc)
Me.MyAdSS.SelectCommand.CommandTimeout = 150
Me.MyRdSS = MyAdSS.SelectCommand.ExecuteReader()

dt = New DatasetCreado.DataTableCreado
dt.Clear()
With MyRdSS
While .Read()
dr = dt.NewRow()
dr(0) = .GetString(0) 'Donde dr() es la columna de el DataTable
dr(1) = .GetDecimal(1) 'loque esta despues del igual el Get.... va a depender de el tipo de
dr(2) = .GetString(2) 'valor que estes leyendo de la base de datos y el numero indica la posicion en la consulta.
.
.
dr(n) = .GetString(n)
dt.Rows.Add(dr)
End While
End With
Nombredelreporte.SetDataSource(dt)
CrystalReportViewer.ReportSource = nombredelreporte
End Sub


Espero que te sirva cualquier cosa no dudes en preguntar
Gracias por responder.
Para empezar, la instrucción del CommandTimeout no se que hace. Y luego lo que está dentro del With, pues la verdad, ni idea. Se que coge los valores de los registros, pero ¿y la sql?
Si no es mucho pedir, ¿me podrías poner un ejemplo de la sql, a ser posible con mi ejemplo? y otra cosa, yo lo que quiero mostrar por una parte es un registro de una tabla, y luego todos sus movimientos (varios registros) de otra tabla en el mismo informe.
Gracias de nuevo.
__________________
Gigabyte GA-MA78GM-S2H | AMD X2 5400 | 2 x 1 GB DDR2 800 | 7600 Gt 256 Mb | AC97 Audio | Circuit Planet

http://todoaestribor.site88.net