Αναφορές ALV σε SAP Εκμάθηση – Προβολή λίστας ABAP
Τα κοινά επιθυμητά χαρακτηριστικά οποιασδήποτε αναφοράς είναι η "στοίχιση στηλών", η ταξινόμηση, το φιλτράρισμα, τα υποσύνολα, τα σύνολα κ.λπ. Για να τα εφαρμόσετε από την αρχή, πρέπει να καταβάλετε μεγάλη προσπάθεια κωδικοποίησης. Για να το αποφύγουμε αυτό μπορούμε να χρησιμοποιήσουμε μια έννοια που ονομάζεται ABAP List Viewer (ALV).
Κάθε μία από αυτές τις αναφορές παρέχει λειτουργικές μονάδες που βοηθούν στην παραγωγή του επιθυμητού αποτελέσματος χωρίς μεγάλη προσπάθεια. Ας τα δούμε αναλυτικά -
Απλή αναφορά
Σημαντικές λειτουργικές μονάδες σε αυτές αναφέρουν είναι -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Αυτή η λειτουργική μονάδα χρησιμοποιείται για τη συμπλήρωση ενός καταλόγου πεδίου που είναι απαραίτητος για την εμφάνιση των δεδομένων στο ALV.
Εάν τα δεδομένα εξόδου προέρχονται από έναν ενιαίο πίνακα λεξικών και έχουν επιλεγεί όλες οι στήλες, τότε δεν χρειάζεται να δημιουργήσουμε αποκλειστικά τον κατάλογο πεδίων. Αρκεί να αναφέρετε το όνομα του πίνακα ως παράμετρο (I_structure_name) στο REUSE_ALV_LIST_DISPLAY. Αλλά σε άλλες περιπτώσεις πρέπει να το δημιουργήσουμε.
Σημείωση: Ο κατάλογος πεδίου μπορεί να συμπληρωθεί χειροκίνητα, συμπληρώνοντας όλες τις απαιτούμενες λεπτομέρειες στον εσωτερικό πίνακα
Σημαντικές παράμετροι είναι:
1. Εξαγωγή:
- I_program_name : Αναγνωριστικό αναφοράς
- I_internal_tabname : ο εσωτερικός πίνακας εξόδου
- I_inclname : περιλαμβάνει ή το όνομα της αναφοράς όπου γίνεται ο χειρισμός όλων των δυναμικών φορμών.
2. Αλλαγή
- ct_fieldcat : α εσωτερικό τραπέζι με τον τύπο SLIS_T_FIELDCAT_ALV που δηλώνεται στην ομάδα τύπου SLIS.
REUSE_ALV_LIST_DISPLAY
Αυτή είναι η λειτουργική μονάδα που εκτυπώνει τα δεδομένα.
Οι σημαντικές παράμετροι είναι:
1. Εξαγωγή:
- I_callback_program : Αναγνωριστικό αναφοράς
- I_bypassing_buffer : 'X'
- I_buffer_active : " "
- I_callback_pf_status_set : ρουτίνα όπου ένας χρήστης μπορεί να ορίσει τη δική του κατάσταση pf ή να αλλάξει τη λειτουργικότητα της υπάρχουσας κατάστασης pf.
- I_callback_user_command : ρουτίνα όπου γίνεται ο χειρισμός των κωδικών συναρτήσεων.
- I_structure name : όνομα του πίνακα του λεξικού
- Is_Layout : δομή για να ορίσετε τη διάταξη της αναφοράς
- It_fieldcat: εσωτερικός πίνακας με τη λίστα όλων των πεδίων και των χαρακτηριστικών τους που πρόκειται να εκτυπωθούν (αυτός ο πίνακας μπορεί να συμπληρωθεί αυτόματα από τη συνάρτηση)
- It_events : εσωτερικός πίνακας με μια λίστα με όλα τα πιθανά συμβάντα του ALV και τα αντίστοιχα ονόματα φόρμας.
2. Πίνακες:
- ένα. t_outtab : εσωτερικός πίνακας με τα δεδομένα που πρέπει να εξάγονται
ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΤΕ_ALV_EVENTS_GET:
Επιστρέφει πίνακα πιθανών συμβάντων για τύπο λίστας aa
1. Εισαγωγή:
Et_Events :Ο πίνακας συμβάντων επιστρέφεται με όλα τα πιθανά συμβάντα CALLBACK για τον καθορισμένο τύπο λίστας (στήλη 'NAME'). Για την επεξεργασία συμβάντων από το Callback, πρέπει να συμπληρωθεί το πεδίο «FORM». Εάν το πεδίο έχει αρχικοποιηθεί, το συμβάν αγνοείται. Η καταχώριση μπορεί να διαβαστεί από τον πίνακα συμβάντων, το πεδίο 'FORM' συμπληρωμένο και η καταχώρηση να τροποποιηθεί χρησιμοποιώντας σταθερές από τον τύπο pool SLIS.
2. Εξαγωγή:
I_list_type: 0 = απλή λίστα REUSE_ALV_LIST_DISPLAY
1 = ιεραρχική-διαδοχική λίστα REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = απλή λίστα μπλοκ REUSE_ALV_BLOCK_LIST_APPEND
3 = ιεραρχική διαδοχική λίστα μπλοκ REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Μια νέα λειτουργία από την έκδοση ABAP4.6, για εμφάνιση των αποτελεσμάτων σε πλέγμα και όχι σε προεπισκόπηση.
Παράμετροι : ίδια με την reuse_alv_list_display
Σημείωση: Το πλέγμα δεν μπορεί να χειριστεί υψηλούς τόμους. Λειτουργίες όπως η ταξινόμηση, η κύλιση προς τα κάτω καταναλώνει πολλούς πόρους / χρόνο εάν ο όγκος των δεδομένων που θα εμφανιστούν είναι υψηλός. Δεν υπάρχει σαφής ορισμός, έτσι ώστε αν ο όγκος των δεδομένων είναι X, επιλέξτε λίστα ή πλέγμα, αλλά ο προγραμματιστής πρέπει να λάβει μια κλήση με βάση την εμπειρία του. Εάν δεν είστε σίγουροι, τότε η λίστα είναι η καλύτερη επιλογή
REUSE_ALV_COMMENTARY_WRITE
Αυτό χρησιμοποιείται στο συμβάν Top-of-page για την εκτύπωση των επικεφαλίδων και άλλων σχολίων για τη λίστα.
Σημαντικές Παράμετροι
- It_list_commentary : Εσωτερικός πίνακας με τις επικεφαλίδες του τύπου slis_t_listheader.
Αυτός ο εσωτερικός πίνακας έχει τρία πεδία:
- Τύπος : 'H' – κεφαλίδα, 'S' – επιλογή, 'A' – ενέργεια
- Κλειδί: μόνο όταν ο τύπος είναι "S".
- Πληροφορίες : το κείμενο που θα εκτυπωθεί
Αποκλεισμός αναφοράς
Αυτό μοιάζει με μια απλή αναφορά, αλλά αυτή η αναφορά έχει μόνο τις δυνατότητες ταξινόμησης και φιλτραρίσματος. Αυτή η αναφορά χρησιμοποιείται εάν πρέπει να εμφανίσετε περισσότερες από μία αναφορές στην έξοδο. Από τεχνική άποψη, εάν έχετε πολλούς εσωτερικούς πίνακες με δεδομένα που θα εμφανίζονται ως ξεχωριστά μπλοκ, τότε πάμε για αναφορά μπλοκ του ALV.
Οι σημαντικές λειτουργίες που χρησιμοποιούνται για τη δημιουργία αυτής της αναφοράς είναι:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Αυτή η λειτουργική μονάδα χρησιμοποιείται για τον ορισμό της προεπιλεγμένης κατάστασης gui κ.λπ. Οι παράμετροι είναι παρόμοιες με αυτήν που χρησιμοποιείται στο reuse_alv_list_display ή στο reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Αυτή η λειτουργική μονάδα προσθέτει τα δεδομένα στο μπλοκ.
Σημαντικές Παράμετροι
1.Εξαγωγή:
- is_layout : ρυθμίσεις διάταξης για μπλοκ
- it_fieldcat : κατάλογος πεδίων
- I_tabname : εσωτερικό όνομα πίνακα με όλα τα πιθανά συμβάντα
2. Πίνακες:
- t_outtab : εσωτερικός πίνακας με δεδομένα εξόδου.
REUSE_ALV_BLOCK_LIST_DISPLAY
Αυτή η λειτουργική μονάδα εμφανίζει τη λίστα με τα δεδομένα που επισυνάπτονται από την παραπάνω λειτουργία.
Παράμετροι: Όλες οι παράμετροι είναι προαιρετικές.
Ιεραρχικές Αναφορές
Η ιεραρχική εμφάνιση χρησιμοποιείται για την εμφάνιση δεδομένων που σχετίζονται. Όπως η παραγγελία και οι λεπτομέρειες του προϊόντος. Εδώ οι λεπτομέρειες παραγγελίας πωλήσεων μπορεί να είναι τα δεδομένα κεφαλίδας, ενώ τα στοιχεία στην παραγγελία πωλήσεων μπορεί να είναι τα δεδομένα του είδους
Η λειτουργική μονάδα που χρησιμοποιείται για αυτό είναι
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Εξαγωγή:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header : Όνομα του εσωτερικού πίνακα του προγράμματος που περιέχει τα δεδομένα εξόδου του υψηλότερου επιπέδου ιεραρχίας.
- I_tabname_item : Όνομα του εσωτερικού πίνακα του προγράμματος που περιέχει τα δεδομένα εξόδου του χαμηλότερου επιπέδου ιεραρχίας.
- Is_keyinfo : Αυτή η δομή περιέχει τα ονόματα πεδίων του πίνακα κεφαλίδων και στοιχείων που συνδέουν τους δύο πίνακες (κοινόχρηστο κλειδί).
πίνακες
- t_outtab_header : Πίνακας κεφαλίδων με δεδομένα προς έξοδο
- t_outtab_item : Όνομα του εσωτερικού πίνακα του προγράμματος που περιέχει τα δεδομένα εξόδου του χαμηλότερου επιπέδου ιεραρχίας.
Όλοι οι ορισμοί των εσωτερικών πινάκων, δομών και σταθερών δηλώνονται σε μια ομάδα τύπων που ονομάζεται SLIS. Αυτός ο εσωτερικός πίνακας μπορεί να συμπληρωθεί αυτόματα χρησιμοποιώντας REUSE_ALV_FIELDCATALOG_MERGE'.
Παραλλαγές εμφάνισης
- Οι παραλλαγές εμφάνισης χρησιμοποιούνται για τον ορισμό των προεπιλεγμένων ιδιοτήτων μιας εξόδου alv όπως κριτήρια ταξινόμησης, κριτήρια φιλτραρίσματος, άθροιση και υποσύνολο κ.λπ.
- Οι παραλλαγές εμφάνισης μπορεί να είναι συγκεκριμένες για τον χρήστη και τυπικές (οι τυπικές παραλλαγές μπορούν να χρησιμοποιηθούν από οποιονδήποτε χρήστη)
- Το είδος των παραλλαγών οθόνης που μπορούν να αποθηκευτούν ελέγχεται από την παράμετρο i_save που μεταβιβάζεται στις λειτουργικές μονάδες reuse_alv_list_display / reuse_alv_grid_display
- Μπορείτε να δώσετε μια επιλογή στην οθόνη επιλογής για να επιλέξετε ποια παραλλαγή εμφάνισης θα χρησιμοποιηθεί
Οι κοινές λειτουργικές μονάδες που σχετίζονται με την επιλογή / επικύρωση παραλλαγών οθόνης είναι
- Reuse_alv_variant_default_get
- Επαναχρησιμοποίηση_alv_variant_f4
- Reuse_alv_variant_existence
Αυτό είναι όλο για ABAP – Προγραμματισμός ALV!