Ayuda con SCAND...ENDSCAD

Gilber_
21 de Agosto del 2004
Tengo dos tablas Tabla(a) y Tabla(b), quiero seleccionar registros de las dos tablas en mención para luego el resultado ponerlo en un listbox usando el comando SCAND para recorrer las tablas. Como se hace esto?

Gracias.

Ricardo
21 de Agosto del 2004
Puedes utilizar tambien el DO WHILE PARA PODER RECORER LAS TABLAS.
Y SI TIENES DOS TABLAS PUEDES RELACIONARLAS CON SET RELATION TO
EJEMPLO:

SELE 1
USE VENTAS INDEX strnumpro
SELE 2
USE PRODUCTO INDEX strcodpro
sele 1
set relation to numpro into producto

DO WHILE .NOT. EOF()
SELE 1
Oldprevta=produdcto.prevta
Oldnumpro=numpro
RESULT=0
DO WHILE numpro=Oldnumpro .and. !EOF()
result=result+oldprevta*canvta
SKIP
ENDDO

ENDDO
SI TU DESEAS PUEDES CREAR UN CURSOR PARA ANADIR LOS RESULTADOS Y DESPUES ENLAZARLOS CON TU LISTBOX
saludos.


















Gina
21 de Agosto del 2004
Hola
Es muy fàcil crear el cursor que te indican, lo puedes hacer de la siguiente manera:
Supongamos q en la tabla a y en la tabla b tienen un campo en comun llamado CLAVE, q es con el q harìas la relaciòn , seria:

Selec Tabla_a.* from Tabla_a inner join Tabla_b On Tabla_a.CLAVE = Tabla_b.CLAVE Into Cursor Tabla_c

Con este cursor Tabla_c, llenarìas el combo q dices , ya que va a contener ùnicamente los datos q la clave en ambas coincida.

Espero q te sirvas, serà màs ràpido q un SCAN.......SUERTE!!!

Gilber
21 de Agosto del 2004
Ricardo, muchas gracias por tu ayuda.
Trataré de hacer lo que me sugieres, aunque te contaré que soy un principiante en esto de la progración, pero con deseos de aprender.

Las tablas en mención están relacionadas, de manera que si tienes un ejemplo un poco mas explícito, por favor ayudame.

Eso del "CURSOR" suena interesante, me podrías ayudadar con un ejemplo.

Saludos desde Loja-Ecuador


Gina
21 de Agosto del 2004
Hola
Es muy fàcil crear el cursor que te indican, lo puedes hacer de la siguiente manera:
Supongamos q en la tabla a y en la tabla b tienen un campo en comun llamado CLAVE, q es con el q harìas la relaciòn , seria:

Selec Tabla_a.* from Tabla_a inner join Tabla_b On Tabla_a.CLAVE = Tabla_b.CLAVE Into Cursor Tabla_c

Con este cursor Tabla_c, llenarìas el combo q dices , ya que va a contener ùnicamente los datos q la clave en ambas coincida.

Espero q te sirvas, serà màs ràpido q un SCAN.......SUERTE!!!

Anonimo
21 de Agosto del 2004
Mira Gilber_:

Cuando usas el
DO WHILE
....
...
SKIP
ENDDO

necesariamente tienes que hacer un GOTOP antes de iniciar el ciclo y utilizar SKIP para ir al siguiente registro de tu tabla.

Pues bueno con el
SCAN
..
..
ENDSCAN

no tienes que hacer un GOTOP y tampoco SKIP, el ciclo solito recorre tu tabla desde el primer registro al último.