Velneo - Busqueda Condicionada

 
Vista:
Imágen de perfil de G.Asensio
Val: 3
Ha mantenido su posición en Velneo (en relación al último mes)
Gráfica de Velneo

Busqueda Condicionada

Publicado por G.Asensio (49 intervenciones) el 15/06/2005 09:55:26
Quiero realizar una busqueda sobre una tabla de Socios. En esta tabla tengo un campo "Estado" (Alta, Baja), de tipo booleano y un campo "Sexo" (Hombre, Mujer), relacionado con una tabla estática.
Quiero condicionar la busqueda por cada uno de estos campos de la siguiente forma:

-campo "Estado"
En el formulario de busqueda porder seleccionar todos los Socios(altas y bajas) o una selección (alta o bajas)

-campo "Sexo"
En el formulario de busqueda porder seleccionar todos los Socios(hombre y mujeres) o una selección (hombres o mujeres)

En definitiva quiero realizar la busqueda, con la combinación de estos condicionantes.

Yo ahora mismo lo tengo hecho con variables globales booleanas, representadas por radio buttons, (Todos o Selección). Pulsar Todos deactiva otro radio button (alta/baja, hombre/mujer). Pulsar Selección activa estos radio buttons.

La busqueda la consigo en parte, pero hay cosas no se como hacer. Me lio bastante con la utilización del check (condicion activa) y con (formula filtro secuencial).

Como se debería realizar una búsqueda de este tipo, con los codicionantes que planteo arriba?

Un saludo.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busqueda Condicionada

Publicado por pep (24 intervenciones) el 15/06/2005 21:49:41
Lo más comodo es condicionar los indices de la busqueda a resolver, es decir.

Debes tener un indice por el booleano Estado ( Alta, Baja ) y condicionar el indice en la busqueda a lo que tenga puesto en la variable.

Lo mismo para el campo de Sexo, un indice condicionado.

Los indices se cruzan los resultado en la busqueda.

Si utilizas el fitro secuencial cuando el programa maneje cientos de miles de registros no será tan rapido ya que tiene que evaluar toda la tabla de forma secuencial.

Si tienes dudas puedes ver alguno de los videos de :
http://www.velazquezvisual.com/cgi-vel/midasII/wpag.pro?P=19

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de G.Asensio
Val: 3
Ha mantenido su posición en Velneo (en relación al último mes)
Gráfica de Velneo

RE:Busqueda Condicionada

Publicado por G.Asensio (49 intervenciones) el 16/06/2005 15:29:01
Tengo los indices "Estado" y "Sexo".Tomare como ejemplo solo el "Estado".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de G.Asensio
Val: 3
Ha mantenido su posición en Velneo (en relación al último mes)
Gráfica de Velneo

RE:Busqueda Condicionada

Publicado por G.Asensio (49 intervenciones) el 16/06/2005 15:31:04
Tengo los indices "Estado" y "Sexo".Tomare como ejemplo solo el "Estado".
He creado busqueda, con los componentes, "Estado", "Sexo" y "Codigo". Además tengo un formulario con una variable "ESTADOSTODOS", representada con un boton (0=todos, 1=Seleccion). Tengo otro boton con los valores (0=alta, 1=baja). Mi primera duda, es que no se como presentar este boton, otra variable o con el campo "Estado". He probado de las dos formas:
-Si utilizo una variable booleana "ESTADOS", en el componente de busqueda le pongo la siguiente condicion activa:
($ESTADOSTODOS$=1)&(%ESTADO%=$ESTADOS$)
Cuando selecciono "todos" o "seleccion", "altas", funciona correctamente.
Cuando selecciono "seleccion", "bajas", no me funciona (no se porque).
-Si utilizo el campo "Estado" de la tabla, en este caso añado 2 veces el indice "estado" en los componentes, cada uno con una condicion de activo diferente:
1.- ($ESTADOSTODOS$=1)&(%ESTADO%=0)
2.- ($ESTADOSTODOS$=1)&(%ESTADO%=1)
Si selecciono "todos", me devuelve los de alta o baja, segun este marcado el campo "estado" en el formulario, cosa que no entiendo ya que el el componente, esta condicionado a que el valor de "ESTADOSTODOS" sea 1 y cuando elijo "todos" es 0. El resto las resuelve bien.
En definitiva, quisiera saber como se deberia de hacer realmente y si mi plantemiento es correcto y cual es el metodo adecuado, el 1º o el 2º.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de G.Asensio
Val: 3
Ha mantenido su posición en Velneo (en relación al último mes)
Gráfica de Velneo

RE:Busqueda Condicionada

Publicado por G.Asensio (49 intervenciones) el 16/06/2005 15:32:35
Como sigo sin aclararme, explicare lo que hago y cuales son mis dudas.

Por supuesto que tengo creados indices por los campor "Estado" y "Sexo".
Para no extenderme demasiado, me explicare tomando como ejemplo solo el indice "Estado" ya que la resolución del otro será exactamente igual.

He creado una busqueda, donde incluyo como componentes de la busqueda, los indices: "Estado", "Sexo" y "Codigo". Además a esta busqueda le relaciono un formulario para búsquedas.

En dicho formulario tengo una variable global booleana "ESTADOSTODOS", la cual represento mediante un boton de radio con los valores (0=todos, 1=Seleccion). Además tengo otro boton de radio con los valores (0=alta, 1=baja). aqui surge mi primera duda, ya que no se como representar este segundo boton de radio, si con otra variable global, o con el campo "Estado". He probado de las dos formas:

-Si utilizo una variable global booleana "ESTADOS", con una condicion de activo a la variable "$ESTADOSTODOS$=1". En el componente de busqueda del indice "ESTADO" le pongo la siguiente condicion activo:

($ESTADOSTODOS$=1)&(%ESTADO%=$ESTADOS$)

Cuando selecciono "todos", me devuelve todos los Socios (ok).
Cuando selecciono "seleccion", "altas", me devuelve los socios de alta (ok).
Cuando selecciono "seleccion", "bajas", no me funciona (no se porque).

-Si utilizo el campo "Estado" de la tabla, con una condicion de activo a la variable "$ESTADOSTODOS$=1". En este caso añado 2 veces el indice "estado" en los componentes de la busqueda, cada uno con una condicion de activo diferente:
($ESTADOSTODOS$=1)&(%ESTADO%=0)
($ESTADOSTODOS$=1)&(%ESTADO%=1)

Cuando selecciono "todos", me devuelve los Socios de alta o baja, segun este marcado el campo "estado" en el formulario, cosa que no entiendo ya que la condicion activo del componente de la busqueda esta condicionada a que el valor de la variable "ESTADOSTODOS" sea 1 y cuando elijo "todos" el valor es 0.
Cuando selecciono "seleccion", "altas", me devuelve los socios de alta (ok).
Cuando selecciono "seleccion", "bajas", me devuelve los de baja (ok).

En definitiva, esto es lo que mi intuición me dice que debo de hacer para resolver este caso. Lo que quisiera saber, es como se deberia de hacer realmente y si mi plantemiento es correcto o en parte correcto y cual es el metodo adecuado, el primero (variariable globlal) o el segundo (campo "estado") o si por el contrario en una autentica barbaridad la forma de plantearlo.

Un saludo.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda Condicionada

Publicado por Pep (24 intervenciones) el 16/06/2005 20:33:55
Debes tener dos botones de radio, uno que le de el valor 1 a la variable Estado y otro con boton de radio que le de el valor 0 a la variable Estado.

Si no lo puedes hacer con un check box ( Marcado 1, desmarcado 0 )

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de G.Asensio
Val: 3
Ha mantenido su posición en Velneo (en relación al último mes)
Gráfica de Velneo

RE:Busqueda Condicionada

Publicado por G.Asensio (49 intervenciones) el 17/06/2005 09:55:08
Gracias Pep por la respuesta. Ten paciencia con los novatos como yo.
Despues de semejante "chapa", no me he debido explicar bien.

Por supuesto que tengo botones de radio, pero no 2 si no 4 botones.

2 los tengo asignados a una variable global "ESTADOSTODOS", la cual toma los valores (0=todos, 1=seleccion). Si pulso 0 desactiva los otros 2 botones, mientras que si pulso 1 se activan los otros dos botones de radio con los valores (0=altas, 1=bajas). Mi duda radica, en que no se con que representar estos últimos botones de radio, si con otra variable local "ESTADOS" o directamente con el campo ("Estado") de la tabla Socios. Como he explicado anteriormente, lo he probado de las dos maneras y con ninguna consigo que me funcione totalmente.

Funcionalmente lo que quiero es que si pulso en la primera variable "ESTADOSTODOS", el valor (0=todos), me lance la búsqueda de todos los socios, mientras que si pulso el valor (1=seleccion), se me activen los otros dos botones de radio, con las opciones:

0=altas, para que lance los socios de alta.
1=bajas, para que lance los socios de baja.

Me podrais, decir como se debe de resolver esta situación?.
La verdad es que estoy atascado y de aqui no paso.

Un saludo.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda Condicionada

Publicado por Pep (24 intervenciones) el 18/06/2005 00:00:03
Te acabo de enviar un email con el ejemplo.

He puesto una condición en el indice codigo de la busqueda y luego cruzandolo quitando los que el estado sea Alta.

El Motivo es que Velázquez para optimizar los indices no incluyen los campos con valor 0 o nulo, por eso una busqueda por un indice en el que el valor es cero no devuelve nada.

Pero es sencillo de solucionar en un indice le pones todos los registros y en otro le quitas los que tengan valor 1.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar