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 :confused: Espero puedan ayudarme. Saludos. |
Añadir campos en ALV
Hola tabi.rivero
No tendría caso corregirte pues es algo básico y muy importante en cualquier desarrollo las operaciones con tablas internas, mejor te paso un link del que te puedes aprender, practicar y debugear: Sirve de mucho, lo que no entiendas presiona F1, lee la ayuda, realiza muchos ejercicios y debugea, no queda de otra Suerte Saludos |
hola
Hola,
Si, como dicen arriba deberías debuguearlo. Pero fijate que el mayor problema está aca: LOOP AT lt_lista. READ TABLE lt_lista WITH KEY mtart = lt_lista-mtart. ***** aca tenes que leer la otra tabla, no lt_lista ******** 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. ******* aca te falta pasar el valor a lt_lista ********** ENDIF. ENDLOOP |
Husos Horarios son GMT. La hora en este momento es 07:18:12. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web