Operadores


([N2] zenonburgos) #1

Hola como están, estoy de nuevo con mis interminables preguntas. No logro hacer funcionar algo tan sencillo como filtrar dos campos ya que los operadores de velneo me parecen un poco extraños, quiero lo siguiente:

En una rejilla que me muestra una serie de registros entro a menú superior - Lista - Filtrar. Quiero filtrar dos o más números de documentos, por ejemplo: que solo muestre mayor o igual que 4921 y menor o igual que 4923. Vengo de Foxpro y es tan sencillo hacerlo: Numero>=4921 .and. Numero<=4923. En velneo no existe “>=”, entonces me obliga a escribir: #NUMERO=4921 & #NUMERO=4922 & #NUMERO=4923, pero no despliega nada.


([N2] AyudaVelneo) #2

Hola:

Prueba con #NUMERO > 4920 Y #NUMERO <4924

Un saludo


([N2] zenonburgos) #3

Ya probé (debo aclarar que #NUMERO es alfanúmerico) y no funciona, muestra todos los registros.


([N4] mperez) #4

Hola Zenon

Como consejo general, utiliza indices son mucho mas eficaces que los filtros. No obstante si es alfanumerico y lo tratas como tal te debe funcionar el filtro

Es una simple busqueda entre limites utilizando ese índice, no tiene más

En tu caso, si es alfanumerico bastara hagas una búsqueda por el indice de ese campo entre el “4920” y el “4924”

Por otro lado >= 4921 es lo mismo que >4920


([N2] zenonburgos) #5

Excelente, seguiré tu consejo Miguel. La razón por la que no me daba el resultado esperado es que estaba usando una sola línea: !(#NUMERO<4923) & !(#NUMERO>4924). Simplemente hay que usar dos o más líneas en el editor de fórmulas, una por cada condición:
!(#NUMERO<4923)
!(#NUMERO>4924)

Curiosamente usando: #NUMERO>4923 & #NUMERO<4925 despliega el archivo completo, y supongo que es porque las condiciones se “contradicen”, la primera hace que la segunda no tenga sentido porque mostrará todas las mayores que 4923 más allá de 4925, y la segunda dice que muestre menores que 4925 incluyendo aquellas menores de 4923. Si uso dos líneas como el ejemplo anterior me da error, dice que no reconoce el símbolo #. Realmente está lioso.