Desafio grande para una gran mente

migumu
16 de Agosto del 2005
Hola, yo no soy una gran mente por lo que pregunto aquí para ver si alguien lo es..... ;)

Tengo una aplicación mdi con conectividad en base de datos access 2003 etc....
Tengo que generar un informe maestro detalle pero tengo que hacerlo en datareport de vb6 (a no ser que alguien me explique como hacerlo en cristalreport 8, claro)

La estructura de la base de datos que tiene que ser la fuente del informe consta de tres tablas

Tabla1, swap y tabla2
La tabla uno tiene un id_tabla1 como PK y la tabla2 un Id_tabla2 como PK y la swap tiene id_tabla1, id_tabla2 como PK.
El caso es que de tabla1 se debe generar el maestro del informe y de tabla2 el detalle, a una página por maestro, (suele haber 2 detalles por maestro mas o menos)

Y para rizar el rizo todo esto debe permitir que desde la llamada del form de vb6 yo pueda enviar el filtro en SQL.

¿QUE?, ¿alguien se atreve?
Es urgente muchas gracias amig@s.

P.D.
Si alguien necesita ayuda en VB6 (que no sea sobre esto claro) u Oracle os ayudaré encantado. Si veis que no contesto por aqui enviadme un correo a [email protected] que os intentaré ayudar rápidamente.

Repito muchiiiiisimas gracias.

dmlineaweb
16 de Agosto del 2005
Estimado amigo: si te fijas en el foro yo mismo tiré esta consulta de como generar un Data Report desde un SQL creado por mi y que me muestre los registroso filtrados a mi antojo.
1 - Debes utilizar una Data Enviroment.
2 - A él le debes crear un Connection y un Command que contenga la consulta SQL y a dicha consulta asignarle parametros (usando el comodin '?').
3 - Luego cuando abras el Data Report debes pasarle al recordset de ese Data Report la cadena con los parametros definidos por ti (o sea, le pasas los datos que debe filtrar el SQL).
4 - ¡Milagro!, ya puedes disfrutar de tu reporte como lo querías.

Para tener un detalle exacto del codigo fijate en el foro la consulta que hice yo (dmlineaweb), ahí esta todo o si lo prefieres escribeme un mail. Suerte.

Migumu
16 de Agosto del 2005
Gracias dmlineaweb, creo que vi tu post, y lo estuve usando, pero no me valía, (o no lo supe usar adecuadamente) para lo que necesito exactamente.
De todas formas me llevó a la solución que he adoptado.
Verás yo tengo que tener al menos tres command en el dataenvironment, para poder agrupar los datos de la consulta, ya que el diseño de la base de datos convierte la relación en uno a uno, además no puedo escribir la consulta literlamente y poner parametros de igualación, puesto que toda la clausula where puede cambiar, ya que uso un generador de consultas que creé, para que el usuario pueda generar los filtros. Intenté hacerlo enviando toda la clausula where en un parametro pero o no lo coge o no se bien como hacerlo.
El caso es que he decidido hacerlo de igual modo que las vistas en oracle. He creado una tabla copia de la primera, que es la que va a recibir el filtro, y una vez que se ha hecho el filtro grabo los datos en la tabla auxiliar, y sin mas lanzo el report, tirando de los datos de esta tabla auxiliar que es la que ya tiene aplicado los filtros.

No es muy fino, pero funciona.

Muchas gracias, ahora me toca buscar por el foro como refrescar el informe para que saque los datos recien grabados en la tabla, sin pulsar dos veces el boton de generar informe.