Thursday, November 22, 2007

Abap Code for Create Listbox

Description:
Here is a simple program that create Listbox and display the selected value. I create this program to help Dennis Staiger. And because this tutorial very simple it is more suitable for newbie.

First, we create Type and Data declaration, and get data for listbox value.

REPORT  Z_LISTBOX .
TABLES: T554T.
DATA : BEGIN OF WA_T554T,
AWART TYPE AWART,
ATEXT TYPE ABWTXT,
END OF WA_T554T,
IT_T554T LIKE STANDARD TABLE OF WA_T554T,
OK_CODE LIKE sy-ucomm.

START-OF-SELECTION.

* Get Listbox Item
SELECT AWART ATEXT
INTO TABLE IT_T554T
FROM T554T
WHERE SPRSL = 'EN'.

SORT IT_T554T BY AWART.
DELETE ADJACENT DUPLICATES FROM IT_T554T COMPARING AWART.

CALL SCREEN 9100.

Lets create the screen with Listbox on it.
Screen name : '9100'.
Label name : 'Label1'.
Label text : 'Please Select:'.
Lisbox name : 'T554T-AWART'.

Tips for creating Lisbox:

  • Create input field
  • Double click on your input field to display Screen Painter Attributes
  • Select Dropdown as Lisbox.

Don't forget to input FctCode value: 'SELECTED'.

Don't forget to add OK_CODE in screen element list.

Now let add code for the Flow Logic on Screen 9100.

PROCESS BEFORE OUTPUT.
MODULE STATUS_9100.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_9100.

PROCESS ON VALUE-REQUEST.
FIELD T554T-AWART MODULE create_dropdown_box.

Here we create GUI-Status and GUI-Title.
MODULE STATUS_9100.

MODULE STATUS_9100 OUTPUT.
SET PF-STATUS 'ST_9100'.
SET TITLEBAR 'TB_9100'.
ENDMODULE. " STATUS_9100 OUTPUT




Here we add Listbox value.
FIELD T554T-AWART MODULE create_dropdown_box.

MODULE create_dropdown_box INPUT.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'AWART'
value_org = 'S'
TABLES
value_tab = IT_T554T
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
...
ENDIF.
ENDMODULE. " create_dropdown_box INPUT

Here we display the Selected Lisbox Value using message box.
MODULE USER_COMMAND_9100.

MODULE USER_COMMAND_9100 INPUT.
CASE OK_CODE.
WHEN 'BACK'. LEAVE TO SCREEN 0.
WHEN 'EXIT'. LEAVE TO SCREEN 0.
WHEN 'CANC'. LEAVE TO SCREEN 0.
WHEN 'SELECTED'.
READ TABLE IT_T554T INTO WA_T554T BINARY SEARCH
WITh KEY AWART = T554T-AWART.
IF SY-SUBRC = 0.
MESSAGE I398(00) WITH 'Key: ' WA_T554T-AWART
'Value: ' WA_T554T-ATEXT.

ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_9100 INPUT
Here the result:

No comments:

Blog Archive