Búsqueda entre límites


([N1] runasoft) #1

Hola foro:
Tengo una tabla Actividades con campos ID, NAME, FCH_INI, FCH_FIN. Los índices aparte de ID y NAME son FCH_INI y FCH_FIN.
Lo que quiero es que en una búsqueda salgan los que estén dentro de un intervalo de tiempo(FCH_DESDE y FCH_HASTA), por ejemplo para:
Fecha inicio — Fecha final
15/12/2015 ----- 21/12/2015

Si los registros de la tabla Actividades son:
Activid Fecha inicial Fecha final
1-------11/12/2015 ---- 14/12/2015
2-------13/12/2015 ---- 15/12/2015
3-------16/12/2015 ---- 17/12/2015
4-------20/12/2015 ---- 21/12/2015
5-------21/12/2015 ---- 22/12/2015
El 3 y 4 son los registros aptos.
Hice una búsqueda entre límites con:
Indice FCH_INI: limite inicial FCH_INI(FCH_DESDE) y limite final= FCH_INI(FCH_HASTA)
Indice FCH_FIN: limite inicial FCH_FIN(FCH_DESDE) y limite final= FCH_FIN(FCH_HASTA)
Ambos con cruzar
Pero me salen todos los registros, que variacion puedo hacer, ya intente incluso con un solo indice FECHA con partes índice FCH_INI y FCH_FIN pero nada.

Gracias anticipadas


([N4] Infortic) #2

Hola.

Lo que quieres realmente es quitar de la lista los que empezaron antes de FCH_DESDE y los que terminaron después de FCH_HASTA.

No sé si con ese concepto se me escapa algún caso.

El tema sería ponerle 3 componentes.

1 - Todo el fichero
2 - Indice FCH_INI entre límites de tipo Quitar (Quitas los que empezaron antes de la fecha inicial)

Inicial: FCH_INI(setdate(1977,1,1))
Final: FCH_INI(addDays(FCH_DESDE, -1))

3 - Indice FCH_FIN entre límites de tipo Quitar (Quitas los que terminaron después de la fecha final)

Inicial: FCH_FIN(addDays(FCH_HASTA, 1))
Final: FCH_FIN(setdate(2050,12,31)

No lo he probado, pero por ahí van los tiros.

Un saludo


([N1] runasoft) #3

Muchas gracias amigo Infortic lo probaré


([N1] runasoft) #4

No se porque no sale todo parece estar correcto. Le quito los 2 componentes de fecha y aparecen todos los registros.



([N4] Infortic) #5

Hola.

Las variables FCH_INI y FCH_FIN son correctas (de tipo Fecha).

¿Se están pasando correctamente a la búsqueda?

¿Los índices están bien definidos?

Prueba cada componente de la búsqueda por separado.


([N1] runasoft) #6

Pues los campos y los índices de tipo fecha, las variables en el formulario están de tipo fecha, las variables de la búsqueda también de tipo fecha, el manejador del objeto búsqueda de la manera habitual, la vista de datos del formulario tanto el proceso y la rejilla con la misma tabla.

Sólo se me ocurre recrear esto en un nuevo .vin


([N1] runasoft) #7

Hice de nuevo en un nuevo proyecto y el resultado es el correcto, pero en el que quiero sigue igual algo habrá cambiado en el copiar y pegar???

En fin habrá que rehacer esa parte.

Gracias por tu atención amigo Infortic


([N4] Infortic) #8

Hola.

¿ Has regenerado índices a ver si se soluciona ?

Prueba los componentes de la búsqueda uno a uno, en lugar de como quitar como añadir, poniéndole a los demás la condición 0, para saber cómo se están resolviendo los índices y hacerte una idea de que parte de la búsqueda está fallando.


([N2] info) #9

Espero que esto te pueda ayudar.

!( %FECHA-PAGO% < $BUS-FCH-DESDE$ ) ; PARA LA FECHA INICIAL
!( %FECHA-PAGO% > $BUS-FCH-HASTA$ ) ; PARA LA FECHA FINAL

Saludos.