Hola, Tengo tres tablas persona, Documentos y Vinculacion_laboral. Una persona tiene muchos documentos y una persona tiene muchas vinculaciones Necesito hacer un reporte donde muestre todas las personas con sus respectivos documentos y sus respectivas vinculaciones Te agradezco mucho
Hace poco, la version 9 de fox incluyo la posibilidad de poner múltiples bandas de detalle en sus reports. Si es posible, enviarme la version de fox y en todo caso, buscaremos alguna alternativa para tu version.. Si es posible, enviame los campos que tienen los dos tablas que estarían relacionadas con la de personas..
Estoy trabajando en foxpro 7, Estos son los campos de la tabla vinculación: Persona numeric Dependencia carácter direccion_dependencia cracter Jefe caracter fecha_inicio date fecha_retro date Estos son los campos de Documento Código numeric Descripción carecter Numero_hojas numeric
Debido a que me faltan algunos datos como las longitudes de los campos y eso (que es importante) lo voy a definir como ejemplo.. Otra cosa, es que me falta saber como se relaciona la tabla documento con personas así que le agregue el campo persona también a la tabla documento. Entonces.. para ejemplo (después lo adaptas vos) hacemos así.. Personas -------- Persona n(8) Nombre c(100) Vinculación ----------- persona n(8) Depende c(100) Dirección c(100) Jefe c(100) Inicio date(8) Retro date(8) Documento --------- PERSONA n(8) Codigo n(8) descrip c(100) hojas n(8) Ahora.. lo que haríamos sería lo siguiente: Creamos una consulta sql que traiga todos los campos de vinculación y todos los de documento con un identificador de origen.. Vinculación ----------- persona n(8) Depende c(100) Dirección c(100) Jefe c(100) Inicio date(8) Retro date(8) sele '1' as origen, persona, depende as dependeV, direccion as dirV, jefe as jefeV, inicio as inicioV, retro as retroV, 00000000 as codigoD, space(100) as descripD, 00000000 as hojasD from vinculacion ; union; sele '2' as origen, persona, space(100) as dependeV, space(100) as dirV, space(100) as jefeV, ctod("") as inicioV, ctod("") as retroV, codigo as codigoD, descrip as descripD, hojas as hojasD from documento; into dbf miConsulta order by 1 index on persona to miConsulta Despues faltaría relacionar la tabla de personas con la consulta.. sele personas set rela to persona into miConsulta set skip to miConsulta Ahora la parte del report: En el report haces dos grupos, el primero es por el campo personas. Persona y en ese grupo pones los datos de la tabla personas que te quieras mostrar En el otro grupo, pones por mi consulta. Origen, así en el encabezado pones algo como "Vinculaciones" y "Documentos" En el detalle pones los campos de mi consulta.. Ahora, tenemos que trabajar con la opción de "Print only when expression is true" "imprimir solo cuando la expresión es verdadera" de los campos del report.. Segun sea el campo pones en esa opcion miTabla.origen='1' o miTabla.origen='2' para que los campos que no corresponden a la seccion no aparezcan.. Por ejemplo en el campo "dependeV" seria miTabla.origen='1' entonces, cuando estas listando los datos que sean de documento ('2') este campo no aparece.. Bueno, espero que lo pruebes y que te funcione correctamente. Cualquier cosa estoy a tu disposición. Keystone - Christian www.keystone.com.ar