2017-09-25 3 views
2

Je crée une grille de sortie ALV en utilisant la classe cl_gui_alv_grid. L'une des colonnes du tableau de sortie est définie comme une case à cocher en utilisant l'enregistrement correspondant du fieldcatalog:Cocher les cases dans la grille de sortie ALV comme sélectionnée

ls_fcat-checkbox = 'X'. 
ls_fcat-edit = 'X'. 

enter image description here

Pour tous les enregistrements de la colonne qui contient les cases à cocher, ils sont tous ensemble comme non sélectionné. Ma question est quelle logique puis-je implémenter afin que pour certaines des lignes, les cases à cocher soient définies comme sélectionnées quand j'affiche l'ALV.

Répondre

4

Si vous souhaitez cocher la case en fonction des données initialement affichées dans la grille alv, remplissez simplement le champ outtab checkbox avec abap_true (= 'X') si la condition correspond. Si vous préférez et non, utilisez le paramètre case à cocher du champ fieldcatalog, vous verrez simplement 'X' pour vérifié et '' pour non vérifié.

Si vous souhaitez définir la case à cocher en fonction des entrées utilisateur, après avoir édité certains champs dans la grille ALV, utilisez les éléments suivants ALV événements de la grille pour changer outtab:

METHODS: 
     handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid 
     IMPORTING er_data_changed, 

     handle_data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_grid, "executed only if no errors, outtab holds changed data 

J'ai aussi trouvé quelques commentaires que j'ai fait , quand j'ai dû faire face à ces événements

*&---------------------------------------------------------------------* 
*&  Method handle_data_changed 
*&---------------------------------------------------------------------* 
*  raised when at least one cell is modified in the ALV 
*  - modified entries are not stored in gt_outtab yet, but er_data_changed object 
*  - mt_good_cells holds every changed field thats valid according to type declaration 
*----------------------------------------------------------------------* 
*&---------------------------------------------------------------------* 
*&  Method handle_data_changed_finished 
*&---------------------------------------------------------------------* 
*  - raised when data validation is valid 
*  - NOW outtab holds valid changed data 
*----------------------------------------------------------------------* 
+0

Oui, je voulais montrer certaines des lignes comme vérifiées le premier moment où l'ALV a été affiché. J'ai rempli le outtab et c'est ok maintenant. Je vous remercie –