Ver Mensaje Individual
  #1  
Viejo 29/01/15, 18:10:07
tabi.rivero tabi.rivero is offline
Junior Member
 
Fecha de Ingreso: ene 2015
Mensajes: 3
Añadir campos en ALV

Hola
Tengo una duda. Soy Abap Jr apenas 3 semanas con esto de abap . Tengo un problemita con un ALV. Me pidieron una modificación, agregar 2 columnas: denominación de tipo de material y denominación de Gpo. de Artículos.

Aparte del TYPE-POOLS: slis, el FM = REUSE_ALV_GRID_DISPLAY y el catálogo, tengo esto que creo es importante.
Tengo esto:

* Tablas.
TABLES: mara, "Maestro de Materiales.
makt. "Textos breves - Material.

TYPES: BEGIN OF ty_lista,
matnr LIKE mara-matnr, "No. Material.
maktx LIKE makt-maktx, "Descrip. Material.
ersda LIKE mara-ersda, "Fecha de Creación.
mtart LIKE mara-mtart, "Tipo de Material
matkl LIKE mara-matkl, "Gpo. de Artículos.
meins LIKE mara-meins, "UMB.
gewei LIKE mara-gewei, "UM Peso.
mtbez LIKE t134t-mtbez, "Add 29.01.2015
wgbez LIKE t023t-wgbez, "Add 29.01.2015
END OF ty_lista,

* Inicio modif. 29.01.2015
BEGIN OF ty_mtart,
mtart LIKE t134t-mtart, "Tipo de Material.
mtbez LIKE t134t-mtbez, "Descrip. Tipo de Material.
END OF ty_mtart,

BEGIN OF ty_matkl,
matkl LIKE t023t-matkl, "Gpo. Artículos.
wgbez LIKE t023t-wgbez, "Descrip. Gpo. Artículos.
END OF ty_matkl.
* Final modif. 29.01.2015

* Declaración de tablas internas.
DATA: lt_lista TYPE STANDARD TABLE OF ty_lista WITH HEADER LINE,
lt_mtart TYPE STANDARD TABLE OF ty_mtart WITH HEADER LINE, "Add 29.01.2015
lt_matkl TYPE STANDARD TABLE OF ty_matkl WITH HEADER LINE. "Add 29.01.2015

* Declaraciones del ALV.
DATA: ls_layout TYPE slis_layout_alv,
lt_catalog TYPE slis_t_fieldcat_alv,
ls_catalog TYPE slis_fieldcat_alv.

* Pantalla de selección.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_matnr FOR mara-matnr OBLIGATORY,
so_ersda FOR mara-ersda,
so_mtart FOR mara-mtart.
SELECTION-SCREEN: END OF BLOCK b1.

START-OF-SELECTION.
PERFORM obtener_datos.
PERFORM catalogo_alv.
PERFORM llamar_alv.

FORM obtener_datos.
* Extracción de datos de materiales.
SELECT mara~matnr
maktx
ersda
mtart
matkl
meins
gewei
FROM mara INNER JOIN makt
ON mara~matnr EQ makt~matnr
INTO TABLE lt_lista
WHERE mara~matnr IN so_matnr
AND ersda IN so_ersda
AND mtart IN so_ersda
AND spras EQ sy-langu.

* Inicio modif. 29.01.2015
* Extracción de denominaciones de tipo de material.
SELECT mtart
mtbez
FROM t134t
INTO TABLE lt_mtart
WHERE spras EQ sy-langu.

* Extracción de denominaciones de Gpo. Artículos.
SELECT matkl
wgbez
FROM t023t
INTO TABLE lt_matkl
WHERE spras EQ sy-langu.

LOOP AT lt_lista.
READ TABLE lt_lista WITH KEY mtart = lt_lista-mtart.
IF sy-subrc EQ 0.
MODIFY lt_lista INDEX sy-tabix TRANSPORTING mtbez.
ENDIF.

READ TABLE lt_matkl WITH KEY matkl = lt_lista-matkl.
IF sy-subrc EQ 0.
ENDIF.
ENDLOOP.
* Final modif. 29.01.2015
ENDFORM. " OBTENER_DATOS

En el debug se muestran ya las 2 columnas (ya están en el catálogo) que me piden, pero no hay datos. Hice lo del MODIFY, pero creo que no es eso. No se como unir datos de 2 o mas tablas internas

Espero puedan ayudarme.

Saludos.
Responder Con Cita