Tutoriel sur les rapports ALV dans SAP - Afficheur de liste ABAP

Les fonctionnalités communes souhaitées dans tout rapport sont « l’alignement des colonnes », le tri, le filtrage, les sous-totaux, les totaux, etc. Pour les implémenter à partir de zéro, de nombreux efforts de codage doivent être déployés. Pour éviter cela, nous pouvons utiliser un concept appelé ABAP List Viewer (ALV).

Chacun de ces rapports fournit modules de fonction ce qui aide à produire le résultat souhaité sans trop d’effort. Regardons-les en détail –

Rapport simple

Modules fonctionnels importants dans ces rapport sont -

  • Reuse_alv_fieldcatalog_merge
  • Réutilisation_alv_list_display
  • Réutilisation_alv_events_get
  • Réutilisation_alv_grid_display
  • Réutilisation_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

Ce module fonction permet d'alimenter un catalogue de champs indispensable à l'affichage des données dans ALV.

Si les données de sortie proviennent d’une seule table de dictionnaire et que toutes les colonnes sont sélectionnées, nous n’avons pas besoin de créer exclusivement le catalogue de champs. Il suffit de mentionner le nom de la table en paramètre (I_structure_name) dans le REUSE_ALV_LIST_DISPLAY. Mais dans d’autres cas, nous devons le créer.

Remarque : Fieldcatalog peut également être rempli manuellement en remplissant tous les champs requis.tails dans la table interne

Les paramètres importants sont :

1. Exporter :

  • I_program_name : identifiant du rapport
  • I_internal_tabname : la table de sortie interne
  • I_inclname : inclut ou le nom du rapport où tous les formulaires dynamiques sont gérés.

2. Changement

  • ct_fieldcat : un table interne avec le type SLIS_T_FIELDCAT_ALV qui est déclaré dans le pool de types SLIS.

REUSE_ALV_LIST_DISPLAY

C'est le module fonction qui imprime les données.

Les paramètres importants sont :

1. Exporter :

  • I_callback_program : identifiant du rapport
  • Je_contourne_buffer : 'X'
  • I_buffer_actif : ' '
  • I_callback_pf_status_set : routine où un utilisateur peut définir son propre statut pf ou modifier la fonctionnalité du statut pf existant.
  • I_callback_user_command : routine où sont gérés les codes fonctions.
  • I_structure name : nom de la table du dictionnaire
  • Is_Layout : structure pour définir la mise en page du rapport
  • It_fieldcat : table interne avec la liste de tous les champs et leurs attributs qui doivent être imprimés (cette table peut être renseignée automatiquement par la fonction)
  • It_events : table interne avec une liste de tous les événements possibles d'ALV et leurs noms de formulaire correspondants.

2. Tableaux :

  • un. t_outtab : table interne avec les données à sortir

REUSE_ALV_EVENTS_GET :

Renvoie un tableau des événements possibles pour un type de liste

1. Importer :

Et_Evénements :La table d'événements est renvoyée avec tous les événements CALLBACK possibles pour le type de liste spécifié (colonne 'NOM'). Pour que les événements soient traités par le Callback, leur champ 'FORM' doit être rempli. Si le champ est initialisé, l'événement est ignoré. L'entrée peut être lue dans la table des événements, le champ 'FORM' rempli et l'entrée modifiée à l'aide de constantes du pool de types SLIS.

2. Exporter :

I_list_type : 0 = liste simple REUSE_ALV_LIST_DISPLAY

1 = iciarchiliste cal-séquentielle REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = liste de blocage simple REUSE_ALV_BLOCK_LIST_APPEND

3 = iciarchiliste de blocage cal-séquentielle REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

Une nouvelle fonction de la version ABAP4.6, pour afficher les résultats sous forme de grille plutôt qu'en aperçu.

Paramètres : identiques à reuse_alv_list_display

Remarque : Grid ne peut pas gérer des volumes élevés. Des fonctions comme le tri, le défilement vers le bas consomment beaucoup de ressources/temps si le volume de données à afficher est élevé. Il n'y a pas de définition claire telle que si la quantité de données est X, optez pour une liste ou une grille, mais le développeur doit prendre un appel en fonction de son expérience. En cas de doute, la liste est la meilleure option

REUSE_ALV_COMMENTARY_WRITE

Ceci est utilisé dans l'événement Haut de page pour imprimer les titres et autres commentaires de la liste.

Paramètres importants

  • It_list_commentary : Table interne avec les rubriques de type slis_t_listheader.

Cette table interne comporte trois champs :

  1. Typ : 'H' – en-tête, 'S' – sélection, 'A' – action
  2. Clé : uniquement lorsque le type est 'S'.
  3. Info : le texte à imprimer

Bloquer le rapport

Cela ressemble à un simple rapport, mais ce rapport possède uniquement les fonctionnalités de tri et de filtrage. Ce rapport est utilisé si vous devez afficher plusieurs rapports sur la sortie. Techniquement parlant, si vous avez plusieurs tables internes avec des données à afficher sous forme de blocs séparés, nous optons pour le rapport de bloc d'ALV.

Les fonctions importantes utilisées pour créer ce rapport sont :

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

Ce module fonction est utilisé pour définir l'état de l'interface graphique par défaut, etc. Les paramètres sont similaires à ceux utilisés dans reuse_alv_list_display ou reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND

Ce module fonction ajoute les données au bloc.

Paramètres importants

1.Exporter :

  • is_layout : paramètres de mise en page pour le bloc
  • it_fieldcat : catalogue de champs
  • I_tabname : nom de la table interne avec tous les événements possibles

2.Tableaux :

  • t_outtab : table interne avec les données de sortie.

REUSE_ALV_BLOCK_LIST_DISPLAY

Ce module fonction affiche la liste des données ajoutées par la fonction ci-dessus.

Paramètres : Tous les paramètres sont optionnels.

Cliquez iciarchical Rapports

Cliquez iciarchiL'affichage cal est utilisé pour afficher les données liées. Comme la commande client et l'article details. Ici commande client details peut être les données d'en-tête tandis que les articles de la commande client peuvent être les données d'article

Le module fonction utilisé à cet effet est

REUSE_ALV_HIERSEQ_LIST_DISPLAY

Exportation:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_events
  • I_tabname_header : Nom de la table interne au programme contenant les données de sortie du niveau hiérarchique le plus élevé.
  • I_tabname_item : Nom de la table interne au programme contenant les données de sortie du niveau hiérarchique le plus bas.
  • Is_keyinfo : Cette structure contient les noms des champs d'en-tête et de table d'éléments qui relient les deux tables (clé partagée).

Tables

  • t_outtab_header : Table d'en-tête avec les données à sortir
  • t_outtab_item : Nom de la table interne au programme contenant les données de sortie du niveau hiérarchique le plus bas.

Toutes les définitions des tables, structures et constantes internes sont déclarées dans un pool de types appelé SLIS. Cette table interne peut être renseignée automatiquement en utilisant REUSE_ALV_FIELDCATALOG_MERGE'.

Variantes d'affichage

  • Les variantes d'affichage sont utilisées pour définir les propriétés par défaut d'une sortie alv comme les critères de tri, les critères de filtrage, le total et le sous-total, etc.
  • Les variantes d'affichage peuvent être spécifiques à l'utilisateur et standard (les variantes standard peuvent être utilisées par n'importe quel utilisateur)
  • Le type de variantes d'affichage pouvant être enregistrées est contrôlé par le paramètre i_save transmis dans les modules fonction reuse_alv_list_display / reuse_alv_grid_display
  • Vous pouvez fournir une option sur l'écran de sélection pour sélectionner la variante d'affichage à utiliser.

Les modules fonctionnels communs liés à la sélection/validation des variantes d'affichage sont

  1. Reuse_alv_variant_default_get
  2. Réutilisation_alv_variant_f4
  3. Réutilisation_alv_variant_existence

C'est tout pour ABAP – Programmation ALV !