Lo vamos a hacer con un ejemplo de código que como mejor se entiende. En este caso lo que vamos a hacer es añadir nuevas columnas al informe, ademas completaremos los valores que tendrán estás columnas. La funcion que vamos a utilizar para realizar la modificación es REUSE_ALV_GRID_LAYOUT_INFO_SET.
**Modificamos la
estructura de salida.
PERFORM
modificar_gt_alv.
rs_selfield-refresh = 'X'.
*&---------------------------------------------------------------------*
*& Form modificar_gt_alv
*&---------------------------------------------------------------------*
* Modificamos gt_alv
*----------------------------------------------------------------------*
FORM modificar_gt_alv.
DATA i_field LIKE i_fieldcat
WITH HEADER LINE.
LOOP AT i_fieldcat INTO i_field.
CASE i_field-fieldname.
WHEN 'EFFECTIVITY'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
WHEN 'GRUPO_F'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
WHEN 'SUBMOD'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
WHEN 'MSN'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
WHEN 'PNR'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
WHEN 'SN'.
i_field-no_out = space.
MODIFY i_field INDEX
sy-tabix TRANSPORTING no_out.
ENDCASE.
APPEND i_field.
ENDLOOP.
CLEAR i_fieldcat.
REFRESH i_fieldcat.
LOOP AT i_field.
APPEND i_field TO i_fieldcat.
ENDLOOP.
LOOP AT i_gt_alv WHERE SEL =
'X'.
READ TABLE gt_importar WITH
KEY DOKNR = i_gt_alv-DOKNR_D.
IF sy-subrc = 0.
i_gt_alv-EFFECTIVITY_TYPE =
gt_importar-efectividad.
i_gt_alv-GRUPO_FLOTA =
gt_importar-zzcgrupo_flotas.
i_gt_alv-SUBMODELO = gt_importar-zzcsubmodelo.
i_gt_alv-MSN =
gt_importar-zzcmsn.
MODIFY i_gt_alv INDEX
sy-tabix
TRANSPORTING
EFFECTIVITY_TYPE
GRUPO_FLOTA
SUBMODELO
MSN.
ENDIF.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_SET'
EXPORTING
* IS_LAYOUT =
IT_FIELDCAT = i_fieldcat
* IT_SORT =
* IT_FILTER =
* IS_GRID_SCROLL =
*
IS_PRINT =
.
ENDFORM.
No hay comentarios:
Publicar un comentario