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 07/01/09, 12:44:12
novato-sap novato-sap is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 21
For All Entries

Hola queria saber como puedo utilizar la sentencia select for all entries para copiar datos desde una tabla fisica a una tabla interna sin necesidad de hacer un LOOP y el resultado sea igual que hacer:
LOOP AT TINTERNA
SELECT* FROM BD INTO TINTERNA2 WHERE..........

MOVE-CORRESPONDING BD TO TINTERNA2.
APPEND TINTERNA2
ENDSELECT.
Responder Con Cita
  #2  
Viejo 07/01/09, 12:53:16
azua14 azua14 is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 140
es un tema recurrente..es cosa que busques



Responder Con Cita
  #3  
Viejo 08/01/09, 12:39:33
sconoredhot sconoredhot is offline
Senior Member
 
Fecha de Ingreso: feb 2008
Localización: Argentina, Rosario
Mensajes: 341
Smile Ejemplo

Hola, te mando un ejemplo:

Report Z_sebas

*Mostrar todos los vuelos de todas las aerolineas, junto al modelo del avion,
*el fabricante del mismo y su velocidad de operacion.
*CARRNAME,CONNID,FLDATE,PRICE,PRODUCER,PLANETYPE,OP_SPEED

TYPES: BEGIN OF t_vuelos,
carrid TYPE scarr-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
planetype TYPE sflight-planetype,
END OF t_vuelos,

BEGIN OF t_scarr,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
END OF t_scarr,

BEGIN OF t_plane,
planetype TYPE saplane-planetype,
producer TYPE saplane-producer,
op_speed TYPE saplane-op_speed,
END OF t_plane.

DATA: wa_vuelos TYPE t_vuelos,
it_vuelos type TABLE OF t_vuelos,
it_vuelos_aux TYPE TABLE OF t_vuelos,
wa_scarr TYPE t_scarr,
it_scarr TYPE TABLE OF t_scarr,
wa_plane TYPE t_plane,
it_plane TYPE TABLE OF t_plane,
cantidad TYPE sy-dbcnt.

START-OF-SELECTION.

* OBTENGO LA LISTA DE VUELOS DESDE LA SFLIGHT
SELECT carrid connid fldate price planetype from sflight
into TABLE it_vuelos.
if sy-subrc eq 0.
* VERIFICO SI OBTUVE AL MENOS UN REGISTRO

* GUARDO LA CANTIDAD DE REGISTROS PROCESADOS.
cantidad = sy-dbcnt.

* COPIO MI TABLA A UNA TABLA AUXILIAR
it_vuelos_aux[] = it_vuelos[].

* ORDENO LA TABLA AUXILIAR POR CARRID
sort it_vuelos_aux by carrid.

* ELIMINO LOS REGISTROS REPETIDOS EN LA TABLA AUXILIAR
DELETE ADJACENT DUPLICATES FROM it_vuelos_aux COMPARING carrid.

* OBTENGO CARRID Y CARRNAME DE SCARR EN IT_SCARR PARA TODOS LOS DATOS DE MI TABLA AUXILIAR (comparando por carrid)
SELECT carrid carrname from scarr into table it_scarr
FOR ALL ENTRIES IN it_vuelos_aux
where carrid = it_vuelos_aux-carrid.

if sy-subrc eq 0.
* SI EL SELECT FUE EXITOSO
* VUELVO A HACER UNA COPIA AUXILIAR DE VUELOS
* (Recordar que al hacer un DELETE ADJACENT... se borran registros de la tabla it_vuelos_aux)
it_vuelos_aux[] = it_vuelos[].

* ORDENO POR PLANETYPE (clave q me permite hacer el FOR ALL ENTRIES IN luego)
sort it_vuelos_aux by planetype.

* ELIMINO LOS REGISTROS REPETIDOS (los que comparten planetype)
DELETE ADJACENT DUPLICATES FROM it_vuelos_aux COMPARING planetype.

* OBTENGO LOS CAMPOS NECESARIOS DE SAPLANE EN IT_PLANE PARA TODOS LOS DATOS DE MI TABLA AUXILIAR (comparando por planetype)
SELECT planetype producer op_speed from saplane
into TABLE it_plane
for ALL ENTRIES IN it_vuelos_aux
where planetype = it_vuelos_aux-planetype.

if sy-subrc eq 0.
* SI OBTUVO DATOS
* ORDENO LAS TABLAS POR CLAVE DE INGRESO EN FORMA ASCENDENTE (por defecto)
sort it_scarr by carrid.
SORT it_plane by planetype ASCENDING.

* NAVEGO MI TABLA DE VUELOS
loop at it_vuelos into wa_vuelos.

* POR CADA VUELO, COPIO A WA_SCARR LOS DATOS DEL CARRID ACTUAL
READ TABLE it_scarr into wa_scarr
with KEY carrid = wa_vuelos-carrid
BINARY SEARCH.

if sy-subrc eq 0.
* SI PUDE VER LA INFORMACION CORRECTAMENTE
* POR EL VUELO ACTUAL, OBTENGO LOS DATOS DEL TIPO DE AVION
READ TABLE it_plane into wa_plane
with key planetype = wa_vuelos-planetype
BINARY SEARCH.

if sy-subrc eq 0.
* SI EL READ TABLE FUE EXITOSO, IMPRIMO TODOS LOS DATOS
write: / wa_scarr-carrname, wa_vuelos-connid, wa_vuelos-fldate,
wa_vuelos-price, wa_plane-producer, wa_plane-planetype,
wa_plane-op_speed.
endif.
endif.
* LIMPIO TODAS LAS WA UTILIZADAS
clear wa_vuelos.
clear wa_scarr.
clear wa_plane.
endloop.
endif.
endif.
endif.
write: / 'La cantidad de vuelos es:', cantidad.
END-OF-SELECTION.

espero que te sirva,

saludos
__________________
Sebas

Desarrollador ABAP.
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 19:22:36.


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