Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/05/2009, 02:35
javi_cassi
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Ayuda para crear reporte con Crystal Report

Hola LOD_fredy.
Te comento un poco:

- yo no sé como crear un report desde código, quiero decir, no sé como crearlo TODO desde codigo. ( y a decir verdad me gustaría saber si se puede hacer, y cómo se puede hacer)
- Ahora bien, lo que yo hago es crearlo todo por código y luego usar el saistente para decirle de donde traigo los datos. Luego yo coloco los campo sen su sitio, les doy el formmato que deseo, los ciriterios de orden, etc etc etc.

Cómo hago esto.
Pues no ibas mal encaminado. La única diferencia que yo hago es la siguiente.

Me creo un dataset en mi solucion, y a ese dataset le añado un DataTable (tb puede añadirle un tableadapter par traerte toda una tabla o como quieras). Dicho datatable/tablaadapter puede ser bien una tabla entera, o simplemente filas que voy nombrando como me convenga.

(Ahora es cuando viene el codigo) hecho lo anterior, por codigo hago la conexion, y hago la query de los campos (tablas...) que deseo obtener. Dicha query me devuelve unos valores que yo meto en el datatabla/tablaAdapter del dataset qeu habia creado. (es exactamente igual que como haces tu, pero usando el dataTable del dataset y no uno que me haya creado)

A continuacion le ddigo que el origende datos del report es el dataTable en cuestion y listo (esto ya lo hago en el asistente del report)


Te pongo el codigo para que lo veas:


Cita:
Dim tabla As New DataTable
Dim local_data_adapter As New OleDbDataAdapter
Dim local_data_adapter2 As New OleDbDataAdapter
'uso dos data_adapters, porque uso dos tablas diferentes en el report, y he de rellenar sus datos

Me.Cursor = Cursors.WaitCursor
cadena_crystal = "Select * from usuario "
Try
'Definimos lo qeu hacer con la selects, y en donde
local_data_adapter = New OleDbDataAdapter(cadena_crystal, Cadena_Conexion)
local_data_adapter2 = New OleDbDataAdapter("select * from CMDEMANDANTE", Cadena_Conexion)

'Creamos un nuevo DATASET, ha de ser exactamente igual que el que tenemos con las tablas
DS = New DataSet2
'el dataset2 lo tengo en mi solucion, y contiene 2 tablas que tienen los campos qeu relleno con las selects anteriores

DS.Clear()
'Rellenamos las tablas del dataset con los data_adapter que definimos anteriormente
local_data_adapter.Fill(DS, "CMDEMANDANTE_DETALLE") 'entre comillass el nombre de las tablas del dataset, para qeu sepa donde ha de introducir los datos
local_data_adapter2.Fill(DS, "CMDEMANDANTE_CONTADORES")

' creamos un nuevo informe del tipo que ya tenemos. Para esto hemos tenido que crear primero
' el informe rep_cmdemandante
Dim oInforme As New rep_inf_aprovisionamientos
'rep_inf_aprovisionamientos es el report que he creado con el asistente y al qeu le he dicho que el origen de datos era el datset2

oInforme.SetDataSource(DS)
' Le pasamos los parametros
oInforme.SetParameterValue("anno", frm_cuadro.cmb_anno.SelectedValue)
'esto es por si quiers pasarle parameros. Estos se los has de crear en el report
oInforme.SetParameterValue("mayor_que", frm_cuadro.txt_mayor.Text)

'Visor es el nombre del crystal Viewer
visor.Visible = True
'El informe que vemos es el infomre OINFORME
visor.ReportSource = oInforme


espero que t evalga.