ABAP Keyword Documentation → ABAP - Reference → User Dialogs → Screens → Screen and Screen Elements → Screen Elements - Examples
Screens, List Box with Value List from PBO Module
The example shows the method (not recommended) of activating a dropdown list box.
Other versions: 7.31 | 7.40 | 7.54
Source Code
REPORT demo_dynpro_dropdown_listbox.
DATA: name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.
DATA: wa_spfli TYPE spfli,
ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
TABLES demof4help.
name = 'DEMOF4HELP-CONNID'.
CALL SCREEN 100.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE init_listbox OUTPUT.
CLEAR: demof4help-connid,
list.
SELECT connid cityfrom cityto deptime
FROM spfli
INTO CORRESPONDING FIELDS OF wa_spfli
WHERE carrid = demof4help-carrier2.
value-key = wa_spfli-connid.
WRITE wa_spfli-deptime TO value-text USING EDIT MASK '__:__:__'.
value-text =
|{ value-text } { wa_spfli-cityfrom } { wa_spfli-cityto }|.
APPEND value TO list.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE 'No connections for that airline' TYPE 'I' DISPLAY LIKE 'E'.
LEAVE TO SCREEN 100.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = name
values = list.
ENDMODULE.
MODULE user_command_100.
save_ok = ok_code.
CLEAR ok_code.
IF save_ok = 'CARRIER' AND NOT demof4help-carrier2 IS INITIAL.
LEAVE TO SCREEN 200.
ELSE.
SET SCREEN 100.
ENDIF.
ENDMODULE.
MODULE user_command_200.
save_ok = ok_code.
CLEAR ok_code.
IF save_ok = 'SELECTED'.
MESSAGE i888(sabapdemos) WITH text-001 demof4help-carrier2
demof4help-connid.
CLEAR demof4help.
ENDIF.
ENDMODULE.
Description
The static next screen number of screen 100 is 200. The input field has been assigned the component CARRIER2 of the structure DEMOF4HELP from the ABAP Dictionary. Its dropdown attribute is L, the output length is 15, the value list attribute is empty, and it has been assigned the function code CARRIER. The function code of the pushbutton is CANCEL with function type E. The screen flow logic is as follows:
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
MODULE user_command_100.
The static next screen number of screen 200 is 100. The input field has been assigned the component CONNID of the structure DEMOF4HELP from the ABAP Dictionary. Its dropdown attribute is L, the output length is 30, the value list attribute is A, and it has been assigned the SELECTED function code. The function code of the pushbutton is CANCEL with the function type E. The screen flow logic is as follows:
PROCESS BEFORE OUTPUT.
MODULE init_listbox.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
MODULE user_command_200.
The user is not allowed to enter values in the screen fields. When choosing the input field on screen
100, the user sees a value list in the list box derived from the input help of the DEMOF4HELP-CARRIER2
field. In this case, this is the search help H_SCARR assigned to the SCARR
check table in the Dictionary. The value list contains the names of the airlines. When the user selects
an entry, the screen field is filled with the ID of the airline, and the event PAI is triggered. The module user_command_100
checks the OK field and calls screen 200.
In the PBO event of screen 200, the system fills an internal table called list
with values from database table SPFLI. The key
component is filled with flight connection numbers, and the corresponding information is stored in
text. The list
table is passed to the VRM_SET_VALUES function module.
When the user chooses the input field on screen 200, the internal table column text
is displayed in the list box. When the user selects an entry, the screen field is filled with the associated
entry from the key
column, and the event PAI is triggered. The module user_command_200
checks and processes the OK field.