Hola.
Yo hice algo parecido: un Informe de empleados agrupados por localidad. ( en Crystal)
Para hacer Creé un dataset tipado: boton derecho sobre el nobre del proyecto (en el explorador de proyectos)-->Agregar-->Nuevo elemento-->Conjunto de datos.
Allí le pones el nombre que quieras darle. Al aceptar te aparecerá la pantalla de diseño del dataset. Puedes agregar varios DataTables y relacionarlos. Los datatables los puedes obtener de consultas, haciendo click sobre el datatable, aparece un menú contextual con la opción configuracion, alli podrás diseñar una consulta para ese datatable. Esto te permite armar los datos y estructurarlos como quieras. En mi caso armé un dataset con un solo datatable "dsEmpl("Empleados")
Una vez que tienes el dataset, puedes armar el reporte basado en el dataset.:
boton derecho sobre el nobre del proyecto-->Agregar-->Nuevo elemento-->Crystal Reports. Le das un nombre, Aceptas y aparece el asistente para el reporte, Cuando llegas Datos del proyecto, expandes y eliges ADO.NET DataSets. Alli debe estar el dataset que has creado anteriormente, lo expandes y apareceran todos los datatables que tiene el dataset, Agregas los datatables que te sirvan para la impresión. -->Siguiente y expandes el/los datatables y agregas los campos, -->Siguiente y te aparece la opcion de agregar el/los campos por los que quieras agrupar (en tu caso debería ser el Nro de factura, en el mio fue Localidad), -->Siguente, puedes agregar totales, etc. Siguen las opciones, pero ya puedes finalizar y aparecera la pantalla de diseño del Reporte ( es una patalla reducida de crystal reports que incluye vb2005). Aquí terminas de diseñar el reporte y lo guardas
Para mostrar el reporte: agregar un nuevo formulario y la caja de herramientas-->Crystal Reports eliges un CrystalReportsViewer
Lugo tienes que armar un dataset basado en el que creaste al principio y llenarlo con los datos que quieres imprimir. ej:
Dim sql As String = "SELECT apellido, nombre, Localidad.."
Dim daImp As New OleDbDataAdapter(sql, Cnn)
Dim dsImp As New dsLoc
"dsLoc" es el dataset que creé al principio, en el que me basé para hacer el report.
daImp.Fill(dsImp, "Empleados")
Dim rpImp As New rptLoc 'Este es el report que yo diseñe
rpImp.SetDataSource(dsImp)
Try
FrmRepLoc.CrystalReportViewer1.ReportSource = rpImp
FrmRepLoc.Show()
Catch ex As Exception
MessageBox.Show(ex.Message, "Imprimir", Me
End Try
Debes agregar esta referencias
Imports System.Data
Imports System.Data.OleDb
Imports CrystalDecisions
Public Class Form1..
Saludos
__________________
Es más fácil desintegrar un átomo que un preconcepto. Einstein
|