Reportes...

Hola... Estoy trabajando en una aplicación y tengo problemas con la impresión de reportes...
1.- ¿Como estructuro reportes por periodos: diarios, semanales, mensuales, etc. ( como aclaración ya incluí un campo que capture fecha en las tablas )
2.- ¿Como imprimo solamente uno o ciertos registros de la tabla en un reporte, es decir, generar los reportes bajo ciertas condiciones... No tengo ni idea... Gracias
Respuesta
1
Antes de ejecutar un reporte tenés que tener la tabla de consulta ordenada según cómo querés que salga en el informe. El reporte no ordena ninguna tabla a menos que esta esté indexada previamente.
Por lo tanto para estructurar reportes por períodos tienes que ordenar tus datos por ello y el reporte crear un agrupar datos por el campo que ordenaste la tabla y de esa forma obtener totales por periodos.
Para imprimir ciertos registros por ejemplo para un determinado periodo podes usar repor form mireporte for fecha >= ctod('01/01/2001') .and. fecha <= date()
Tal que fecha es un campo del reporte
Tenés que leer la ayuda del fox para seleccionar ciertos registros con las cláusulas for, while, rest y all.
Suerte

3 respuestas más de otros expertos

Respuesta
1
Tienes varias opciones, la más recomendable es el uso de un cursor, esto se hace con la instrucción SELECT (de SQL)
Por ejemplo si tenemos una tabla que se llama COBROS.DBF y un formato de REporte llamado REPOHOY. FRX, y deseo imprimir en mi reporte únicamente los datos del día de hoy.
Escribiríamos:
USE COBROS &&para abrir los datos
SELECT * FROM COBROS WHERE FECHA = DATE() ORDER BY CLAVE INTO CURSOR SOLOHOY
SELECT SOLOHOY
REPORT FORM RepoHoy TO PRINTER PROMPT
Con lo anterior haces un filtro en un cursor llamado SOLOHOY (que tiene la misma estructura de tu tabla COBROS.DBF y que es de solo lectura) y lo mandas a imprimir en el reporte.
Puedes usar los operadores lógicos como quieras, por eje, mplo si ademas de mostrar los registros de hoy quieres ver los de ayer también, pondrías:
SELECT * FROM COBROS WHERE FECHA = DATE() OR FECHA=(DATE()-1) ORDER BY CLAVE INTO CURSOR SOLOHOY
Respuesta
1
Si estas utilizando sql, la forma más común es que le insertes condiciones a las consultas que estés realizando.
Ejemplo:
select miscampos from mitabla where mifecha = "YYYYMMDD"
esto es para una fecha
select miscampos from mitabla where mifecha >= "YYYYMMDD" and mifecha <= "YYYYMMDD"
Esto es para un rango de fechas que te puede servir para seleccionar una semana, un mes o diferentes periodos.
Ahora con la última pregunta tienes que ir agregando condiciones sobre los campos que vas a ir filtrando tus consultas.
Respuesta
Para condicionar el contenido del reporte puedes utilizar REPO FORM mireporte FOR micondicion
Luego, para agrupar los datos según periodos puedes armar grupos poniendo condiciones en agrupar datos. Esas condiciones te crearan grupos con cabecera y pie individuales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas