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

Abrir reporte desde codigo

Estas en el tema de Abrir reporte desde codigo en el foro de .NET en Foros del Web. Hola...tengo la siguiente consulta... Intento abrir un reporte desde codigo....usando crystal... Dim rpt As New ReportDocument rpt.Load(AppPath() & "\Reportes\rpt05.rpt") rpt.SetDataSource(dsC) iReporte.crVisor.ReportSource = rpt El reporte ...
  #1 (permalink)  
Antiguo 25/02/2006, 06:15
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Abrir reporte desde codigo

Hola...tengo la siguiente consulta...

Intento abrir un reporte desde codigo....usando crystal...

Dim rpt As New ReportDocument
rpt.Load(AppPath() & "\Reportes\rpt05.rpt")
rpt.SetDataSource(dsC)
iReporte.crVisor.ReportSource = rpt

El reporte lo abre ok...pero no ejecuta el SQL que le seteo si no que me levanta todos los registros de la tabla...en vez de ejecutar el SQL

Alguien tiene alguna idea ?
  #2 (permalink)  
Antiguo 27/02/2006, 09:48
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
yo primero lleno el dataset y luego abro el reporte, que no vaya a ser eso.


saludos!
  #3 (permalink)  
Antiguo 28/02/2006, 07:05
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
El dataset que le paso esta ok...

El reporte muestra una consulta...pero no la que le defino en el dataset...

Otra cosa que pueda ser
  #4 (permalink)  
Antiguo 01/03/2006, 10:03
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Haber si es asi:

Primero en el Crystal report diseño el reporte y coloco los campos de las tablas que me interesan que se vean. Desde el crystal selecciono la base y elijo las tablas a importar en el reporte

Luego desde vb.net le seteo la información de conexion a la base y le paso el dataset con lo que quiero que muestre.

Es asi...

El problema es que el reporte que muestra es un select de todos los registros de la tabla que tiene definida en el reporte y no del resultado de dataset que le paso...siempre me levanta todos los registros de la tabla.
  #5 (permalink)  
Antiguo 01/03/2006, 10:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 1
Seguro que al crear el cristal report has dicho que los datos estan en un DataSet y no has cogido los datos directamente de la base de datos?

Es decir, cuando estas en diseño del cristal, en datos de la base de datos, tienes que seleccionar 'Datos del Proyecto -> ADO.NET DataSets -> ...' y no una conexion directa con la base de datos.
  #6 (permalink)  
Antiguo 01/03/2006, 12:44
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
No yo lo tomo directamente desde la base...y despues le paso el dataset...

Asi no funciona...hay que crear si o si el dataset?

Gracias
  #7 (permalink)  
Antiguo 06/03/2006, 06:32
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Efectivamente ese era el problema...no le decia que tome los datos desde el Dataset...si no directamente desde la base de datos...

Ahora me surgio el siguiente tema:

Para que el reporte muestre campos de distintas tablas...en el dataSet al momento de crear las relaciones entre las entidades hay que hacer alñgo epecial...

Porque al reporte le paso una consulta con un Inner entre dos tablas y cuando pongo un campo de la segunda tabla de la consulta me da error en el reporte

Alguna idea
  #8 (permalink)  
Antiguo 08/03/2006, 04:12
 
Fecha de Ingreso: octubre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 1
Yo normalmente cuando tengo que hacer lo que indicas, suelo crear una vista en la base de datos haciendo la seleccion entre todas las tablas que quiero y a continuacion meto esa vista como tabla en el DataSet. Luego hacemos un fill de la vista en el dataset y fuera.
  #9 (permalink)  
Antiguo 08/03/2006, 06:47
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Si trabajo con Aceess como le indicaria al dataset las relaciones...

Porque le creo las relaciones en el editor del dataset las pone pero no me las ejecuta...

Hay alguna forma de verificar?
  #10 (permalink)  
Antiguo 10/03/2006, 06:47
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Alguna idea
  #11 (permalink)  
Antiguo 10/03/2006, 13:06
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
por que no creas un dataset con todos los datos que quieres mostrar en el reporte, luego haz la consulta y llenas el datset ?
  #12 (permalink)  
Antiguo 13/03/2006, 07:06
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Ya tengo el reporte con el dataset completo, lo que ocurre que el dataset contiene campos de dos tablas distintas...y ahi es cuando ocurre el problema a lla hora de mostrar el reporte...

No se si hay que definir algo en el dataset...
  #13 (permalink)  
Antiguo 13/03/2006, 07:58
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Pero esos campos tienen el mismo nombre?

Puedes poner los campos que contiene tu dataset y la consulta que haces para llenarlo? Así se ve mejor y vemos lo que falla.

saludos!
  #14 (permalink)  
Antiguo 13/03/2006, 14:09
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
O sea:

El dataSet lo diseño (Con el diseñador de vb.net) y creo dos entidades Facturas y Detalles, tambien les creo la relacion de 1 a N...

Cuando voy a crear el reporte en Crystal en origenes de datos le digo que levante ese dataset....y selecciono campos de ambas tablas a mostrar...

Luego de vb.net cuando invoco al reporte le paso una consulta con un INNER entre ambas tablas Facturas y Detalles...

O sea si en el reporte muestro solo campos de una de las dos tablas anda...pero si quiero mostrar campos de ambas tablas simultaneamente me da error...
  #15 (permalink)  
Antiguo 14/03/2006, 04:22
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Hola,

yo es que normalmente creo un dataset con sólo una tabla. En esa tabla meto todos los campos que quiero mostrar, tanto si son de una tabla o dos de la base de datos. O sea, en vez de hacer dos tablas en el datsaet, puedes hacer una y meter todos los campos ahí. Yo de esta forma nunca he tenido ningún problema.

Por ejemplo:

Tablas de la BD:

factura: idFactura, fecha, cliente
detalle: idFactura, linea, articulo, precio

Si quiero mostrar los campos de las dos tablas de la BD en el reporte, creo un dataset con una tabla única:

Dataset:

tabla: idFactura, fecha, cliente, linea, articulo, precio


Consulta:

Select factura.idFactura,factura.fecha,factura.cliente,de talle.linea, detalle.articulo,detalle.precio from factura INNER JOIN detalle ON factura.idFactura=detalle.idFactura

LLEnas el dataset y no deberías tener ningún problema.

Saludos!
  #16 (permalink)  
Antiguo 14/03/2006, 06:33
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Hago eso mismo...lo unico que en la consulta uso * en vez de nombrar los campos sera eso?

Gracias
  #17 (permalink)  
Antiguo 14/03/2006, 15:20
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Pues puede. Yo es que siempre los nombro por orden, porque si no da error.


Pruébalo a ver si es eso.


saludos!
  #18 (permalink)  
Antiguo 15/03/2006, 10:36
 
Fecha de Ingreso: junio-2005
Mensajes: 165
Antigüedad: 18 años, 11 meses
Puntos: 0
Desacuerdo

Hize eso mismo...

Ahora me da Error de consulta desconocido cuando intenta cargar el reporte
  #19 (permalink)  
Antiguo 16/03/2006, 04:13
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
pon la escrita aquí la consulta que haces, tal cual la tienes en el código y pon los campos escritos del dataset. Para ver si el problema está ahí, es que sin verlo...
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:24.