Αναφορές ALV στο SAP Tutorial - ABAP List Viewer

Πίνακας περιεχομένων:

Anonim

Τα κοινά επιθυμητά χαρακτηριστικά οποιασδήποτε αναφοράς είναι η "ευθυγράμμιση στηλών", η ταξινόμηση, το φιλτράρισμα, τα αθροίσματα, τα σύνολα κ.λπ. Για να το αποφύγουμε αυτό μπορούμε να χρησιμοποιήσουμε μια ιδέα που ονομάζεται ABAP List Viewer (ALV).

Σε αυτό το σεμινάριο θα μάθετε:

  • Απλή αναφορά
  • Αποκλεισμός αναφοράς
  • Ιεραρχικές εκθέσεις
  • Παραλλαγές οθόνης

Κάθε μία από αυτές τις αναφορές παρέχει λειτουργικές μονάδες που βοηθούν στην παραγωγή επιθυμητής παραγωγής χωρίς πολλή προσπάθεια. Ας τα δούμε αναλυτικά -

Απλή αναφορά

Σημαντικές λειτουργικές ενότητες σε αυτές τις αναφορές είναι -

  • Επαναχρησιμοποίηση_alv_fieldcatalog_merge
  • Επαναχρησιμοποίηση_alv_list_display
  • Επαναχρησιμοποίηση_alv_events_get
  • Επαναχρησιμοποίηση_alv_grid_display
  • Επαναχρησιμοποίηση_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: ρουτίνα όπου χειρίζονται οι κωδικοί λειτουργίας.
  • Όνομα δομής: όνομα του πίνακα λεξικού
  • Is_Layout: δομή για να ορίσετε τη διάταξη της αναφοράς
  • It_fieldcat: εσωτερικός πίνακας με τη λίστα όλων των πεδίων και των χαρακτηριστικών τους που πρόκειται να εκτυπωθούν (αυτός ο πίνακας μπορεί να συμπληρωθεί αυτόματα από τη συνάρτηση)
  • It_events: εσωτερικός πίνακας με μια λίστα όλων των πιθανών συμβάντων του ALV και των αντίστοιχων ονομάτων φόρμας.

2. Πίνακες:

  • ένα. t_outtab: εσωτερικός πίνακας με δεδομένα προς έξοδο

REUSE_ALV_EVENTS_GET:
Επιστρέφει τον πίνακα πιθανών συμβάντων για έναν τύπο λίστας
1. Εισαγωγή:
Et_Events: Ο πίνακας συμβάντων επιστρέφεται με όλα τα πιθανά συμβάντα CALLBACK για τον καθορισμένο τύπο λίστας (στήλη 'ΟΝΟΜΑ'). Για εκδηλώσεις που θα υποβληθούν σε επεξεργασία από το Callback, πρέπει να συμπληρωθεί το πεδίο «FORM». Εάν το πεδίο αρχικοποιηθεί, το συμβάν αγνοείται. Η καταχώριση μπορεί να διαβαστεί από τον πίνακα συμβάντων, το πεδίο «ΦΟΡΜΑ» συμπληρωμένο και την καταχώριση τροποποιήθηκε χρησιμοποιώντας σταθερές από τον τύπο συγκέντρωσης 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_END_APL_BLOCK
REUSE_ALV_GRID_DISPLAY
Μια νέα συνάρτηση από την έκδοση ABAP4.6, για την εμφάνιση των αποτελεσμάτων στο πλέγμα και όχι μια προεπισκόπηση.
Παράμετροι: ίδιο με το reuse_alv_list_display

Σημείωση: Το πλέγμα δεν μπορεί να χειριστεί μεγάλους όγκους. Λειτουργίες όπως ταξινόμηση, κύλιση προς τα κάτω καταναλώνει πολλούς πόρους / χρόνο εάν ο όγκος των δεδομένων που θα εμφανιστούν είναι υψηλός Δεν υπάρχει σαφής ορισμός έτσι ώστε εάν ο όγκος των δεδομένων είναι X πηγαίνει για λίστα ή πλέγμα, αλλά ο προγραμματιστής πρέπει να λάβει μια κλήση με βάση την εμπειρία του. Εάν δεν είστε σίγουροι, τότε η λίστα είναι η καλύτερη επιλογή

REUSE_ALV_COMMENTARY_WRITE
Χρησιμοποιείται στο συμβάν στην κορυφή της σελίδας για να εκτυπώσει τις επικεφαλίδες και άλλα σχόλια για τη λίστα.
Σημαντικές παράμετροι

  • It_list_commentary: Εσωτερικός πίνακας με τις επικεφαλίδες του τύπου slis_t_listheader.

Αυτός ο εσωτερικός πίνακας έχει τρία πεδία:

  1. Τύπος: «H» - κεφαλίδα, «S» - επιλογή, «A» - δράση
  2. Κλειδί: μόνο όταν ο τύπος είναι «S».
  3. Πληροφορίες: το κείμενο που θα εκτυπωθεί

Αποκλεισμός αναφοράς

Αυτό μοιάζει με μια απλή αναφορά, αλλά αυτή η αναφορά έχει τα χαρακτηριστικά της ταξινόμησης και του φιλτραρίσματος μόνο. ​​Αυτή η αναφορά χρησιμοποιείται εάν πρέπει να εμφανίσετε περισσότερες από μία αναφορές στην έξοδο. Από τεχνικής απόψεως, εάν έχετε πολλούς εσωτερικούς πίνακες με δεδομένα που θα εμφανίζονται ως ξεχωριστά μπλοκ, τότε πηγαίνουμε για αναφορά μπλοκ του 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
  • Εκδηλώσεις
  • 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
  • Μπορείτε να δώσετε μια επιλογή στην οθόνη επιλογής για να επιλέξετε ποια παραλλαγή οθόνης θα χρησιμοποιηθεί

Οι κοινές λειτουργικές ενότητες που σχετίζονται με την επιλογή / επικύρωση παραλλαγών οθόνης είναι

  1. Επαναχρησιμοποίηση_alv_variant_default_get
  2. Επαναχρησιμοποίηση_άλv_variant_f4
  3. Επαναχρησιμοποίηση_αλv_variant_ υπάρχουσα

Όλα αυτά στον προγραμματισμό ABAP- ALV!