fallo en busqueda


([N3] Servinfor) #1

Hola en un indice de la busqueda los valores pueden ser 1,2,3 y quiero que me salga diferente de 2 para lo que he probado con !2 y con 1|3 y no me obedece como sería la sintaxis?


([N4] Fran) #2

Buenos dias:

Puedes utilizar dos componentes de búsqueda:

  • El primero obtiene toda la lista, p. ej., por código.
  • El segundo obtiene, por parte izquierda de la clave los valores = 2, y los cruza con la lista del primer componente.

De esta forma, la búsqueda te devolverá todos los registros que no tengan 2 en el índice que necesites.


([N2] ramiro) #3

Buenas:

La cosa es tal como ha querido decir Fran (me consta porque le conozco), pero en lugar de Cruzar debería haber dicho Quitar.

Es decir, se obtienen los registros por código y se “quitan” los de clave “2”, quedando el resto.

Saludos. Ramiro


([N3] Servinfor) #4

Muchas gracias ya va perfecto


([N4] Fran) #5

Cierto, Ramiro tiene razón. Hay un gazapo en mi respuesta: sería quitar en lugar de cruzar.


([N3] pacosatu) #6

Hola Servinfor.

Por dar otra opción a la dada por los maestros Fran y Ramiro.

La resolución de los Índices en los componentes de búsqueda sólo se pueden hacer por la parte izquierda, es decir, VALORINDEXADO = <expresión>. Por esta razón no podemos resolver la búsqueda con expresiones como !(VALORINDEXADO = 2) o (VALORINDEXADO = 1 | VALORINDEXADO = 3).

1º opción -> Crear un índice condicionado
En la condición de indexación de un Índice sí puedes poner una expresión del tipo !(#CAMPO = 2) y de esta forma te ahorras el componente de búsqueda y estará más optimizado al no tener que resolver el 1º componente de la búsqueda.

2º opción -> Componente de búsqueda con condiciones de búsqueda
Creas un componente de búsqueda con una variable VALOR y 3 componentes VALOR1, VALOR2 y VALOR3 con mezcla Añadir y condiciones de Activo !(VALOR = 1), !(VALOR = 2) y !(VALOR = 3) respectivamente. Los límites iniciales son VALOR(1), VALOR(2) y VALOR(3) respectivamente.
Con esto, asignando valor a la variable VALOR, se devuelven todos los valores excepto el indicado por VALOR.

Otra forma más de ver las muchisimas posibilidades que tiene las base de datos de Velneo.

Saludos
Paco Satué