Page 1 of 1
problema al realizar un filtro
Posted: Wed Apr 25, 2012 10:23 am
by lucasdebeltran
Hola compañeros:
Tengo una base de datos con _, serie y número.
Tengo estas facturas:
A 2
A 6
B 1
B 2
B 3
D 1
D 2
Me gustaría filtrar desde la B 2 a la D 1 para tener:
B 2
B 3
D 1
Pero no me funciona:
Code: Select all
Condicion := "FIELD->FSERIE >= " +CHR(34)+cFSERIE1+CHR(34)+ " .AND. FIELD->FNUMERO >= " + AllTrim( Str( nCodigo1 ) ) + " .AND. " + ;
"FIELD->FSERIE <= " +CHR(34)+cFSERIE2+CHR(34)+ " .AND. FIELD->FNUMERO <= " + AllTrim( Str( nCodigo2 ) )
Es decir, tendría que hacer dos límites. Por favor, ¿alguna idea?.
Mil gracias.
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 11:48 am
by karinha
Crea un indice por el que quieres e usa el comando ORDSCOPE().
Saludos.
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 12:09 pm
by lucasdebeltran
También lo he probado y nada:
INDEX ON FIELD->FSERIE + StrZero (FIELD->FNUMERO,20 ) TAG INDICE1 FOR !Deleted()
No me funciona:
OrdScope(0, "B2")
OrdScope(1, "D1")
No muestra nada.
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 1:58 pm
by TecniSoftware
Amigo, no debe andar por que lo que has puesto en ordscope no coincide con el índice.
El indice esta con StrZero (FIELD->FNUMERO,20 ) , deberias ponerle OrdScope(0, "B00000000000000000002")
Saludos
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 2:13 pm
by lucasdebeltran
Hola,
Muchas gracias por responder.
También lo probé sin éxito:
OrdScope(0, "B00000000000000000001")
OrdScope(1, "B00000000000000000002")
Debería sacar B 1 y B2 pero nada, no aparece nada.
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 2:22 pm
by TecniSoftware
Lucas, como tienes en la dbf el campo FIELD->FSERIE ? es caracter de 1 ? porque si no es asi, ahi tienes el error.
Saludos
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 2:44 pm
by lucasdebeltran
Hola,
No tiene 3 caracteres.
¿Cómo debería ser entonces?:
¿B 00000000000000000004?
Muchas gracias.
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 4:20 pm
by karinha
Code: Select all
INDEX ON FIELD->FSERIE TAG WFSERIE FOR !Deleted()
USE BANCOSERIE....
SET ORDER...
cIniSerie := "B2"
cFinSerie := "D1"
OrdScope(0, cIniSerie )
OrdScope(1, cFinSerie )
GO TOP
BROWSE()
Re: problema al realizar un filtro
Posted: Wed Apr 25, 2012 5:41 pm
by lucasdebeltran
Solucionado.
Muchas gracias por la ayuda.
Como FSERIE tiene tres caracteres tengo que dejar dos espacios:
B 00000000000000000004
Me estaba volviendo loco!!.