Afficher un ALV objet sans créer d'écran (screen painter)
Lassé de créer un écran ne contenant qu'un custom control, avec PBO et PAI rachitiques uniquement pour afficher votre grid ALV objet ? La classe cl_gui_container contient nativement des attributs qui permettent de s'en passer ! Encore faut-il le savoir, ce qui est maintenant votre cas ;-)
En effet, au lieu de créer tout d'abord un objet container puis d'indiquer cet objet en parent de l'objet alv, utilisez directement cl_gui_container=>screen0 comme parent pour votre ALV !
PROGRAM test. DATA : o_alv TYPE REF TO cl_gui_alv_grid, t_sflight TYPE TABLE OF sflight. * Definition d'un écran de sélection vide SELECTION-SCREEN : BEGIN OF SCREEN 1001, END OF SCREEN 1001. * Remplissage de la table de données pour l'ALV SELECT * FROM sflight INTO TABLE t_sflight. * Creation de l'objet alv directement rattaché au premier screen CREATE OBJECT o_alv EXPORTING i_parent = cl_gui_container=>screen0. * Passage des données a l'ALV CALL METHOD o_alv->set_table_for_first_display EXPORTING i_structure_name = 'SFLIGHT' CHANGING it_outtab = t_sflight. * Affichage de l'écran, l'ALV apparait ! CALL SELECTION-SCREEN 1001.
Cette astuce améliore au passage la portabilité de votre code (pas de screen/status/title à gérer).