2017-10-04 2 views
1

J'ai un rapport qui montre un ALV. Après avoir double-cliqué sur une certaine colonne, certains champs de l'ALV deviennent personnalisables. Ceci est fait en mettant l'attribut 'edit' de la ligne fieldcatalog-row pour la colonne à 'X'.Supprimer tout sélectionner avec ABAP pour un ALV après avoir rendu les champs modifiables

<fs_field_cat_line>-edit = 'X'. 

Quand je mets le fieldcatalog mis à jour, optimiser sa largeur et rafraîchir la ALV

* setting fieldcatalog 
lo_alv_grid->set_frontend_fieldcatalog(it_fieldcatalog = lt_field_catalog). 

* Optimizing column width 
ls_layout-cwidth_opt = 'X'. 
lo_alv_grid->set_frontend_layout(is_layout = ls_layout). 

* refresh ALV 
lo_alv_grid->refresh_table_display(). 

Le ALV obtient obtenir une nouvelle colonne au début qui peut être utilisé pour sélectionner plusieurs lignes, ou lorsque vous cliquez sur En haut, sélectionnez toutes les lignes.

'select all'-column

Comment puis-je désactiver cette colonne. Après l'actualisation, je ne veux pas que cette colonne apparaisse. J'ai essayé de regarder ce qui se passe avec le débogueur mais je n'arrive pas à le trouver.

EDIT: Après la mise en œuvre de la solution retenue ci-dessous, les changements ressembler à ceci:

* setting fieldcatalog 
lo_alv_grid->set_frontend_fieldcatalog(it_fieldcatalog = lt_field_catalog). 

* Optimizing column width 
ls_layout-cwidth_opt = 'X'. 

* Disabling selection column 
ls_layout-sel_mode = 'A'. 
ls_layout-no_rowmark = 'X'. 

* setting layout 
lo_alv_grid->set_frontend_layout(is_layout = ls_layout). 

* refresh ALV 
lo_alv_grid->refresh_table_display(). 

Répondre

2

Selon the documentation, vous devez

  • mis le drapeau NO_ROWMARK de la grille pour Xet
  • modifier le SEL_MODE réglage de la gri d soit A soit D. La valeur par défaut ' ' est interprétée comme B, AFAIR ignorant le drapeau NO_ROWMARK.