SELECTION-SCREEN
Variants
1. SELECTION-SCREEN BEGIN OF LINE.
2. SELECTION-SCREEN END OF LINE.
3. SELECTION-SCREEN SKIP n.
4. SELECTION-SCREEN ULINE.
5. SELECTION-SCREEN POSITION pos.
6. SELECTION-SCREEN COMMENT fmt name.
7. SELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.
8. SELECTION-SCREEN BEGIN OF BLOCK block.
9. SELECTION-SCREEN END OF BLOCK block.
10. SELECTION-SCREEN FUNCTION KEY n.
11. SELECTION-SCREEN BEGIN OF VERSION ver TEXT-xxx.
12. SELECTION-SCREEN END OF VERSION ver.
13. SELECTION-SCREEN EXCLUDE ... .
14. SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
15. SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
Effect
The key word SELECTION-SCREEN only makes sense in reports, i.e. programs specified as type "1" in the attributes. You use it to design the selection screen in the program or logical database access routine.
The selection screen is normally generated from the SELECT-OPTIONS and PARAMETERS statements in the report and logical database access routine. Each of these objects occupies a separate line on the selection screen.
SELECTION-SCREEN allows you to form blocks, combine several parameters and comments together on one line, generate pushbuttons on the screen or activate them in the application toolbar, as well as insert blank lines, underscore lines and comments.
Like SELECT-OPTIONS and PARAMETERS , you can use SELECTION-SCREEN statements in reports and in the include program DBldbSEL of the logical database ldb assigned to the report in the attributes. Some variants are defined only for logical databases and can therefore only be used in the include program DBldbSEL .
Variant 1
SELECTION-SCREEN BEGIN OF LINE.
Variant 2
SELECTION-SCREEN END OF LINE.
Effect
Allows you to combine several parameters and comments specified between the SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE statements and output them on one line. As a result, there is no automatic new line for each PARAMETER and no selection texts are displayed.
Example
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) TEXT-001.
PARAMETERS: P1(3), P2(5), P3(1).
SELECTION-SCREEN END OF LINE.
Selection screen:
Comment ___ _____ _
Note
You cannot order SELECT-OPTIONS between SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE because several objects are generated on the selection screen for a SELECT-OPTION (e.g. fields for the lower and upper limits of ranges).
Variant 3
SELECTION-SCREEN SKIP n.
Additions
1. ... FOR TABLE dbtab
2. ... ID id
Effect
Generates n blank lines (see also SKIP ).
You must specify a value for n between 1 and 9. If you want to output just one blank line, you can omit n .
Addition 1
... FOR TABLE dbtab
Effect
This addition is allowed only in the database include program DBldbSEL . It is, in fact, a requirement. If you use SELECTION-SCREEN SKIP in DBldbSEL , you must assign the statement to a table (or to a field - see the variant COMMENT .
This assignment is necessary in order to restrict the SELECTION-SCREEN statements for a report selection screen to those relevant for the tables used in the report, i.e. those which refer to a table used in the report. Any SELECTION-SCREEN statement assigned to a table not used in the report with the addition FOR TABLE dbtab are ignored when the report selection screen is generated.
Note
A table dbtab of the logical database ldb is considered as "used in the report" if it is either declared in a TABLES statement or its position in the database hierarchy lies somewhere between the root and a table dbtab_2 declared in the report.
Example
Hierarchy of logical database ldb :
SPFLI
|
---- SAPLANE
|
---- SFLIGHT
|
---- SBOOK
In the report:
TABLES SFLIGHT.
Tables considered as "used" include SFLIGHT (since it is
declared directly), as well as SAPLANE and SPFLI (since
they lie on the path from the hierarchy root " SPFLI " to the
declared table SFLIGHT ). The table SBOOK is not
considered as used, i.e. all the SELECTION-SCREEN statements
qualified with the addition " FOR TABLE SBOOK " in DBldbSEL
are ignored.
Addition 2
... ID id
Effect
This addition is allowed only in the database include program DBldbSEL . It is used to identify a SELECTION-SCREEN object (in this case blank lines) via an ID which can be up to 3 characters long. This ID is then specified in SELECTION-SCREEN EXCLUDE IDS id in order to exclude the object from a selection screen version.
Variant 4
SELECTION-SCREEN ULINE.
Additions
1. ... fmt
2. ... FOR TABLE dbtab
3. ... MODIF ID mod
4. ... ID id
Effect
Generates an underline (see also ULINE ).
Addition 1
... fmt
Effect
Format specification with the form /pos(len) , pos(len) or (len) . The slash ( / ) generates a new line and is therefore not allowed between BEGIN OF LINE and END OF LINE . The effect of the statement is to underscore the current line starting from the position pos for the length len . The variant (len) (without position specification) is allowed only between BEGIN OF LINE and END OF LINE . In this case, the current position in the line is used. See also WRITE .
You can specify the position pos as a number (in this case, it is relative to the frame if the statement comes between SELECTION-SCREEN BEGIN OF BLOCK ... WITH FRAME ... and SELECTION-SCREEN END OF BLOCK ... ). Also allowed are the symbolic positions POS_LOW and POS_HIGH . These are the positions at which the input fields of the SELECT-OPTI ONS are output ( POS_LOW is also the position of PARAMETERS .
Note
Format specifications which do not generate a new line can produce overlapping objects on the selection screen. Therefore, you should be particularly careful with position and length specifications.
Example
SELECTION-SCREEN ULINE /1(10).
SELECTION-SCREEN ULINE POS_LOW(10).
SELECTION-SCREEN ULINE POS_HIGH(10).
This generates three underscore blocks, each with a length of 10, on one line.
Addition 2
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP ).
Addition 3
... MODIF ID mod
Effect
The specified modification group ( SCREEN-GROUP1 ) is assigned to the underscore. You can use this under AT SELECTION-SCREEN in the report or in the PAI routine of the database program SAPDBldb to modify the screen.
Note
The name of the modification group must be specified without quotation marks. It can be up to three characters long.
Addition 4
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 5
SELECTION-SCREEN POSITION pos.
Addition
... FOR TABLE dbtab
Effect
Outputs the parameter starting from the position pos .
This variant is allowed only between SELECTION-SCREEN BEGIN OF LINE< /> and SELECTION-SCREEN END OF LINE .
As with the addition ULINE , you can specify the position as fixed (if necessary relative to the frame) or symbolically in the form POS_LOW or POS_HIGH .
Addition
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 6
SELECTION-SCREEN COMMENT fmt name.
Additions
1. ... FOR TABLE dbtab
2. ... FOR FIELD f
3. ... MODIF ID mod
4. ... ID id
Effect
Generates a comment on the selection screen. For the name name , there are two options:
name takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. name is another eight-character name. Here, you create a field with the name name in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field name is generated automatically and so cannot be defined with DATA .
With comments, you must always specify a format fmt (see variant ULINE ).
Note
You must program a new line yourself via the format fmt .
Addition 1
... FOR TABLE dbtab
Note
See variation 3 (SELECTION-SCREEN SKIP).
Addition 2
... FOR FIELD f
Effect
Since the comment is assigned to a parameteror a select-option , the help display shows the documentation of the reference field if this parameter or selection option.
In addition, the comment is suppressed if the reference object was set to 'invisible' via a selection variant.
Note
In database access routines, the comment is generated whenever the reference field is output. Therefore, you should not use the addition FOR TABLE with this variant.
Example
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 10(20) TEXT-001
FOR FIELD PARM.
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS PARM LIKE SAPLANE-PLANETYPE.
SELECTION-SCREEN END OF LINE.
This code displays a 20-byte long comment followed by the parameter at the normal position ( POS_LOW ) on the same line. If the user presses F1 for both objects, the documentation of SAPLANE-PLANETYPE is displayed.
Addition 3
... MODIF ID mod
Effect
See variant 4 ( SELECTION-SCREEN ULINE )
Addition 4
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 7
SELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.
Additions
1. ... FOR TABLE dbtab
2. ... MODIF ID mod
3. ... ID id
Effect
Generates a pushbutton on the selection screen. Also specified is the user command ucom (without quotation marks) which can be up to 4 characters long. This is generated when the user presses the button. Apart from this, the syntax is largely similar to that of SELECTION-SCREEN COMMENT :
For the name name , there are two options:
name takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. name is another eight-character name. Here, you create a field with the name name in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field name is generated automatically and so cannot be defined with DATA .
With pushbuttons, you must always specify a format fmt (see variant ULINE ).
Note
You must program a new line yourself via the format fmt .
The best way to respond to the user pressing the pushbutton is in the event AT SELECTION-SCREEN or - in the case of pushbuttons in the database include program DBldbSEL - in the routine PAI (with FNAME = '*' and MARK = SPACE ) in the database program SAPDBldb . Here, the field SSCRFIELDS-UCOMM contains the user command ucom (the table SSCRFIELDS must be declared with the TABLES statement).
Addition 1
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Addition 2
... MODIF ID mod
Effect
See variant 4 ( SELECTION-SCREEN ULINE )
Addition 3
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Example
TABLES SSCRFIELDS.
...
SELECTION-SCREEN PUSHBUTTON /10(20) CHARLY USER-COMMAND ABCD.
...
INITIALIZATION.
MOVE 'My text' TO CHARLY.
...
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'ABCD'.
...
ENDIF.
The selection screen displays a pushbutton with the text 'My text' . With AT SELECTION-SCREEN , the field SSCRFIELDS-UCOMM contains ABCD after the user has pressed the button.
Variant 8
SELECTION-SCREEN BEGIN OF BLOCK block.
Additions
1. ... WITH FRAME
2. ... TITLE title
3. ... NO INTERVALS
Effect
Starts a logical block on the selection screen. If you use the addition WITH FRAME , a frame is generated around the block. The addition TITLE title is allowed only in conjunction with WITH FRAME .
For the title title ,there are two options (see also the variants COMMENT and PUSHBUTTON ):
title takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. title is another eight-character name. Here, you create a field with the name title in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field title is generated automatically and so cannot be defined with DATA .
At runtime, the event AT SELECTION-SCREEN ON BLOCK block is executed for every block in the PAI module of the selection screen (with database- specific blocks, the PAI module in the program SAPDBldb is also executed with the parameters FNAME = BLOCK_block and MARK = SPACE ). If this produces an error message, just the fields of this block are ready for input.
You can nest blocks. The maximum nesting depth for blocks with frames is 5.
Addition 3
... NO INTERVALS
Effect
Displays all SELECT-OPTIONS within the block in simplified form without a 'to' field on the selection screen (like the addition " NO INTERVALS " with SELECT-OPTIONS ). If the block has a frame, this is correspondingly small.
Note
In the case of blocks without frames, the attribute " NO INTERVALS " is not inherited by subordinate blocks. However, all subordinate blocks of blocks with frames inherit this attribute because the generated frame is smaller and there is no space for the 'to' field.
Variant 9
SELECTION-SCREEN END OF BLOCK block.
Effect
Closes the block opened by SELECTION-SCREEN BEGIN OF BLOCK block . If the block has a frame, the frame is closed here. Blocks opened in the include program DBldbSEL must also be closed there.
Note
Blocks defined in the database include program DBldbSEL must also be close there. As with SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE , you cannot use the addition FOR TABLE with blocks. Instead, the objects in the blocks (selection options , parameters , comments, underscores ...) are omitted if the table to which they belong is not used in the report (see note under variant SELECTION-SCREEN SKIP ). Empty blocks (possibly with frames) are also omitted.
Example
TABLES SAPLANE.
SELECTION-SCREEN BEGIN OF BLOCK CHARLY
WITH FRAME TITLE TEXT-001.
PARAMETERS PARM(5).
SELECT-OPTIONS SEL FOR SAPLANE-PLANETYPE.
SELECTION-SCREEN END OF BLOCK CHARLY.
(Let TEXT-001 contain 'Block Charly' ).
Selection screen:
--Block Charly-----------------------------------
| PARM _____ |
| SEL ________ bis ________ |
-------------------------------------------------
Variant 10
SELECTION-SCREEN FUNCTION KEY n.
Additions
1. ... FOR TABLE dbtab
2. ... ID id
Effect
With this variant, you can activate up to 5 function keys in the application toolbar on the selection screen ( n is one of the numbers 1 to 5).
At runtime, the text must be placed in the Dictionary field SSCRFIELDS-FUNCTXT_01 or ... SSCRFIELDS-FUNCTXT_05 .
The function code placed in the field SSCRFIELDS-UCOMM is 'FC01' or ... 'FC05' . You can read this function code under AT SELECTION-SCREEN or in the PAI module of the database access program SAPDBldb .
Addition 1
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Addition 2
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Example
TABLES SSCRFIELDS.
...
SELECTION-SCREEN FUNCTION KEY 1.
...
INITIALIZATION.
MOVE 'My text' TO SSCRFIELDS-FUNCTXT_01.
...
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC01'.
...
ENDIF.
The selection screen displays a pushbutton with the text 'My text' . With AT SELECTION-SCREEN , the field SSCRFIELDS-UCOMM contains FC01 after the user has pressed the button.
Variant 11
SELECTION-SCREEN BEGIN OF VERSION ver TEXT-xxx.
Variant 12
SELECTION-SCREEN END OF VERSION ver.
Variant 13
SELECTION-SCREEN EXCLUDE ... .
Effect
Defines a selection screen version (with a three-character name ver ). These variants are only allowed in the database include program DBldbSEL . Between BEGIN OF VERSION and END OF VERSION , you can exclude selection screen objects for the version ver , i.e. remove them from the selection screen with SELECTION-SCREEN EXCLUDE. .
For a report, you activate a selection screen by making an entry in the attributes. If the database access program SAPDBldb itself has a selection screen version in the attributen, this applies for all reports which use this logical database and have attributes where no separate selection screen version is declared.
The text symbol TEXT -xxx is used merely to facilitate selection of a selection screen version via F4 help when maintaining the attributes.
Additions
(to SELECTION-SCREEN EXCLUDE )
1. ... PARAMETERS par
2. ... SELECT-OPTIONS sel
3. ... RADIOBUTTON GROUPS radi
4. ... BLOCKS block
5. ... IDS id
Effect
Excludes selection screen objects between SELECTION-SCREEN BEGIN and END OF VERSION . This allows you to exclude individual parameters or selection options , radiobutton groups , blocks defined by SELECTION-SCREEN BEGIN/END OF BLOCK and other objects such as comments and underscores specified by the addition ID id .
Note
The database program SAPDBldb can get the active version for the current report with the function module RS_SELSCREEN_VERSION .
Example
PARAMETERS PAR_1 LIKE dbfield_1 FOR TABLE dbtab_1.
SELECT-OPTIONS SEL_1 FOR dbfield_01.
SELECT-OPTIONS SEL_2 FOR dbfield_02.
SELECT-OPTIONS SEL_3 FOR dbfield_03.
SELECTION-SCREEN COMMENT /10(20) TEXT-100 FOR TABLE dbtab_1 ID 001.
SELECTION-SCREEN COMMENT /8(30) TEXT-200 FOR TABLE dbtab_2 ID 002.
PARAMETERS PAR_2 LIKE dbfield_1 FOR TABLE dbtab_2.
PARAMETERS PAR_3 LIKE dbfield_1 FOR TABLE dbtab_2.
...
SELECTION-SCREEN BEGIN OF VERSION ABC TEXT-008.
SELECTION-SCREEN EXCLUDE PARAMETERS: PAR_1, PAR_3.
SELECTION-SCREEN EXCLUDE SELECT-OPTIONS: SEL_2.
SELECTION-SCREEN EXCLUDE IDS: 001.
SELECTION-SCREEN END OF VERSION ABC.
If the report attributes (or the attributes of the database program SAPDBldb ) contain the selection screen version ABC , the parameters PAR_1 and PAR_3 , the selection option SEL_2 and the comment with the text number 100 ( ID 001 ) are not displayed on the selection screen. When you maintain the attributes, the text symbol 008 of SAPDBldb is displayed if you press F4 on the field 'Selection screen version'.
Variant 14
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
Addition
... ID id
Effect
This variant is allowed only in the database include program DBldbSEL . It informs you for which logical database tables additional selections are supported. If one of these tables is active in the report (i.e. it is declared under TABLES or lies somewhere on the path from the root of the database hierarchy to a table declared with TABLES ), a psuhbutton called 'Dynamic selections' appears on the selection screen. On pressing this button, the user branches to a dialog Taste where it is possible to enter selections for the fields of the relevant tables in the logical database. You can define the field list in two different ways:
Via a selection view defined for the purpose:
You can maintain selection views within the logical database maintenance transaction. They consist of a set of fields from logical database tables which are divided into groups. It is also possible to preselect fields. Customers can overlay these selection views with their own (i.e. in this case, the system searches first for the customer selection view and only accesses the SAP selektion view if no customer-specific view exists).
If a preselection has already been made in the selection view, the user immediately sees the selection screen for the preselected fields and can enter selections. Otherwise, a fields must be selected first.
Via all fields of all tables
In this case, the user must first choose the tables and then select the fields for which additional selections are to be made before branching to the selection screen to enter the dynamic selections.
The database access programm SAPDBldb then receives the WHERE clauses generated from the user entries in the form of a complex data object DYN_SEL .
Addition
... ID id
Effect
Similar to the addition 2 ( SKIP ). This allows you to exclude tables from the possibility of dynamic selection via the selection screen versions.
Note
The exact definition of the object DYN_SEL is stored in the TYPE-POOL RSDS and is as follows:
TYPES: BEGIN OF RSDS_WHERE,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
WHERE_TAB LIKE RSDSWHERE OCCURS 5,
END OF RSDS_WHERE.
...
TYPES: BEGIN OF RSDS_TYPE,
CLAUSES TYPE RSDS_WHERE OCCURS 5,
TEXPR TYPE RSDS_TEXPR,
TRANGE TYPE RSDS_TRANGE,
END OF RSDS_TYPE.
DATA DYN_SEL TYPE RSDS_TYPE.
The object DYN_SEL thus contains a component ( CLAUSES ) which is an internal table. Each line of this internal table contains a table name ( TABLENAME ) and another table ( WHERE_TAB ) which contains the WHERE clauses for the table ( TABLENAME ).
You can find the structure of the other components in the type pool RSDS .
TEXPR contains the selections in a format which allows storage and can be used for the "freely callable" function modules when entering dynamic selections ( FREE_SELECTIONS_INIT , FREE_SELECTIONS_DIALOG ). TRANGE contains the selections in the form of RANGES tables which can be used with the IN operator in SELECT , CHECK and IF .
Note
Neither the TYPE-POOL RSDS nor the declaration of DYN_SEL must appear in the database program. Both are automatically included by the system.
In the database program SAPDBldb , an access to a table XXXX could look something like below:
FORM PUT_XXXX.
DATA L_DS_CLAUSES TYPE RSDS_WHERE.
MOVE 'XXXX' TO L_DS_CLAUSES-TABLENAME.
READ TABLE DYN_SEL-CLAUSES WITH KEY L_DS_CLAUSES-TABLENAME
INTO L_DS_CLAUSES.
SELECT * FROM XXXX
WHERE field1 IN ...
AND field2 ....
...
AND (L_DS_CLAUSES-WHERE_TAB).
PUT XXXX.
ENDSELECT.
ENDFORM.
Note
If the table L_DS_CLAUSES-WHERE_TAB is empty, i.e. if no dynamic selections are entered for the table XXXX , the addition ... AND (L_DS_CLAUSES-WHERE_TAB) is ignored during the SELECT .
Variant 15
SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
Addition
... ID id
Effect
This variant is allowed only in the database include program DBldbSEL . It informs you for which logical database tables field selection is supported.
For these tables, you can fill just those database fields which the report actually needs. In the report, you determine these fields with GET dbtab FIELDS f1 ... fn or GET dbtab LATE FIELDS f1 ... fn (the field list is then supplemented by the key fields of the table dbtab ).
By restricting to the really necessary field, you considerably improve performance. The database access program SAPDBldb receives the desired fields for the dynamic field selection in the form of an internal table SELECT_FIELDS .
Note
The exact definition of the object SELECT_FIELDS is stored in the TYPE-POOL RSFS and looks something like below:
TYPES: BEGIN OF RSFS_TAB_FIELDS,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
FIELDS LIKE RSFS_STRUC OCCURS 10,
END OF RSFS_TAB_FIELDS.
...
TYPES: RSFS_FIELDS TYPE RSFS_TAB_FIELDS OCCURS 10.
DATA SELECT_FIELDS TYPE RSFS_FIELDS.
SELECT_FIELDS is thus an internal table. Each line of this internal table contains a table name ( TABLENAME ) and another internal table ( FIELDS ) which contains the desired fields of the table ( TABLENAME ).
Note
Neither the TYPE-POOL RSFS nor the declaration of SELECT_FIELDS has to appear in the database program. Both are automatically included by the system. Unlike the objects connected with the addition DYNAMIC SELECTIONS , SELECT_FIELDS is also available in the report.
In the database program SAPDBldb , an access to a table XXXX could look something like below:
FORM PUT_XXXX.
DATA L_TAB_FIELDS TYPE RSFS_TAB_FIELDS.
MOVE 'XXXX' TO L_TAB_FIELDS-TABLENAME.
READ TABLE SELECT_FIELDS WITH KEY L_TAB_FIELDS-TABLENAME
INTO L_TAB_FIELDS.
SELECT (L_TAB_FIELDS-FIELDS)
INTO CORRESPONDING FIELDS OF XXXX
FROM XXXX
WHERE field1 IN ...
AND field2 ....
...
PUT XXXX.
ENDSELECT.
ENDFORM.
Note
If the table L_TAB_FIEDLS is empty, i.e. if no dynamic selections are entered for the table XXXX , SELECT (L_TAB_FIELDS) ... works like SELECT * ... , i.e. all fields of the table XXXX are filled.
The internal table SELECT_FIELDS already contains values when the routine INIT is executed in the database program or when the INITIALIZATION processing is executed in the report. It can be manipulated by the appropriate program if it is absolutely necessary to fill another field for the logical database.
Variants
1. SELECTION-SCREEN BEGIN OF LINE.
2. SELECTION-SCREEN END OF LINE.
3. SELECTION-SCREEN SKIP n.
4. SELECTION-SCREEN ULINE.
5. SELECTION-SCREEN POSITION pos.
6. SELECTION-SCREEN COMMENT fmt name.
7. SELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.
8. SELECTION-SCREEN BEGIN OF BLOCK block.
9. SELECTION-SCREEN END OF BLOCK block.
10. SELECTION-SCREEN FUNCTION KEY n.
11. SELECTION-SCREEN BEGIN OF VERSION ver TEXT-xxx.
12. SELECTION-SCREEN END OF VERSION ver.
13. SELECTION-SCREEN EXCLUDE ... .
14. SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
15. SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
Effect
The key word SELECTION-SCREEN only makes sense in reports, i.e. programs specified as type "1" in the attributes. You use it to design the selection screen in the program or logical database access routine.
The selection screen is normally generated from the SELECT-OPTIONS and PARAMETERS statements in the report and logical database access routine. Each of these objects occupies a separate line on the selection screen.
SELECTION-SCREEN allows you to form blocks, combine several parameters and comments together on one line, generate pushbuttons on the screen or activate them in the application toolbar, as well as insert blank lines, underscore lines and comments.
Like SELECT-OPTIONS and PARAMETERS , you can use SELECTION-SCREEN statements in reports and in the include program DBldbSEL of the logical database ldb assigned to the report in the attributes. Some variants are defined only for logical databases and can therefore only be used in the include program DBldbSEL .
Variant 1
SELECTION-SCREEN BEGIN OF LINE.
Variant 2
SELECTION-SCREEN END OF LINE.
Effect
Allows you to combine several parameters and comments specified between the SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE statements and output them on one line. As a result, there is no automatic new line for each PARAMETER and no selection texts are displayed.
Example
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) TEXT-001.
PARAMETERS: P1(3), P2(5), P3(1).
SELECTION-SCREEN END OF LINE.
Selection screen:
Comment ___ _____ _
Note
You cannot order SELECT-OPTIONS between SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE because several objects are generated on the selection screen for a SELECT-OPTION (e.g. fields for the lower and upper limits of ranges).
Variant 3
SELECTION-SCREEN SKIP n.
Additions
1. ... FOR TABLE dbtab
2. ... ID id
Effect
Generates n blank lines (see also SKIP ).
You must specify a value for n between 1 and 9. If you want to output just one blank line, you can omit n .
Addition 1
... FOR TABLE dbtab
Effect
This addition is allowed only in the database include program DBldbSEL . It is, in fact, a requirement. If you use SELECTION-SCREEN SKIP in DBldbSEL , you must assign the statement to a table (or to a field - see the variant COMMENT .
This assignment is necessary in order to restrict the SELECTION-SCREEN statements for a report selection screen to those relevant for the tables used in the report, i.e. those which refer to a table used in the report. Any SELECTION-SCREEN statement assigned to a table not used in the report with the addition FOR TABLE dbtab are ignored when the report selection screen is generated.
Note
A table dbtab of the logical database ldb is considered as "used in the report" if it is either declared in a TABLES statement or its position in the database hierarchy lies somewhere between the root and a table dbtab_2 declared in the report.
Example
Hierarchy of logical database ldb :
SPFLI
|
---- SAPLANE
|
---- SFLIGHT
|
---- SBOOK
In the report:
TABLES SFLIGHT.
Tables considered as "used" include SFLIGHT (since it is
declared directly), as well as SAPLANE and SPFLI (since
they lie on the path from the hierarchy root " SPFLI " to the
declared table SFLIGHT ). The table SBOOK is not
considered as used, i.e. all the SELECTION-SCREEN statements
qualified with the addition " FOR TABLE SBOOK " in DBldbSEL
are ignored.
Addition 2
... ID id
Effect
This addition is allowed only in the database include program DBldbSEL . It is used to identify a SELECTION-SCREEN object (in this case blank lines) via an ID which can be up to 3 characters long. This ID is then specified in SELECTION-SCREEN EXCLUDE IDS id in order to exclude the object from a selection screen version.
Variant 4
SELECTION-SCREEN ULINE.
Additions
1. ... fmt
2. ... FOR TABLE dbtab
3. ... MODIF ID mod
4. ... ID id
Effect
Generates an underline (see also ULINE ).
Addition 1
... fmt
Effect
Format specification with the form /pos(len) , pos(len) or (len) . The slash ( / ) generates a new line and is therefore not allowed between BEGIN OF LINE and END OF LINE . The effect of the statement is to underscore the current line starting from the position pos for the length len . The variant (len) (without position specification) is allowed only between BEGIN OF LINE and END OF LINE . In this case, the current position in the line is used. See also WRITE .
You can specify the position pos as a number (in this case, it is relative to the frame if the statement comes between SELECTION-SCREEN BEGIN OF BLOCK ... WITH FRAME ... and SELECTION-SCREEN END OF BLOCK ... ). Also allowed are the symbolic positions POS_LOW and POS_HIGH . These are the positions at which the input fields of the SELECT-OPTI ONS are output ( POS_LOW is also the position of PARAMETERS .
Note
Format specifications which do not generate a new line can produce overlapping objects on the selection screen. Therefore, you should be particularly careful with position and length specifications.
Example
SELECTION-SCREEN ULINE /1(10).
SELECTION-SCREEN ULINE POS_LOW(10).
SELECTION-SCREEN ULINE POS_HIGH(10).
This generates three underscore blocks, each with a length of 10, on one line.
Addition 2
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP ).
Addition 3
... MODIF ID mod
Effect
The specified modification group ( SCREEN-GROUP1 ) is assigned to the underscore. You can use this under AT SELECTION-SCREEN in the report or in the PAI routine of the database program SAPDBldb to modify the screen.
Note
The name of the modification group must be specified without quotation marks. It can be up to three characters long.
Addition 4
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 5
SELECTION-SCREEN POSITION pos.
Addition
... FOR TABLE dbtab
Effect
Outputs the parameter starting from the position pos .
This variant is allowed only between SELECTION-SCREEN BEGIN OF LINE< /> and SELECTION-SCREEN END OF LINE .
As with the addition ULINE , you can specify the position as fixed (if necessary relative to the frame) or symbolically in the form POS_LOW or POS_HIGH .
Addition
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 6
SELECTION-SCREEN COMMENT fmt name.
Additions
1. ... FOR TABLE dbtab
2. ... FOR FIELD f
3. ... MODIF ID mod
4. ... ID id
Effect
Generates a comment on the selection screen. For the name name , there are two options:
name takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. name is another eight-character name. Here, you create a field with the name name in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field name is generated automatically and so cannot be defined with DATA .
With comments, you must always specify a format fmt (see variant ULINE ).
Note
You must program a new line yourself via the format fmt .
Addition 1
... FOR TABLE dbtab
Note
See variation 3 (SELECTION-SCREEN SKIP).
Addition 2
... FOR FIELD f
Effect
Since the comment is assigned to a parameteror a select-option , the help display shows the documentation of the reference field if this parameter or selection option.
In addition, the comment is suppressed if the reference object was set to 'invisible' via a selection variant.
Note
In database access routines, the comment is generated whenever the reference field is output. Therefore, you should not use the addition FOR TABLE with this variant.
Example
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 10(20) TEXT-001
FOR FIELD PARM.
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS PARM LIKE SAPLANE-PLANETYPE.
SELECTION-SCREEN END OF LINE.
This code displays a 20-byte long comment followed by the parameter at the normal position ( POS_LOW ) on the same line. If the user presses F1 for both objects, the documentation of SAPLANE-PLANETYPE is displayed.
Addition 3
... MODIF ID mod
Effect
See variant 4 ( SELECTION-SCREEN ULINE )
Addition 4
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Variant 7
SELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.
Additions
1. ... FOR TABLE dbtab
2. ... MODIF ID mod
3. ... ID id
Effect
Generates a pushbutton on the selection screen. Also specified is the user command ucom (without quotation marks) which can be up to 4 characters long. This is generated when the user presses the button. Apart from this, the syntax is largely similar to that of SELECTION-SCREEN COMMENT :
For the name name , there are two options:
name takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. name is another eight-character name. Here, you create a field with the name name in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field name is generated automatically and so cannot be defined with DATA .
With pushbuttons, you must always specify a format fmt (see variant ULINE ).
Note
You must program a new line yourself via the format fmt .
The best way to respond to the user pressing the pushbutton is in the event AT SELECTION-SCREEN or - in the case of pushbuttons in the database include program DBldbSEL - in the routine PAI (with FNAME = '*' and MARK = SPACE ) in the database program SAPDBldb . Here, the field SSCRFIELDS-UCOMM contains the user command ucom (the table SSCRFIELDS must be declared with the TABLES statement).
Addition 1
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Addition 2
... MODIF ID mod
Effect
See variant 4 ( SELECTION-SCREEN ULINE )
Addition 3
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Example
TABLES SSCRFIELDS.
...
SELECTION-SCREEN PUSHBUTTON /10(20) CHARLY USER-COMMAND ABCD.
...
INITIALIZATION.
MOVE 'My text' TO CHARLY.
...
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'ABCD'.
...
ENDIF.
The selection screen displays a pushbutton with the text 'My text' . With AT SELECTION-SCREEN , the field SSCRFIELDS-UCOMM contains ABCD after the user has pressed the button.
Variant 8
SELECTION-SCREEN BEGIN OF BLOCK block.
Additions
1. ... WITH FRAME
2. ... TITLE title
3. ... NO INTERVALS
Effect
Starts a logical block on the selection screen. If you use the addition WITH FRAME , a frame is generated around the block. The addition TITLE title is allowed only in conjunction with WITH FRAME .
For the title title ,there are two options (see also the variants COMMENT and PUSHBUTTON ):
title takes the form TEXT-xxx where xxx is a three-character name for a text symbol. In this case, the contents of the text symbol are displayed at runtime, i.e. the text cannot be changed dynamically. title is another eight-character name. Here, you create a field with the name title in the length specified in the format fmt< /> and it is then generated as an output field on the selection screen. The contents of these comments must therefore be set at runtime (e.g. at INITIALIZATION or - in the case of comments in the database include program DBldbSEL - in the routine INIT of the database program SAPDBldb . They can also be changed when the selection screen is being processed.
Note
The field title is generated automatically and so cannot be defined with DATA .
At runtime, the event AT SELECTION-SCREEN ON BLOCK block is executed for every block in the PAI module of the selection screen (with database- specific blocks, the PAI module in the program SAPDBldb is also executed with the parameters FNAME = BLOCK_block and MARK = SPACE ). If this produces an error message, just the fields of this block are ready for input.
You can nest blocks. The maximum nesting depth for blocks with frames is 5.
Addition 3
... NO INTERVALS
Effect
Displays all SELECT-OPTIONS within the block in simplified form without a 'to' field on the selection screen (like the addition " NO INTERVALS " with SELECT-OPTIONS ). If the block has a frame, this is correspondingly small.
Note
In the case of blocks without frames, the attribute " NO INTERVALS " is not inherited by subordinate blocks. However, all subordinate blocks of blocks with frames inherit this attribute because the generated frame is smaller and there is no space for the 'to' field.
Variant 9
SELECTION-SCREEN END OF BLOCK block.
Effect
Closes the block opened by SELECTION-SCREEN BEGIN OF BLOCK block . If the block has a frame, the frame is closed here. Blocks opened in the include program DBldbSEL must also be closed there.
Note
Blocks defined in the database include program DBldbSEL must also be close there. As with SELECTION-SCREEN BEGIN OF LINE and SELECTION-SCREEN END OF LINE , you cannot use the addition FOR TABLE with blocks. Instead, the objects in the blocks (selection options , parameters , comments, underscores ...) are omitted if the table to which they belong is not used in the report (see note under variant SELECTION-SCREEN SKIP ). Empty blocks (possibly with frames) are also omitted.
Example
TABLES SAPLANE.
SELECTION-SCREEN BEGIN OF BLOCK CHARLY
WITH FRAME TITLE TEXT-001.
PARAMETERS PARM(5).
SELECT-OPTIONS SEL FOR SAPLANE-PLANETYPE.
SELECTION-SCREEN END OF BLOCK CHARLY.
(Let TEXT-001 contain 'Block Charly' ).
Selection screen:
--Block Charly-----------------------------------
| PARM _____ |
| SEL ________ bis ________ |
-------------------------------------------------
Variant 10
SELECTION-SCREEN FUNCTION KEY n.
Additions
1. ... FOR TABLE dbtab
2. ... ID id
Effect
With this variant, you can activate up to 5 function keys in the application toolbar on the selection screen ( n is one of the numbers 1 to 5).
At runtime, the text must be placed in the Dictionary field SSCRFIELDS-FUNCTXT_01 or ... SSCRFIELDS-FUNCTXT_05 .
The function code placed in the field SSCRFIELDS-UCOMM is 'FC01' or ... 'FC05' . You can read this function code under AT SELECTION-SCREEN or in the PAI module of the database access program SAPDBldb .
Addition 1
... FOR TABLE dbtab
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Addition 2
... ID id
Effect
See variant 3 ( SELECTION-SCREEN SKIP )
Example
TABLES SSCRFIELDS.
...
SELECTION-SCREEN FUNCTION KEY 1.
...
INITIALIZATION.
MOVE 'My text' TO SSCRFIELDS-FUNCTXT_01.
...
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC01'.
...
ENDIF.
The selection screen displays a pushbutton with the text 'My text' . With AT SELECTION-SCREEN , the field SSCRFIELDS-UCOMM contains FC01 after the user has pressed the button.
Variant 11
SELECTION-SCREEN BEGIN OF VERSION ver TEXT-xxx.
Variant 12
SELECTION-SCREEN END OF VERSION ver.
Variant 13
SELECTION-SCREEN EXCLUDE ... .
Effect
Defines a selection screen version (with a three-character name ver ). These variants are only allowed in the database include program DBldbSEL . Between BEGIN OF VERSION and END OF VERSION , you can exclude selection screen objects for the version ver , i.e. remove them from the selection screen with SELECTION-SCREEN EXCLUDE. .
For a report, you activate a selection screen by making an entry in the attributes. If the database access program SAPDBldb itself has a selection screen version in the attributen, this applies for all reports which use this logical database and have attributes where no separate selection screen version is declared.
The text symbol TEXT -xxx is used merely to facilitate selection of a selection screen version via F4 help when maintaining the attributes.
Additions
(to SELECTION-SCREEN EXCLUDE )
1. ... PARAMETERS par
2. ... SELECT-OPTIONS sel
3. ... RADIOBUTTON GROUPS radi
4. ... BLOCKS block
5. ... IDS id
Effect
Excludes selection screen objects between SELECTION-SCREEN BEGIN and END OF VERSION . This allows you to exclude individual parameters or selection options , radiobutton groups , blocks defined by SELECTION-SCREEN BEGIN/END OF BLOCK and other objects such as comments and underscores specified by the addition ID id .
Note
The database program SAPDBldb can get the active version for the current report with the function module RS_SELSCREEN_VERSION .
Example
PARAMETERS PAR_1 LIKE dbfield_1 FOR TABLE dbtab_1.
SELECT-OPTIONS SEL_1 FOR dbfield_01.
SELECT-OPTIONS SEL_2 FOR dbfield_02.
SELECT-OPTIONS SEL_3 FOR dbfield_03.
SELECTION-SCREEN COMMENT /10(20) TEXT-100 FOR TABLE dbtab_1 ID 001.
SELECTION-SCREEN COMMENT /8(30) TEXT-200 FOR TABLE dbtab_2 ID 002.
PARAMETERS PAR_2 LIKE dbfield_1 FOR TABLE dbtab_2.
PARAMETERS PAR_3 LIKE dbfield_1 FOR TABLE dbtab_2.
...
SELECTION-SCREEN BEGIN OF VERSION ABC TEXT-008.
SELECTION-SCREEN EXCLUDE PARAMETERS: PAR_1, PAR_3.
SELECTION-SCREEN EXCLUDE SELECT-OPTIONS: SEL_2.
SELECTION-SCREEN EXCLUDE IDS: 001.
SELECTION-SCREEN END OF VERSION ABC.
If the report attributes (or the attributes of the database program SAPDBldb ) contain the selection screen version ABC , the parameters PAR_1 and PAR_3 , the selection option SEL_2 and the comment with the text number 100 ( ID 001 ) are not displayed on the selection screen. When you maintain the attributes, the text symbol 008 of SAPDBldb is displayed if you press F4 on the field 'Selection screen version'.
Variant 14
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
Addition
... ID id
Effect
This variant is allowed only in the database include program DBldbSEL . It informs you for which logical database tables additional selections are supported. If one of these tables is active in the report (i.e. it is declared under TABLES or lies somewhere on the path from the root of the database hierarchy to a table declared with TABLES ), a psuhbutton called 'Dynamic selections' appears on the selection screen. On pressing this button, the user branches to a dialog Taste where it is possible to enter selections for the fields of the relevant tables in the logical database. You can define the field list in two different ways:
Via a selection view defined for the purpose:
You can maintain selection views within the logical database maintenance transaction. They consist of a set of fields from logical database tables which are divided into groups. It is also possible to preselect fields. Customers can overlay these selection views with their own (i.e. in this case, the system searches first for the customer selection view and only accesses the SAP selektion view if no customer-specific view exists).
If a preselection has already been made in the selection view, the user immediately sees the selection screen for the preselected fields and can enter selections. Otherwise, a fields must be selected first.
Via all fields of all tables
In this case, the user must first choose the tables and then select the fields for which additional selections are to be made before branching to the selection screen to enter the dynamic selections.
The database access programm SAPDBldb then receives the WHERE clauses generated from the user entries in the form of a complex data object DYN_SEL .
Addition
... ID id
Effect
Similar to the addition 2 ( SKIP ). This allows you to exclude tables from the possibility of dynamic selection via the selection screen versions.
Note
The exact definition of the object DYN_SEL is stored in the TYPE-POOL RSDS and is as follows:
TYPES: BEGIN OF RSDS_WHERE,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
WHERE_TAB LIKE RSDSWHERE OCCURS 5,
END OF RSDS_WHERE.
...
TYPES: BEGIN OF RSDS_TYPE,
CLAUSES TYPE RSDS_WHERE OCCURS 5,
TEXPR TYPE RSDS_TEXPR,
TRANGE TYPE RSDS_TRANGE,
END OF RSDS_TYPE.
DATA DYN_SEL TYPE RSDS_TYPE.
The object DYN_SEL thus contains a component ( CLAUSES ) which is an internal table. Each line of this internal table contains a table name ( TABLENAME ) and another table ( WHERE_TAB ) which contains the WHERE clauses for the table ( TABLENAME ).
You can find the structure of the other components in the type pool RSDS .
TEXPR contains the selections in a format which allows storage and can be used for the "freely callable" function modules when entering dynamic selections ( FREE_SELECTIONS_INIT , FREE_SELECTIONS_DIALOG ). TRANGE contains the selections in the form of RANGES tables which can be used with the IN operator in SELECT , CHECK and IF .
Note
Neither the TYPE-POOL RSDS nor the declaration of DYN_SEL must appear in the database program. Both are automatically included by the system.
In the database program SAPDBldb , an access to a table XXXX could look something like below:
FORM PUT_XXXX.
DATA L_DS_CLAUSES TYPE RSDS_WHERE.
MOVE 'XXXX' TO L_DS_CLAUSES-TABLENAME.
READ TABLE DYN_SEL-CLAUSES WITH KEY L_DS_CLAUSES-TABLENAME
INTO L_DS_CLAUSES.
SELECT * FROM XXXX
WHERE field1 IN ...
AND field2 ....
...
AND (L_DS_CLAUSES-WHERE_TAB).
PUT XXXX.
ENDSELECT.
ENDFORM.
Note
If the table L_DS_CLAUSES-WHERE_TAB is empty, i.e. if no dynamic selections are entered for the table XXXX , the addition ... AND (L_DS_CLAUSES-WHERE_TAB) is ignored during the SELECT .
Variant 15
SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
Addition
... ID id
Effect
This variant is allowed only in the database include program DBldbSEL . It informs you for which logical database tables field selection is supported.
For these tables, you can fill just those database fields which the report actually needs. In the report, you determine these fields with GET dbtab FIELDS f1 ... fn or GET dbtab LATE FIELDS f1 ... fn (the field list is then supplemented by the key fields of the table dbtab ).
By restricting to the really necessary field, you considerably improve performance. The database access program SAPDBldb receives the desired fields for the dynamic field selection in the form of an internal table SELECT_FIELDS .
Note
The exact definition of the object SELECT_FIELDS is stored in the TYPE-POOL RSFS and looks something like below:
TYPES: BEGIN OF RSFS_TAB_FIELDS,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
FIELDS LIKE RSFS_STRUC OCCURS 10,
END OF RSFS_TAB_FIELDS.
...
TYPES: RSFS_FIELDS TYPE RSFS_TAB_FIELDS OCCURS 10.
DATA SELECT_FIELDS TYPE RSFS_FIELDS.
SELECT_FIELDS is thus an internal table. Each line of this internal table contains a table name ( TABLENAME ) and another internal table ( FIELDS ) which contains the desired fields of the table ( TABLENAME ).
Note
Neither the TYPE-POOL RSFS nor the declaration of SELECT_FIELDS has to appear in the database program. Both are automatically included by the system. Unlike the objects connected with the addition DYNAMIC SELECTIONS , SELECT_FIELDS is also available in the report.
In the database program SAPDBldb , an access to a table XXXX could look something like below:
FORM PUT_XXXX.
DATA L_TAB_FIELDS TYPE RSFS_TAB_FIELDS.
MOVE 'XXXX' TO L_TAB_FIELDS-TABLENAME.
READ TABLE SELECT_FIELDS WITH KEY L_TAB_FIELDS-TABLENAME
INTO L_TAB_FIELDS.
SELECT (L_TAB_FIELDS-FIELDS)
INTO CORRESPONDING FIELDS OF XXXX
FROM XXXX
WHERE field1 IN ...
AND field2 ....
...
PUT XXXX.
ENDSELECT.
ENDFORM.
Note
If the table L_TAB_FIEDLS is empty, i.e. if no dynamic selections are entered for the table XXXX , SELECT (L_TAB_FIELDS) ... works like SELECT * ... , i.e. all fields of the table XXXX are filled.
The internal table SELECT_FIELDS already contains values when the routine INIT is executed in the database program or when the INITIALIZATION processing is executed in the report. It can be manipulated by the appropriate program if it is absolutely necessary to fill another field for the logical database.