Logical Database Selections
In a logical database, you can define input fields on the selection screen with the SELECT-OPTIONS and PARAMETERS statements. This is achieved with the help of a special include program known as the selection include. In each ABAP executable program (report), you can extend these logical database selections by defining executable program (report)-specific selections. All program-specific selections are displayed after the database-specific selections.
When generating the selection screen of an executable program (report), the system only takes into account the database-specific selection criteria and parameters, whose corresponding tables (defined by the FOR option of the SELECT-OPTIONS and PARAMETERS statements in the selection include, see
Editing Selections) are declared by the TABLES statement in the program. 
Suppose a logical database program contains the following lines:
SELECT-OPTIONS SLIFNR FOR LFA1-LIFNR.
PARAMETERS PBUKRS LIKE LFB1-BUKRS FOR TABLE LFB1.
The selection criterion SLIFNR is linked to table LFA1, the parameter PBUKRS to table LFB1.
If the TABLES statement in a executable program (report) declares LFA1 but not LFB1, SLIFNR is displayed on the selection screen, but PBUKRS does not appear.
You can format the selection screen (for example by defining boxes, pushbuttons, radio buttons and blank lines, or by writing several PARAMETERs in one line) with the SELECTION-SCREEN statement in the logical database include program (see
SELECTION-SCREEN - Formatting).You can display possible input values and field documentation for selection screen fields by using the additions VALUE-REQUEST and HELP-REQUEST with the SELECT-OPTIONS and PARAMETERS statements (see the appropriate keyword documentation).
Dynamic Selections
Dynamic selections allow the user to define further selections for database accesses in addition to the selection criteria already defined in the logical database selection include. For performance reasons, selection criteria should be used with the CHECK statement during a GET event in the executable program (report) only for selections which are not table-specific (see
Leaving GET Events Conditionally). Otherwise, the selection is not performed until after the database access.On the other hand, dynamic selections are already effective during the database access in the logical database. To support dynamic selections for a database table <dbtab>, you must specify the following statement in the selection include of the logical database:
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE <dbtab>.
In this case, the Dynamic selections pushbutton is displayed on the selection screen if the table <dbtab> is used in the executable program (report) (see also keyword documentation for SELECTION-SCREEN). Pressing this button enables the user to enter dynamic selections for the fields defined by the logical database (see also
Standard Selection Screens and Logical Databases). The logical database program then can use these in dynamic WHERE conditions when selecting data for the event keyword GET <dbtab> (see Working with Dynamic Selections).In the ABAP Development Workbench, the user can define the field list for the dynamic selections in the form of a logical database selection view. These views are identified by their origin ('SAP' or 'CUS' for 'CUStomer'), the logical database name, and a name which, for the functionality with selection screens described here, must always be ‘STANDARD’. The system uses selection views with origin 'SAP' only if none with origin 'CUS' have been created. This way, users can define the best logical database selection views for their requirements.

The system transfers also the values of executable program (report) internal selection criteria to the logical database, if they are defined for the columns of a database table that is designated for dynamic selections (see
Defining Selection Screen Versions
The logical database selection screen (screen number 1000) has a standardized layout where selection criteria and parameters appear on separate lines in the order in which they are declared. The system generates this screen automatically for every executable program (report) which does not have its own selection screen specified in the attributes.
If you want to suppress certain input fields from the logical database selection screen for a report, you can define a selection screen version (with a screen number less than or equal to 999) in the selection include and enter this in the program attributes. By pressing
F4 there, you can get an overview of the selection screen versions defined in the logical database concerned. You define selection screen versions with the SELECTION-SCREEN BEGIN|END OF VERSION and SELECTION-SCREEN EXCLUDE statements. The latter statement allows you to specify any objects you want to exclude from the selection screen version (see Editing Selections). With the SELECTION-SCREEN statement, you can design the layout further.If the program attributes contain the number of a selection screen version, the system uses this as the model when generating the selection screen. The screen flow logic is also generated automatically for own selection screen versions and therefore cannot be modified. Especially, deleting database-specific selections is not allowed.
Selection screen versions replace the user-specific selection screens used prior to Release 3.0.
For further information on selection screens and the PARAMETERS, SELECT-OPTIONS and SELECTION-SCREEN statements, see
Working with Selection Screens.