je vous propose ici une manière rapide de faire un ALVGRID rapidement en utilisant la RFC REUSE_ALV_GRID_DISPLAY. Pour cela on a les étapes suivantes :
- On déclare les objets (types) spécifiques à la RFC REUSE_ALV_GRID_DISPLAY.
- On charge notre table interne.
- On créée le catalogue de nos colonnes et champs correspondants à notre table interne.
- On définit notre layout.
- On appelle la RFC REUSE_ALV_GRID_DISPLAY pour afficher l'ALV
Voici le code
REPORT zjfoeasyalv3.
*Déclaration obligatoie pour notre démo.
DATA: mygrid TYPE REF TO cl_gui_alv_grid.
DATA: it_cat TYPE lvc_t_fcat.
DATA:
itab_user_addrp_cat TYPE slis_t_fieldcat_alv,
wa_user_addr_cat TYPE LINE OF slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv
.
* on remplit notre table interne
DATA: itab_user_addrp LIKE user_addrp OCCURS 100 WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab_user_addrp
FROM user_addrp .
* Puis on ajoute un a un chaque champs
* cela permet de mapper le nom du champs avec un text....
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'BNAME'.
wa_user_addr_cat-seltext_s = 'NAME'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'PERSNUMBER'.
wa_user_addr_cat-seltext_s = 'Num'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'DATE_FROM'.
wa_user_addr_cat-seltext_s = 'Date from'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'NAME_FIRST'.
wa_user_addr_cat-seltext_s = 'First name'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'NAME_LAST'.
wa_user_addr_cat-seltext_s = 'Last Name'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
CLEAR wa_user_addr_cat.
wa_user_addr_cat-fieldname = 'NAME_TEXT'.
wa_user_addr_cat-seltext_s = 'Displayed name.'.
APPEND wa_user_addr_cat TO itab_user_addrp_cat.
* et enfin on initialise un layout
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
* Et on a plus qu'à appeler la RFC
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_callback_program = g_repid
i_save = 'U'
it_fieldcat = itab_user_addrp_cat
is_layout = gs_layout
TABLES
t_outtab = itab_user_addrp
.