A screen that has input fields differs from a screen used for reporting output... The screen with input fields has a setup with Process Before Output and Process After Input which both revolve around an actual screen object (identified by the screen number).
A program can have several screens which should be regarded as seperate "objects" of the program.
The screen painter is the tool to design a screen and define it's PBO and PAI processing, alternatively (and only for selection screens) the statements PARAMETERS
and SELECT-OPTIONS
(with a wide variety of options) can be used to design a screen, for which the system will generate a screen (by default number 1000).
The power of generating a screen from some ABAP statements is that the purpose of the screen is already known beforehand: selection. This means that a variety of functionality which should be available on any selection screen can be set up centrally. A short overview: Variants - by pressing the save button on (any) selection screen, the entered settings can be saved Executing in the background - can be done on (any) selction screen, via the menu Ranges - can be set up (or rather filled in) on SELECT-OPTIONS
fields, with a button leading to a popup about possible values Texts and variabele placement - gives all selection screens the same look and feel, allowing our end user to feel at home
Here's how a 9 line program gets the look and feel of a full-grown report:
REPORT Z_SIMPLE_REPORT. TABLES: MARA. PARAMETERS: P_MTART LIKE MARA-MTART. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. SELECT * FROM MARA WHERE MTART EQ P_MTART AND MATNR IN S_MATNR. WRITE: / MARA-MATNR, MARA-MTART. ENDSELECT.