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

informes en Visual Basic

Estas en el tema de informes en Visual Basic en el foro de Visual Basic clásico en Foros del Web. Hola a tod@s!! Mi problema es el siguiente: Estoy haciendo una pequeña aplicación como complemento a una mayor. En mi aplicacion necesito sacar un informe ...
  #1 (permalink)  
Antiguo 29/01/2004, 11:33
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
informes en Visual Basic

Hola a tod@s!!

Mi problema es el siguiente:

Estoy haciendo una pequeña aplicación como complemento a una mayor. En mi aplicacion necesito sacar un informe de una tabla, hasta aqui todo normal.

El problema es en la tabla tengo mucha informacion, información que viene de una estructura que para que me entendais se asemeja a la siguiente:

abuelo1-padre1-hijo1
abuelo1-padre1-hijo2
abuelo1-padre2-hijo1
abuelo2-padre1-hijo1

La informacion del ejemplo no es la que tengo pero creo que vale para que me entendais.

El informe que tengo que sacar deberia de tener la siguiente estructura:
abuelo1
padre1
hijo1
hijo2
padre2
hijo1
abuelo2
padre1
hijo1

El problema es que todo esto lo tengo en una unica tabla y que tengo que hacer el informe con datareport pq no tengo crystal report, ¿ME PODEIS HECHAR UNA MANO?

GRACIAS
  #2 (permalink)  
Antiguo 29/01/2004, 15:03
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
No me ha quedado demasiado claro el tema de la estructura y la tabla. Imagino que el formato que quieres sacar en el informe es complicado para conseguirlo mediante una sentencia SQL.

De todas formas y sin tener que entender muy bien el problema puedo aconsejarte que si dominas sql y los recordset en VB no hay problema:

-Datareport necesita un recordset de ADO
-Como no lo puedes obtener directamente de una query
-Creas uno a mano, sin una SELECT
-Con otros recorset le metes información
-Y por último se lo asignas al Datareport con el formato que tu quieras.

¿Que base de datos es?

Saludos
Pablo
  #3 (permalink)  
Antiguo 30/01/2004, 04:42
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
hola Pabli!!!

Bueno, lo primero es darte la gracias por contestarme. Lo segundo es decirte que mi base de datos es access 2000.
El problema que tengo es que intento hacer un comando del dataenvironment con una sentencia sql que me agrupe por abuelo y padre, para que asi me devuelva todos las relaciones entre abuelos,padres e hijos sin repetir ninguno, o sea:

abuelo1
padre1
hijo1
hijo2

lo que pasa es que no me deja hacer el group by por abuelo y padre, sino pongo tb el hijo y eso no me interesa pq los hijos no se repiten ninguna y entonces me sale:

abuelo1 padre1 hijo1
abuelo1 padre1 hijo2

Otra cosa, a k te refieres con eso de que asocie el recorset al datareport con el formato que quiera???
  #4 (permalink)  
Antiguo 30/01/2004, 07:08
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
Creo que empiezo a enterarme, a ver si no me equivoco.
Tú tienes en la base de datos la siguiente estructura, o sea un abuelo al tener varios nietos puede tener varios registros:

abuelo1 padre1 hijo1
abuelo1 padre1 hijo2

y la información, en vez de sacarla en formato horizontal, la quieres en vertical para mostrarla:

abuelo1
padre1
hijo1
hijo2

esto es complicado por no decir... (seré cauto por si es posible) en una sola sentencia SQL

Solo si te he entendido bien, sigue leyendo:
Cuando quieres cambiar la estructura de una tabla para sacar unos resultados temporales tienes que hacer un jaleo de tres pares...
Si fuera una base de datos tipo SQLServer u ORACLE se podría solucionar con tablas temporales, pues mediante varias SELECT llenas la tabla temp con los datos que tu quieras.
Desde VB, Dataenvironment es poco flexible, trabajas normalmente con objetos:

CONNECTION
RECORDSET
COMMAND

sin ADODC ni ENV... Estos controles simplifican la programación pero no te dejan hacer mucho más.

Saludos
Pablo
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 08:50.