Ver Mensaje Individual
  #1  
Viejo 12/01/16, 17:09:51
naotosx naotosx is offline
Junior Member
 
Fecha de Ingreso: dic 2015
Mensajes: 5
Unhappy Duda con tablas internas en un ejercicio

Ok, he leído algo sobre tablas internas y he hehco varios ejercicios pero no se me aclara en el momento que estoy haciendo algo. Ejemplo:

(Obvien el hecho que no he construido el ALV)

REPORT Z_NA_ALVPRACTICA.

TABLES: EKKO, EKPO, EKBE.

TYPES: BEGIN OF ty_ekbe,
EBELN TYPE EBELN,
VGABE TYPE VGABE,
BELNR TYPE MBLNR,
WAERS TYPE WAERS,
END OF ty_ekbe,

BEGIN OF ty_ekko,
EBELN TYPE EBELN,
BUKRS TYPE BUKRS,
ERDAT TYPE ERDAT,
ERNAM TYPE ERNAM,
SPRAS TYPE SPRAS,
END OF ty_ekko,

BEGIN OF ty_ekpo,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
MATNR TYPE MATNR,
MATKL TYPE MATKL,
WERKS TYPE EWERK,
LOEKZ TYPE ELOEK,
END OF ty_ekpo.

DATA: lt_ekbe type standard table of ty_ekbe,
wa_ekbe type table of ty_ekbe,
lt_ekko type standard table of ty_ekko,
wa_ekko type table of ty_ekko,
lt_ekpo type standard table of ty_ekpo,
wa_ekpo type table of ty_ekpo.

TYPE-POOLS: SLIS.
DATA: alv_git_fieldcat TYPE slis_t_fieldcat_alv,
wa_alv_get_fieldcat LIKE LINE OF alv_git_fieldcat,
*Estructura de Parametros del ALV
lf_layout TYPE slis_layout_ALV, "Maneja Diseño del ALV
it_topheader TYPE slis_t_listheader, "Maneja Cabecera del ALV
wa_top LIKE LINE OF it_topheader, "Linea para la cabecera
it_events TYPE slis_t_event WITH HEADER LINE,"Maneja TabladEventos
it_sort TYPE slis_t_sortinfo_ALV. "Para Ordenar la Tabla

SELECT-OPTIONS: s_ebeln for WA_ekko-ebeln OBLIGATORY,
s_ebelp for wa_ekpo-EBELP.


START-OF-SELECTION.

SELECT EBELN VGABE BELNR WAERS
FROM EKBE
INTO TABLE LT_EKBE
WHERE EBELN IN WA_EKBE-EBELN

SELECT EBELN BUKRS ERDAT ERNAM SPRAS
FROM EKKO
INTO TABLE LT_EKKO
WHERE EBELN IN WA_EKKO-EBELN

SELECT EBELN EBELP MATNR MATKL WERKS LOEKZ
FROM EKPO
INTO TABLE LT_EKPO
FOR ALL ENTRIES IN LT_EKBE
WHERE EBELN IN WA_EKKO-EBELN


LOOP AT lt_EKBE INTO wa_EKBE.
READ TABLE lt_EKKO INTO wa_EKKO
READ TABLE LT_EKPO INTO WA_EKPO
WITH KEY S_EBELN = wa_LT_EKBE-EBELN.


END-OF-SELECTION.


Mi duda son las siguientes: yo se que cuando creo tablas con types , hago mi tabla interna y luego mi cabecera (workarea como yo lo veo) que es las que me ira guardando cada dato en la tabla. Se que en mi pantalla de seleccion creo una que se llama s_ebeln for (aqui no se si pongo workarea y cual)-ebeln y otro parametro ebelp for wa_ekpo-ebelp (supongo que es esta porque es la que contiene ese campo). Ok voy con mis selects se que tengo que extrar data de mi tabla x, por ejemplo :

SELECT EBELN EBELP MATNR MATKL WERKS LOEKZ
FROM EKPO
INTO TABLE LT_EKPO
FOR ALL ENTRIES IN LT_EKBE
WHERE EBELN IN WA_EKKO-EBELN

la introduzco la data enm lt_ekpo que posteriormente hare mi loop para que guarde los registros pero no he trabajado con 3 tablas y por eso tengo mas dudas, mi otra gran importante pregunte es el el where, principalmente porque no se como leerlo es decir where mi_campo_clave esté_en mi_tabla_con_cabecera??? o where ebeln in lt_ekbe ???? que es la tabla interna.

Y el loop lo hago primero en una tabla, luego en la segunda y despues en la tercera? o si me pueden escribir esa parte del codigo corregida se los agradeceria y explicada claro y por ultimo como funciona el for all entries, como usarlo y cuando, yo ya he leido pero no es lo mismo que uno lea e interprete a que alguien que ya sabe usarlo se lo explique a uno xD

Cualquier error o informacion, correcion, asesoramiento, consejo, experiencia, documento es bienvenido porque me parece que si no tengo esto claro me costara mucho realizar otras cosas. Saludos y muchas gracias.
Responder Con Cita