Recherche…


Créer et afficher une ALV

Cet exemple dépeint la création ALV la plus simple à l'aide de la classe cl_salv_table et aucune option de formatage supplémentaire. Des options de formatage supplémentaires seraient incluses après le bloc TRY ENDTRY et avant l' alv->display( ) la alv->display( ) .

Tous les exemples suivants utilisant l'approche Objets ABAP pour la création d'ALV utiliseront cet exemple comme point de départ.

DATA: t_spfli       TYPE STANDARD TABLE OF spfli,
      alv           TYPE REF TO cl_salv_table,
      error_message TYPE REF TO cx_salv_msg.

" Fill the internal table with example data
SELECT * FROM spfli INTO TABLE t_spfli.

" Fill ALV object with data from the internal table
TRY.
    cl_salv_table=>factory(
      IMPORTING
        r_salv_table = alv
      CHANGING
        t_table      = t_spfli ).
  CATCH cx_salv_msg INTO error_message.
    " error handling
ENDTRY.

" Use the ALV object's display method to show the ALV on the screen
alv->display( ).

Optimiser la largeur de colonne ALV

Cet exemple montre comment optimiser la largeur de la colonne afin que les en-têtes de colonne et les données ne soient pas tronqués.

alv->get_columns( )->set_optimize( ).

Masquer les colonnes dans un ALV

Cet exemple masque le MANDT (client) de l'ALV. Notez que le paramètre passé à get_column( ) doit être mis en majuscule pour que cela fonctionne.

alv->get_columns( )->get_column( 'MANDT' )->set_visible( if_salv_c_bool_sap=>false ).

Renommer les en-têtes de colonne dans une ALV

Le texte de la colonne peut changer lors du redimensionnement horizontal d'une colonne. Il existe trois méthodes pour y parvenir:

Nom de la méthode Longueur maximale du cap
set_short_text dix
set_medium_text 20
set_long_text 40

L'exemple suivant montre l'utilisation des trois. Un objet column est déclaré et instancié comme référence au résultat de alv->get_columns( )->get_column( 'DISTID' ) . Le nom de la colonne doit être en majuscules. Ceci afin que le chaînage de cette méthode ne soit appelé qu'une fois dans son instanciation, au lieu d'être exécuté à chaque fois qu'un en-tête de colonne est modifié.

DATA column TYPE REF TO cl_salv_column.
column = alv->get_columns( )->get_column( 'DISTID' ).

column->set_short_text( 'Dist. Unit' ).
column->set_medium_text( 'Unit of Distance' ).
column->set_long_text( 'Mass Unit of Distance (kms, miles)' ).

Activer la fonctionnalité de la barre d'outils ALV

L'appel de méthode suivant permet d'utiliser de nombreuses fonctionnalités avancées telles que le tri, le filtrage et l'exportation de données.

alv->get_functions( )->set_all( ).

Activation de chaque autre rangée de lignes dans ALV

Cette méthode augmente la lisibilité en donnant des lignes consécutives en alternant les nuances de couleur d'arrière-plan.

alv->get_display_settings( )->set_striped_pattern( if_salv_c_bool_sap=>true ).

Définition du titre d'une ALV affichée

Par défaut, lorsqu'une ALV est affichée, le titre en haut est uniquement le nom du programme. Cette méthode permet à l'utilisateur de définir un titre de 70 caractères maximum. L'exemple suivant montre comment définir un titre dynamique qui affiche le nombre d'enregistrements affichés.

alv->get_display_settings( )->set_list_header( |Flight Schedule - { lines( t_spfli ) } records| ).


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow