Progress - leer con FIND.... NEXT

 
Vista:

leer con FIND.... NEXT

Publicado por Reheba (17 intervenciones) el 08/12/2011 22:54:05
saludos a todos los progresianos..
en alguna ocasión vi una rutina de lectura con find y después un repeat y dentro de esta un find next . ya hice la rutina pero me lee todo el archivo y no solamente las condicionantes del primer find. anexo codigo .

find first r-semanas no-lock where r-semanas.cliente = 705
and r-semanas.semana = 38
and r-semanas.a#o = 2011 use-index llave2 no-error .

repeat:
disp r-semanas.Cliente
r-semanas.a#o
r-semanas.semana
r-semanas.cve-tienda
r-semanas.descripcion
r-semanas.id-color
r-semanas.No-primer-elemento
r-semanas.no-sec-depto
r-semanas.piezas-pedidas
r-semanas.piezas-recibidas
r-semanas.tama#o
r-semanas.upc
with width 300.
pause 0.
find next r-semanas no-lock no-error .
end.
podria ayudarme para que solamente lea las condiciones del find. esto es para realizar otro tipo de lectura al archivo y yo creo que es mas rapido que con for each... muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

leer con FIND.... NEXT

Publicado por DparteD (129 intervenciones) el 09/12/2011 11:56:55
Buenas.

En primer lugar para asegurarte que el FIND NEXT se ejecuta con correccion deberias indicarte el indice y ademas si el indice se correpsonde con las condiciones, que es l que en buena logica imagino, deberias repetir las condiciones en el propio FIND NEXT. Ademas de esto deberias indicar cuando debe terminer el REPEAT para hacer mas eficaz el bucle.

Yo lo pantearia asi :

find first r-semanas where r-semanas.cliente = 705 and r-semanas.semana = 38
and r-semanas.a#o = 2011 use-index llave2 no-lock no-error .

repeat:
if not available rsemanas then LEAVE.
if available r-semanas then do:
disp r-semanas.Cliente
r-semanas.a#o
r-semanas.semana
r-semanas.cve-tienda
r-semanas.descripcion
r-semanas.id-color
r-semanas.No-primer-elemento
r-semanas.no-sec-depto
r-semanas.piezas-pedidas
r-semanas.piezas-recibidas
r-semanas.tama#o
r-semanas.upc
with width 300.
pause 0.
end.
find next r-semanas where r-semanas.cliente = 705 and r-semanas.semana = 38
and r-semanas.a#o = 2011 use-index llave2 no-lock no-error .
end.

Espero que te sea util.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

leer con FIND.... NEXT

Publicado por AntonioSLP (1 intervención) el 01/07/2012 03:01:56
Mira el problema es que en el segundo Find debes poner la misma condicionante que en el primero, lo unico que cambiara es el First por el Next.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar