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!!.