Hola, espero que me ayudes... Tengo una duda muy de novato pero bueno así se empieza.. Ya hice un programa en foxpro pero ahora le quiero agregar los reportes.. Y quisiera saber si me puedes enviar alguna guía y/o ejemplo de reportes con más de 1 tabla por favor.. De antemano gracias...
1 respuesta
Respuesta de davsoft
1
1
davsoft, Desarrollador con 10 años de experiencia en el area de Visual...
Si quieres una guía te recomiendo bajarlo de www.labeldelprogramador.com en la sección de cursos, pero si quieres hacer un reporte con más de una tabla primero debes saber SQL, si no sabes SQL te estas saltando un paso importante, pero te cuendo que dos tablas en un reporte no tiene tanto sentido, por que SQL justamente juntara dos o más tablas en una sola, si haces un reporte con una tabla no implica ningún inconveniente hacerlo con más de uno, si aun no tienes experiencia con reportes debes leer un poco la parte teórica, aquí no hay lugar para dar detalles teóricos, pero si estamos para solucionar problemas puntuales sobre temas puntuales. Lee un poco y házmelo saber, las dudas e iremos ayudándote.
Yo he trabajado mucho tiempo con mysql y php.. así que conozco las sentencias sql.. pero estoy trabajando con tablas de foxpro .dbf así que me ayudaría de mucho si me dieras una explicación corta de como aplico las sentencias sql para las tablas .dbf y de ahí en adelante creo que podre hacer lo demás.. ¿es acaso algo con las vistas?
Ah, entonces no tendrás problemas, SQL es estándar, así que ya no habrá problemas, en fox sera los mismo con muy pequeñas diferencias, supongamos que quieres listar todas las facturas del mes por cada cliente, y tienes las tablas clientes y facturas relacionadas por fac_cliente=cli_codigo, esto seri así en fox. select fac_codigo,fac_fecha,cli_nombre,fac_total from factura,clientes where fac_cliente=cli_codigo into cursor lista order by cli_nombre,fac_fecha Bueno, la sentencia sql listara los campos que le pedí (un campo de clientes que es el nombre) ordenado por cliente y dentro de cliente por fecha, ahora lo que tal vez te es nuevo aquí la sentencia into cursor, esta sentencia indica a fox donde va arrojar los resultados, en este caso yo utilice cursor, un cursor en fox es una tabla temporal de memoria, hasta fox6 es solo lectura, a partir de vfp7 puedes añadirle la clausula READWRITE al final y sera lectura escritura, bueno, es una tabla como te explique pero temporal y solo se crea en la memoria (bueno, son TMP físicamente en el temp de windows, pero aquí eso no importa), pues así no creara conflicto con otro usuario que este ejecutando el mismo modulo, puedo que a cada uno creara un cursor en la memoria de su terminal, también si no quieres crear cursor inclusive puedes crear una tabla física en el disco INTO TABLE lista, pero aquí no se puede hacerlo al mismo tiempo con otro usuario, puedes crear un archivo de texto, una matriz etc, en fin tienes varias opciones de arrojar el resultado en varios formatos, pero de aquí en adelante ya tienes el cursor/tabla llamada lista, y para el reporte es un único archivo y listo, a esto me refereria que no importa uno o dos tablas, primero pasas por sql y luego te vas a report, bueno, si tienes experiencia puedes trabajar con fox y mysql, así el camino sera más rapido para ti, administras los datos por un motor que ya conoces, puesto que si usas DBF estarías volviendo atrás en el tiempo, es un punto de vista mio.
Ok he entiendo todo... y sobre mysql, he leído sobre su motor para foxpro.. y se que es mucho mejor pero quiero aprender así primero en caso de haber un programa que necesite arreglo.. apenas me vuelva un experto en esto iniciaré con mysql. Gracias.