ABAP Keyword Documentation → ABAP − Reference → SAP GUI User Dialogs → General Dynpros → Field Help, Input Help, and Dropdown List Boxes → Field Helps, Input Helps, and Dropdown List Boxes - Examples
Dynpros, List Box with Value List from PBO Module
This example demonstrates a non-recommended way to enable 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
WHERE carrid = @demof4help-carrier2
INTO CORRESPONDING FIELDS OF @wa_spfli.
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 dynpro number of dynpro 100 is 200. The input field is assigned the component CARRIER2 of the structure DEMOF4HELP from ABAP Dictionary. Its dropdown attribute is L, the output length is 15, the value list attribute is empty, and it is assigned the function code CARRIER. The function code of the pushbutton is CANCEL with the 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 dynpro number of dynpro 200 is 100. The input field is assigned the component CONNID of the structure DEMOF4HELP from ABAP Dictionary. Its dropdown attribute is L, the output length is 30, the value list attribute is A, and it is 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 selecting the input field on dynpro
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 ABAP Dictionary. The value list contains the names of the airlines. When the user selects
an entry, the dynpro 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 dynpro 200.
At the PBO event of dynpro 200, the system fills an internal table called list
with values from database table SPFLI. The key
component is filled with the flight numbers, and other relevant information is placed in the text
field. The list
table is passed to the VRM_SET_VALUES function module. When
the user chooses the input field on dynpro 200, the text
column of the internal
table is displayed in the list box. When the user selects an entry, the dynpro 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.