Πριν διαβάσετε αυτό το σεμινάριο βεβαιωθείτε ότι είναι ένα Πρόγραμμα διαλόγου…
ΚΑΛΗΣΤΕ ΤΗΝ ΥΠΗΡΕΣΙΑ
- Η υπο-οθόνη είναι μια ανεξάρτητη οθόνη που εμφανίζεται σε μια περιοχή άλλης ("κύρια") οθόνη.
- Οι δευτερεύουσες οθόνες σάς επιτρέπουν να ενσωματώσετε μια οθόνη μέσα στην άλλη κατά το χρόνο εκτέλεσης. Μπορείτε να συμπεριλάβετε πολλές δευτερεύουσες οθόνες στην κύρια οθόνη.
- Ο όρος υπο-οθόνη ισχύει τόσο για την οθόνη που ενσωματώνετε, όσο και για την περιοχή στην κύρια οθόνη στην οποία την τοποθετείτε. Αυτό το σεμινάριο αφορά περιοχές κάτω από την οθόνη. Οι πραγματικές οθόνες που δημιουργούνται μέσω της συναλλαγής SE51, ονομάζονται οθόνες υπο-οθόνης εάν ορίζονται σε χαρακτηριστικά οθόνης.
- Όταν χρησιμοποιείτε μια δευτερεύουσα οθόνη, η λογική ροής της ενσωματωμένης οθόνης ενσωματώνεται επίσης στη λογική ροής της κύριας οθόνης. Ως εκ τούτου, η χρήση υπο-οθονών σε οθόνες είναι σαν τη χρήση περιλαμβανομένων σε προγράμματα ABAP
Για να χρησιμοποιήσετε μια υπο-οθόνη, πρέπει να ακολουθήσετε τρία απλά βήματα
- Ορίστε τις περιοχές της υπο-οθόνης σε μια οθόνη
- Ορίστε κατάλληλες οθόνες υπο-οθόνης
- Συμπεριλάβετε την οθόνη υπο-οθόνης στην περιοχή της υπο-οθόνης.
Επίσης, πρέπει να ρυθμίσετε το πλαίσιο της υπο-οθόνης και της κύριας οθόνης. Πρέπει να το ονομάσετε στο πεδίο ονόματος πεδίου.
Επιπλέον, πρέπει επίσης να προσαρμόσετε τα πεδία εντός της δευτερεύουσας οθόνης, ώστε να εμφανίζονται στην κύρια οθόνη. Σε περίπτωση που η υπο-οθόνη ορίζεται ότι είναι μεγαλύτερη από τη διαθέσιμη περιοχή στην κύρια οθόνη, μόνο το τμήμα της υπο-οθόνης θα είναι ορατό που ταιριάζει στην διαθέσιμη περιοχή. Η περιοχή μετράται πάντα από την επάνω αριστερή γωνία της οθόνης. Ως εκ τούτου, πρέπει να προσέχετε επαρκώς κατά τον καθορισμό των περιοχών υπο-οθόνης και τη δημιουργία υπο-οθόνης.
ΠΑΡΑΔΕΙΓΜΑ
Για παράδειγμα, εδώ έχουμε ορίσει δύο περιοχές υπο-οθόνης στην κύρια οθόνη και έχουμε προσαρτήσει δύο διαφορετικές υπο-οθόνες σε αντίστοιχες περιοχές. Κάθε φορά που καλείται η κύρια οθόνη, καλείται το PBO της κύριας οθόνης. Αλλά πριν από την εμφάνιση, καλούνται επίσης τα PBO κάθε οθόνης που είναι συνδεδεμένα με περιοχές υπο-οθόνης στην κύρια οθόνη.
Μπορείτε να συμπεριλάβετε μια οθόνη υπο-οθόνης χρησιμοποιώντας τη δήλωση CALL SUBSCREEN στη λογική ροής της κύριας οθόνης.
Για να συμπεριλάβετε μια οθόνη υπο-οθόνης στην περιοχή υπο-οθόνης της κύριας οθόνης και να καλέσετε τη λογική ροής PBO, χρησιμοποιήστε την ακόλουθη δήλωση στο συμβάν PBO της κύριας οθόνης:
ΔΙΑΔΙΚΑΣΙΑ ΠΡΙΝ ΑΠΟΤΕΛΕΣΜΑ.ΚΑΛΗΣΤΕ ΤΗΝ ΥΠΗΡΕΣΙΑ ΠΕΡΙΛΑΜΒΑΝΟΝΤΑΣ [] .
Αυτή η δήλωση εκχωρεί την οθόνη υπο-οθόνης με τον αριθμό
Το όνομα της περιοχής της υπο-οθόνης πρέπει να εισαχθεί απευθείας χωρίς ανεστραμμένα κόμματα. Μπορείτε να καθορίσετε τα ονόματα
Για να καλέσετε τη λογική ροής PAI της οθόνης υπο-οθόνης, χρησιμοποιήστε την ακόλουθη δήλωση στη λογική ροής PAI της κύριας οθόνης:
ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΑ ΤΗΝ ΕΙΣΟΔΟΣ.ΚΑΛΗΣΤΕ ΤΗΝ ΥΠΗΡΕΣΙΑ .
Αυτή η δήλωση περιλαμβάνει τη λογική ροής PAI της οθόνης υπο-οθόνης που περιλαμβάνεται στην περιοχή δευτερεύουσας οθόνης στο συμβάν PBO. Αυτό μπορεί να καλέσει μονάδες PAI του προγράμματος ABAP, στις οποίες ορίζεται η οθόνη υπο-οθόνης. Τα δεδομένα μεταφέρονται μεταξύ πανομοιότυπων πεδίων στην οθόνη υπο-οθόνης και του προγράμματος ABAP είτε όταν ενεργοποιείται το συμβάν PAI είτε στις αντίστοιχες δηλώσεις FIELD στη λογική ροής PAI της οθόνης υπο-οθόνης.
Σημεία που πρέπει να θυμάστε
- Τα ονόματα των στοιχείων των υπο-οθονών σε μια οθόνη πρέπει να είναι μοναδικά
- Δεν πρέπει να έχετε συνδέσει OK_CODE ή FCODE με υπο-οθόνη. Το OK_CODE της ίδιας της κύριας οθόνης είναι OK_CODE της υπο-οθόνης
- Οι δευτερεύουσες οθόνες δεν μπορούν να έχουν μονάδες διαλόγου που περιέχουν SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN ή LEAVE TO SCREEN. Αυτό θα προκαλέσει σφάλμα χρόνου εκτέλεσης.
- Πρέπει να το καλέσετε στη λογική ροής (τόσο PBO όσο και PAI) της κύριας οθόνης.
- Το CALL SUBSCREEN δεν επιτρέπεται στις δηλώσεις CHAIN… ENDCHAIN και LOOP ENDLOOP
- Δεν είναι δυνατή η ενότητα AT EXIT-COMMAND
- Τα πεδία που χρησιμοποιείτε είναι τα παγκόσμια πεδία. Πρέπει να δηλωθούν στην κορυφή περιλαμβάνουν
- Εάν χρησιμοποιείτε δευτερεύουσες οθόνες από άλλο πρόγραμμα διαλόγου, η μεταφορά δεδομένων δεν θα πραγματοποιηθεί εκτός εάν προσθέσετε συγκεκριμένο κώδικα.