Les caractéristiques communes souhaitées de 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, il faut faire beaucoup d'efforts de codage. Pour éviter cela, nous pouvons utiliser un concept appelé ABAP List Viewer (ALV).
Dans ce tutoriel, vous apprendrez:
- Rapport simple
- Rapport de bloc
- Rapports hiérarchiques
- Afficher les variantes
Chacun de ces rapports fournit des modules de fonction qui aident à produire la sortie souhaitée sans trop d'effort. Regardons-les en détail -
Rapport simple
Les modules fonctionnels importants de ce rapport sont:
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Ce module fonction permet de renseigner un catalogue de champs indispensable pour afficher les 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 comme paramètre (I_structure_name) dans 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 détails requis dans le tableau interne
Les paramètres importants dans sont:
1. Exporter:
- I_program_name: identifiant du rapport
- I_internal_tabname: la table de sortie interne
- I_inclname: inclure ou le nom du rapport où tous les formulaires dynamiques sont traités.
2. Changement
- ct_fieldcat: une table interne de type SLIS_T_FIELDCAT_ALV qui est déclarée dans le pool de type 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
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: routine dans laquelle un utilisateur peut définir son propre statut pf ou modifier la fonctionnalité du statut pf existant.
- I_callback_user_command: routine où les codes de fonction sont manipulés.
- 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 à imprimer (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 formulaires correspondants.
2. Tableaux:
- une. t_outtab: table interne avec les données à sortir
REUSE_ALV_EVENTS_GET:
Renvoie la table des événements possibles pour un type de liste
1. Importation:
Et_Events: La table des événements est retournée avec tous les événements CALLBACK possibles pour le type de liste spécifié (colonne 'NAME'). 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 à partir de la table des événements, le champ 'FORM' rempli et l'entrée modifiée à l'aide des constantes du pool de types SLIS.
2. Exportation:
I_list_type: 0 = liste simple REUSE_ALV_LIST_DISPLAY
1 = liste hiérarchique séquentielle REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = simple liste de blocs REUSE_ALV_BLOCK_LIST_APPEND
3 = liste hiérarchique-séquentielle REUSE_ALV_BLOCK_PIST_HS
REUSE_ALV_GRID_DISPLAY
Une nouvelle fonction de la version ABAP4.6, pour afficher les résultats en 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 / de 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. Si vous n'êtes pas sûr, la liste est la meilleure option
REUSE_ALV_COMMENTARY_WRITE
Ceci est utilisé dans l'événement Haut de page pour imprimer les en-têtes et autres commentaires de la liste.
Paramètres importants
- It_list_commentary: Table interne avec les en-têtes de type slis_t_listheader.
Cette table interne comporte trois champs:
- Typ: 'H' - en-tête, 'S' - sélection, 'A' - action
- Clé: uniquement lorsque le type est «S».
- Info: le texte à imprimer
Rapport de bloc
Cela ressemble à un rapport simple, mais ce rapport ne dispose que des 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 en tant que 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.Export:
- is_layout: paramètres de mise en page pour le bloc
- it_fieldcat: catalogue de champs
- I_tabname: nom de 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 avec les données ajoutées par la fonction ci-dessus.
Paramètres: Tous les paramètres sont facultatifs.
Rapports hiérarchiques
L'affichage hiérarchique est utilisé pour afficher les données associées. Comme la commande client et les détails de l'article. Ici, les détails de la commande client peuvent être les données d'en-tête alors que les articles de la commande client peuvent être les données d'article.
Le module fonction utilisé pour cela est
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Export:
- 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 du programme contenant les données de sortie du niveau hiérarchique le plus élevé.
- I_tabname_item: Nom de la table interne du programme contenant les données de sortie du niveau hiérarchique le plus bas.
- Is_keyinfo: Cette structure contient les noms de champs d'en-tête et de table d'éléments qui lient les deux tables (clé partagée).
les tables
- t_outtab_header: Table d'en-tête avec les données à sortir
- t_outtab_item: Nom de la table interne du programme contenant les données de sortie du niveau hiérarchique le plus bas.
Toutes les définitions de tables, structures et constantes internes sont déclarées dans un pool de types appelé SLIS. Cette table interne peut être remplie automatiquement à l'aide de REUSE_ALV_FIELDCATALOG_MERGE '.
Afficher les variantes
- 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 qui peuvent être enregistrées est contrôlé par le paramètre i_save qui est passé 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
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
C'est tout à la programmation ABAP-ALV!