MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 08/07/09, 16:19:58
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
Ayuda loop.

Hola.

Tengo un problema en un loop.

Yo estoy metiendo datos de una tabla interna a otra, y me sale un problema a ver si logro esplicarme.

Ejemplo.

Tabla i_a.

linea | cant1 | fecha1|
-----------------------
1 | | 12.02.2002
---------------------------
1 | 1 |
-------------------------
2
.
.
.


Lo que quiero es que pasar cada linea a la otra tabla, osea que qeude la linea 1 que en esta tabla tiene 2 registros, quede en un solo registro en la otra tabla.

estoy haciendo un loop y supongo que para el append a la otra tabla hay que usar un :
loop at i_a.
....
at new linea.
append
end at.
endloop.

Mi pregunta es: cual de los at....endat que hay debo usar, o si no es asi, como lo prodria hacer.

Muchas gracias.
Responder Con Cita
  #2  
Viejo 08/07/09, 23:42:54
ic_man_777 ic_man_777 is offline
Member
 
Fecha de Ingreso: oct 2007
Localización: Mexico
Mensajes: 97
o sea que en tu otra tabla quieres que te quede mas o menos así?:

Tabla i_a.

linea | cant1 | fecha1|
-----------------------
1 | 1 | 12.02.2002
---------------------------
2
.
.
.

o como?
Responder Con Cita
  #3  
Viejo 09/07/09, 06:55:29
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
perdona la tardanza en responder, si eso es lo que quiero.

como podria hacerlo???

muchas gracias
Responder Con Cita
  #4  
Viejo 09/07/09, 08:33:31
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
Podrías usar COLLECT.
De esta forma, te agruparía todos los valores de tipo cadena y te sumaría los numéricos, porque supongo que si hay necesitas tener el total de ellos.
Si, simplemente quieres quedarte con un único registro puedes usar el DELETE ADJUNT DUPLICATE que te eliminará todos los registros que estén duplicados.

Un saludo.
Responder Con Cita
  #5  
Viejo 09/07/09, 11:06:48
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
gracias pero lo del collect y delete adjacent duplicates no me vale, es con el at...endat pero no se como.

muchhas gracias
Responder Con Cita
  #6  
Viejo 13/07/09, 12:59:58
Abaunus Abaunus is offline
Senior Member
 
Fecha de Ingreso: nov 2008
Localización: Buenos Aires
Mensajes: 119
Yo haría lo siguiente:
Una vez la tabla ordenada ascendente por el campo "línea", hacés un loop. Vaz chequeando con "IF" si los otros campos están vacíos. Si no, los vas copiando a otra work área. Dentro del LOOP que haya un "AT END OF línea". Ahí, appendeás esa work área que vas armando a otra tabla interna. Y borrás la WA.

Una cosa así sería. Corríjanme si me equivoco:


Úlima edición por Abaunus fecha: 13/07/09 a las 18:09:10.
Responder Con Cita
  #7  
Viejo 13/07/09, 13:27:51
ibecerra
 
Mensajes: n/a



Hola , a ver si te entiendo.
tienes asi

linea | cant1 | fecha1|
-----------------------
1 | 1 | 12.02.2002
---------------------------
1 | 1 | xx.xx.xxxx
-------------------------
2 | 2 | xx.xx.xxxxx
2 | 2 | xx.xx.xxxxx

y quieres tomar una linea del registro por cada linea
entonces has lo siguiente
data fl .
loop at wtabla.
at new linea.
fl = '1'.
endat.
if fl = '1'.
move-corresponding wtabla to xtabla.
append xtabla.
fl = '0'.
endat.

endloop.
Responder Con Cita
  #8  
Viejo 13/07/09, 18:11:46
Abaunus Abaunus is offline
Senior Member
 
Fecha de Ingreso: nov 2008
Localización: Buenos Aires
Mensajes: 119


Según lo que yo entendí, lo que Miguel necesita es "acumular" o "juntar" en uno solo los datos que están en dos o más registros para el mismo número de "línea", no tomar una línea sola y descartar las siguientes... Creo que con At END OF es la forma...
Responder Con Cita
  #9  
Viejo 14/07/09, 06:54:54
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
muchas gracias funciona con at end ..... endat
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 12:21:00.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web