Selection screens are one of the three types of screen in the SAP GUI, along with dialog screens and lists. They are used to display data, and also allow user interaction. You create lists using ABAP statements. They can be output to the screen, but also to a printer.
Unlike screens, which contain defined elements like input/output fields and pushbuttons, each of which is identified by a name, and where data is exchanged with the ABAP program by means of identically-named fields, lists provide a freely-definable area that you fill using the WRITE, ULINE; and SKIPstatements.
The ABAP statements that create lists actually create the list on the application server, where it is buffered. The list is then displayed either when the LEAVE TO LIST-PROCESSING statement occurs in the program, or, for executable programs, automatically. In executable programs, the list that you create is displayed (at the latest) after the last event block in the program.
When the list is displayed, the system calls the list processor, which displays the list on a special container screen (screen number 120). The container screen temporarily replaces the previous screen of the calling program. It inherits the same position, size, and GUI status. However, you can set a special GUI status for list processing before the list is displayed. In an executable program, the container screen replaces the standard selection screen (screen 1000), and automatically has the default list status.
When a list is displayed, the list processor has control of the program. Interactive user actions on a list trigger events in the ABAP program. Output statements in these event blocks create detail lists, which are then automatically displayed at the end of the event block. You can create up to 19 detail lists for a single basic list. Detail lists temporarily replace the previous list on the container screen. A basic list and its detail lists form a list system of up to twenty levels. Users can navigate between the different levels.
From a screen, you can call the list processor and display up to twenty lists in a list system using the LEAVE TO LIST-PROCESSING statement. When you start processing a screen, the list system is always initialized. This means that all list output statements apply to the basic list, and there are not yet any detail lists. If you start a new screen sequence during list processing (CALL SCREEN statement), the list system of the original screen is retained. At the end of the screen sequence, the program returns to the last list level to have been displayed.