SAP Έλεγχος πίνακα ABAP με παραδείγματα

⚡ Έξυπνη Σύνοψη

SAP Το ABAP Table Control εμφανίζει έναν εσωτερικό πίνακα ως κυλιόμενο πλέγμα σε μια οθόνη ενσωματωμένη στην Οθόνη PainterΑυτή η σελίδα εξηγεί τα χαρακτηριστικά του, τη δήλωση CONTROLS, τον χειρισμό του δρομέα, τους βρόχους PBO και PAI και τα χαρακτηριστικά της στήλης.

  • Βασικός Ορισμός: Ένα στοιχείο ελέγχου πίνακα είναι ένας βελτιωμένος βρόχος βημάτων που εμφανίζει δεδομένα πίνακα με την εμφάνιση και την αίσθηση ενός πλέγματος εφαρμογής επιφάνειας εργασίας.
  • 🧰 Ενσωματωμένα χαρακτηριστικά: Η κύλιση, η αλλαγή μεγέθους στηλών, η αναδιάταξη στηλών, η επιλογή γραμμών και οι αποθηκευμένες ρυθμίσεις εμφάνισης διαχειρίζονται από το SAPγραφικό περιβάλλον χρήστη (gui frontend).
  • 📜 Κανόνας μίας γραμμής: Μια σειρά βρόχου βημάτων μπορεί να εκτείνεται σε πολλές γραμμές οθόνης, ενώ μια σειρά ελέγχου πίνακα πρέπει πάντα να χωράει σε μία γραμμή.
  • Δήλωση: ΕΛΕΓΧΟΙ ΠΛΗΚΤΡΟΛΟΓΗΣΤΕ TABLEVIEW ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΟΘΟΝΗ συνδέει το στοιχείο οθόνης με το πρόγραμμα ABAP.
  • 🎯 Χειρισμός δρομέα: Η επιλογή SET CURSOR τοποθετεί τον κέρσορα στο PBO και η επιλογή GET CURSOR διαβάζει το πεδίο και τη γραμμή στο PAI.
  • 🔁 Μεταφορά δεδομένων: ΒΡΟΧΟΣ ΣΕ … Η ΧΡΗΣΗ ΤΟΥ CONTROL εκτελείται στο PBO και ένας απλός ΒΡΟΧΟΣ ΣΕ PAI, και τα δεδομένα μετακινούνται μεταξύ της οθόνης και του εσωτερικού πίνακα μέσα σε αυτούς τους βρόχους.
  • 🎨 Δυναμικά χαρακτηριστικά: Ο πίνακας SCREEN και το Η δομή των -cols αλλάζει την ορατότητα και τη μορφοποίηση των στηλών κατά τον χρόνο εκτέλεσης.

SAP Έλεγχος τραπεζιού ABAP

Τι είναι ένα στοιχείο ελέγχου πίνακα στο SAP ABAP;

Τα στοιχεία ελέγχου πίνακα και οι βρόχοι βημάτων είναι αντικείμενα για εμφάνιση πίνακα οθόνης που προσθέτετε σε μια οθόνη στην οθόνη Painter.

Από προγραμματιστική άποψη, τα στοιχεία ελέγχου πίνακα και οι βρόχοι βημάτων είναι σχεδόν ακριβώς τα ίδια. Τα στοιχεία ελέγχου πίνακα είναι απλώς βελτιωμένοι βρόχοι βημάτων που εμφανίζουν δεδομένα με την εμφάνιση και την αίσθηση που σχετίζονται με πίνακες σε εφαρμογές επιτραπέζιου υπολογιστή.

Χαρακτηριστικά του πίνακα ελέγχου ABAP

Με τα στοιχεία ελέγχου πίνακα, ο χρήστης μπορεί:

  • Κάντε κύλιση στον πίνακα κάθετα και οριζόντια
  • Αλλάξτε το μέγεθος του πλάτους μιας στήλης
  • Κύλιση μέσα σε ένα πεδίο (όταν τα περιεχόμενα του πεδίου είναι ευρύτερα από το πεδίο)
  • Επιλέξτε γραμμές ή στήλες πίνακα
  • Ξαναδιάταξη της ακολουθίας στηλών
  • Αποθηκεύστε τις τρέχουσες ρυθμίσεις οθόνης για μελλοντική χρήση

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

  • αυτόματη αλλαγή μεγέθους πίνακα (κάθετη και οριζόντια) όταν ο χρήστης αλλάζει το μέγεθος του παραθύρου
  • διαχωριστικές γραμμές μεταξύ σειρών και μεταξύ στηλών (κάθετες και οριζόντιες)
  • πεδία κεφαλίδας στήλης για όλες τις στήλες

Σε γενικές γραμμές, πολλές από τις δυνατότητες που παρέχονται από τον πίνακα ελέγχου χειρίζονται τοπικά από το σύστημά σας SAPgui frontend, οπότε δεν χρειάζεται να τα προγραμματίσετε μόνοι σας. Η μόνη αξιοσημείωτη εξαίρεση σε αυτό είναι η κατακόρυφη κύλιση.

Παράδειγμα (Συναλλαγή TZ60)

SAP Έλεγχος τραπεζιού ABAP

Η παραπάνω συναλλαγή TZ60 δείχνει το τελικό αποτέλεσμα: ένα πλέγμα με κεφαλίδες στηλών, διαχωριστικές γραμμές και μια στήλη επιλογής. Οι διαφορές από τον παλαιότερο βρόχο βημάτων συνοψίζονται στη συνέχεια.

Έλεγχος τραπεζιού έναντι βηματικού βρόχου

Ένα χαρακτηριστικό των βρόχων βημάτων είναι ότι οι γραμμές του πίνακα μπορούν να εκτείνονται σε περισσότερες από μία γραμμές στην οθόνη. Από την άλλη πλευρά, μια γραμμή ενός στοιχείου ελέγχου πίνακα πρέπει πάντα να περιέχεται σε μία μόνο γραμμή (αν και η κύλιση είναι δυνατή). Ο παρακάτω πίνακας συγκρίνει τα δύο στοιχεία της οθόνης.

Κριτήρια Έλεγχος πίνακα Βρόχος βημάτων
Διάταξη σειρών Μία σειρά είναι πάντα μία γραμμή οθόνης Μία σειρά μπορεί να εκτείνεται σε πολλές γραμμές οθόνης
Χειρισμός στηλών Οι στήλες μπορούν να αλλάξουν μέγεθος, να αναδιαταχθούν και να κρυφτούν από τον χρήστη Διορθώθηκε η διάταξη στηλών που ορίστηκε στην οθόνη
κύλιση Οριζόντια κύλιση από το frontend, κατακόρυφη κύλιση προγραμματισμένη σε PAI Προγραμματισμένο εξ ολοκλήρου στον κώδικα ABAP
Δήλωση ΣΤΟΙΧΕΙΑ ΕΛΕΓΧΟΥ … ΠΛΗΚΤΡΟΛΟΓΗΣΤΕ TABLEVIEW ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΟΘΟΝΗ Δεν υπάρχει δομή ελέγχου στο πρόγραμμα
Ρυθμίσεις οθόνης Ο χρήστης μπορεί να αποθηκεύσει μια προσωπική διάταξη Δεν υπάρχουν διαθέσιμα στοιχεία

Επειδή ο έλεγχος πίνακα είναι το σύγχρονο στοιχείο, το υπόλοιπο αυτής της σελίδας το προγραμματίζει.

Πώς να δημιουργήσετε και να προγραμματίσετε ένα στοιχείο ελέγχου πίνακα

Ένα στοιχείο ελέγχου πίνακα χρειάζεται ένα στοιχείο οθόνης, μια δομή ελέγχου στο πρόγραμμα και έναν βρόχο τόσο στο PBO όσο και στο PAI. Οι παρακάτω υποενότητες ακολουθούν αυτή τη σειρά.

Δήλωση ελέγχου

Για να χειριστείτε στοιχεία ελέγχου πίνακα σε προγράμματα ABAP, πρέπει να δηλώσετε ένα στοιχείο ελέγχου στο τμήμα δήλωσης του προγράμματος για κάθε στοιχείο ελέγχου πίνακα χρησιμοποιώντας την ακόλουθη πρόταση:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

που είναι το όνομα του πίνακα ελέγχου σε μια οθόνη του προγράμματος ABAP. Το στοιχείο ελέγχου επιτρέπει στο πρόγραμμα ABAP να διαβάζει τα χαρακτηριστικά του πίνακα ελέγχου και να επηρεάζει το στοιχείο ελέγχου .Εδώ, είναι ο αριθμός οθόνης όπου φορτώνονται οι αρχικές τιμές του πίνακα.

Ρύθμιση και ανάγνωση της θέσης του κέρσορα

Η θέση του δρομέα για ένα στοιχείο ελέγχου πίνακα μπορεί να οριστεί με τους εξής τρόπους:

Στο PBO μπορείτε να ρυθμίσετε τον κέρσορα σε ένα συγκεκριμένο πεδίο μιας συγκεκριμένης γραμμής ενός στοιχείου ελέγχου πίνακα.

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

Χρησιμοποιώντας την προαιρετική προσθήκη OFFSET, μπορείτε να εισαγάγετε τη μετατόπιση του δρομέα στο πεδίο όπως περιγράφεται στην ενότητα Ρύθμιση της θέσης του δρομέα.

Στο PAI μπορείτε να διαβάσετε την τρέχουσα θέση του δρομέα.

GET CURSOR FIELD <f> LINE <lin> ...

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

GET CURSOR LINE <lin>.

για να προσδιορίσετε τη γραμμή του στοιχείου ελέγχου πίνακα. Το SY-SUBRC σάς επιτρέπει να ελέγξετε εάν ο δρομέας βρίσκεται σε μια γραμμή ενός στοιχείου ελέγχου πίνακα.

Ανάγνωση της αντίστοιχης εσωτερικής γραμμής του πίνακα

Για τη λήψη της αντίστοιχης γραμμής του εσωτερικό τραπέζι:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

Η μεταβλητή συστήματος stepl – περιέχει τον τρέχοντα δείκτη γραμμής πίνακα σε έναν βρόχο … endloop. Loopc – περιέχει τον αριθμό των γραμμών που είναι ορατές στον πίνακα

Δημιουργία του ελέγχου στην οθόνη Painter

Για να δημιουργήσετε ένα στοιχείο ελέγχου πίνακα

  1. Προσθέστε ένα στοιχείο ελέγχου πίνακα στην οθόνη σας
  2. Δώστε ένα όνομα στο στοιχείο ελέγχου του πίνακα. Στο πρόγραμμα ABAP, δηλώστε μια δομή με το ίδιο (CONTROLS πληκτρολογήστε TABLEVIEW ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΟΘΟΝΗ )
  3. Για να δημιουργήσετε πεδία, μεταβείτε στη συνάρτηση Πεδία Dict./Program.
    • Εισαγάγετε το όνομα της δομής της οποίας τα πεδία θέλετε. (Αν θέλετε να το διαλέξετε από το λεξικό του προγράμματός σας κάντε κλικ στο σχετικό κουμπί).
    • Στη λίστα πεδίων επιλέξτε τα πεδία που θέλετε και επιλέξτε OK.
    • Κάντε κλικ στην περιοχή ελέγχου πίνακα

Εάν θέλετε μια στήλη επιλογής, επιλέξτε το κατάλληλο πλαίσιο ελέγχου στα χαρακτηριστικά και δώστε της ένα όνομα. Δημιουργήστε το πεδίο στο Πρόγραμμα ABAP.

Κωδικοποίηση των βρόχων PBO και PAI

Στο PBO θα πρέπει να έχετε τη δήλωση

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

Στο PAI θα έπρεπε να έχετε.

LOOP at <itab>.

ENDLOOP.

Μέσα στους βρόχους γίνεται η μεταφορά δεδομένων μεταξύ της οθόνης και του εσωτερικού πίνακα. Όταν συμπληρώνετε τον εσωτερικό πίνακα, χρησιμοποιήστε την εντολή DESCRIBE TABLE. LINEμικρό -γραμμές, για να αποθηκεύσετε τον συνολικό αριθμό γραμμών στο στοιχείο ελέγχου. Η πρόταση FIELD μπορεί να χρησιμοποιηθεί για να ελέγξετε πότε πραγματοποιείται η μεταφορά δεδομένων

⚠️ Προειδοποίηση: Ο βρόχος PBO πρέπει να ονομάσει το στοιχείο ελέγχου με USING CONTROL. Χωρίς αυτό, το στοιχείο ελέγχου δεν γνωρίζει πόσες γραμμές υπάρχουν και η κάθετη κύλιση σταματά να λειτουργεί.

Αλλαγή χαρακτηριστικών στήλης κατά τον χρόνο εκτέλεσης

Για να αλλάξετε τα χαρακτηριστικά μεμονωμένων κελιών, αλλάξτε προσωρινά τον πίνακα SCREEN στο PBO. Μπορείτε να αλλάξετε τα χαρακτηριστικά της δομής που δημιουργήθηκε από την πρόταση CONTROLS

<cntrl>-fixed_cols etc are the attributes of the control

<cntrl>-cols-index etc are the attributes of the columns.

<cntrl>-cols-screen-invisible etc are the screen attributes of each column.

💡 Συμβουλές: Επανάληψη βρόχου -στήλες στο PBO για την απόκρυψη ή την προστασία μιας στήλης για έναν δεδομένο ρόλο χρήστη, αντί να δημιουργηθεί μια δεύτερη οθόνη.

Συχνές Ερωτήσεις

Το frontend χειρίζεται την οριζόντια κύλιση, αλλά η κάθετη κύλιση κωδικοποιείται σε PAI. Αξιολογήστε το SY-UCOMM για τους κωδικούς συνάρτησης κύλισης και μετακινήστε το πεδίο top_line της δομής ελέγχου πριν από την εκτέλεση του επόμενου PBO.

An Πλέγμα ALV Παρέχει ταξινόμηση, φιλτράρισμα, σύνολα και εξαγωγή χωρίς επιπλέον κώδικα, επομένως είναι κατάλληλο για λίστες εμφάνισης. Ένα στοιχείο ελέγχου πίνακα προτιμάται όταν η οθόνη χρειάζεται προσαρμοσμένη λογική εισόδου και πλήρη έλεγχο σε κάθε κελί.

Το SY-STEPL περιέχει τον δείκτη της γραμμής που υποβάλλεται σε επεξεργασία εντός του βρόχου οθόνης και το SY-LOOPC περιέχει τον αριθμό των γραμμών που είναι ορατές στην οθόνη. Και οι δύο συμπληρώνονται μόνο εντός του LOOP … ENDLOOP του στοιχείου ελέγχου.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης στα εργαλεία ανάπτυξης ABAP συντάσσουν τη δήλωση CONTROLS, τόσο τους βρόχους οθόνης όσο και τη λογική κύλισης από μια περιγραφή του εσωτερικού πίνακα. Η δημιουργημένη λογική ροής χρειάζεται ακόμη δοκιμή στην οθόνη. Painter.

Τα εργαλεία ανάλυσης τεχνητής νοημοσύνης διαβάζουν τη λογική ροής ενός dynpro, απαριθμούν τα πεδία και τους κωδικούς λειτουργίας και προτείνουν έναν ισοδύναμο σχεδιασμό βασισμένο σε Fiori ή ALV. Η πρόταση συντομεύει τη φάση ανάλυσης ενός έργου εκσυγχρονισμού.

Συνοψίστε αυτήν την ανάρτηση με: