problema con filtro urgente

problema con filtro urgente

Postby MOISES » Wed Dec 05, 2007 5:20 pm

Hola:

Quiero filtrar todas las facturas desde una serie y un numero hasta otra serie y el número final de esa serie.

Por ejemplo, desde la a1 a la b10, de modo que tiene que imprimir toda la serie A entera y de la B sólo hasta la 5.


Hago:

local ccondicion := "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 ) )

set filter to & cCondicion


Sin emabrgo, sólo me imprime de la a1 a la a5 y de la b1 a la b5. Falta el resto de la serie A. ¿Qué hago mal?.

Muchas garcias!!!!.

Salu2,

Moisés
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Re: problema con filtro urgente

Postby FiveWiDi » Wed Dec 05, 2007 5:39 pm

MOISES wrote:Hola:

Quiero filtrar todas las facturas desde una serie y un numero hasta otra serie y el número final de esa serie.

Por ejemplo, desde la a1 a la b10, de modo que tiene que imprimir toda la serie A entera y de la B sólo hasta la 5.


Hago:

local ccondicion := "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 ) )

set filter to & cCondicion


Sin emabrgo, sólo me imprime de la a1 a la a5 y de la b1 a la b5. Falta el resto de la serie A. ¿Qué hago mal?.

Muchas garcias!!!!.

Salu2,

Moisés


Prueba con:
Str( nCodigo2, 10, 0 ) en vez de Str( nCodigo2 )

estás comprobando cadenas y no es lo mismo '1' que '1.00' por ejemplo.

Saludos
Carlos G.
FiveWiDi
 
Posts: 1200
Joined: Mon Oct 10, 2005 2:38 pm

Postby Biel EA6DD » Wed Dec 05, 2007 5:57 pm

Lo primero seria recomendarte una solucion sin filtros, usando scope con un bucle While o similiar.

La sentencia para filtro debe ser del estilo
Code: Select all  Expand view  RUN
local ccondicion := "      FIELD->FSERIE+Str(FIELD->FNUMERO,10) >= '"+cFSERIE1+ Str( nCodigo1,10 ) +;
                   "'.AND. FIELD->FSERIE+Str(FIELD->FNUMERO,10) <= '"+cFserie2+Str(nCodigo2,10)+"'"


Suponiendo fnumero un campo númerico, si es caracter quitar el Str(), y ajustar Str(nCodigo, longitud del campo de la tabla)
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby MOISES » Sun Dec 09, 2007 7:25 pm

Muchas gracias, al final opté por SCOPES y funciona OK.
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 28 guests