PDA

Ver la Versión Completa : Loop en tablas internas


malaga01
26/02/07, 18:40:09
Hola:

Soy bastante novato en estos temas, así que tengo una duda que seguro que os parece bastante facil. Tengo una tabla interna con dos campos, y quiero poner varios registros de esa tabla interna en un mismo registro de otra tabla.
Es decir, tengo:
campo1 campo2
A A1
A A2
B B1
B B2

y quiero ponerlo así
Campo1 Campo2 Campo3
A A1 A2
B B1 B2...

¿Como se puede hacer esto? He probado con un AT NEW, AT END OF... pero no me sale...

Perdon por todo el rollo, pero si me podeis echar una mano, os lo agrdecaría.

Un saludo

ANDRE
26/02/07, 21:07:39
Lo puedes hacer con un:

Loop at <nombre tabla interna>
move ........ to ......
move ........ to ......
endloop.

Un saludo.

malaga01
27/02/07, 06:45:56
Hola:

Lo he probado así, pero el problema el ¿cuándo haces el append?

Saludos

DCErick
28/02/07, 15:22:51
Hola:

Lo he probado así, pero el problema el ¿cuándo haces el append?

Saludos
No pues primero tienes que sacar todos los registros diferentes en campo1 de tu tabla interna... "DELETE ADJACENT".

Luego hacer un loop a la tabla interna que te quedaria con solo los diferentes.
Dentro de ese loop haces un loop a la tabla interna original poniendo como condicion que te traiga los registros que coincidad con la llave de la tabla interna filtrada (la que tiene los diferentes).

LOOP TI_DIF.
clear TI_RESULT.
LOOP TI_ORIGINAL Where campo1 = TI_DIF-campo1.
'''Y aqui por medio un contador o algo asi pones el valor del dato en su respectiva posición.
TI_ORIGINAL-CampoN... = TI_RESULT-CampoN...
endloop.
append TI_RESULT.
ENDLOOP.

Algo asi es lo que yo haria....