Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Need a drop down for a selection screen

Former Member
0 Likes
1,047

HI all,

I need a drop down for a selection screen.

say for eg: Field is MARA-MTART (Material Type). The selection is optional and the dropdown should be using check table: T134

How to get a dropdown? I think a function module is used , but I dont remember the name.

Kindly reply.

Thanks in advance.

Points will be rewarded

1 ACCEPTED SOLUTION
Read only

former_member404244
Active Contributor
0 Likes
955

Hi,

chk the below code...

TYPE-POOLS: vrm.

PARAMETER: pr_spart TYPE spart AS LISTBOX VISIBLE LENGTH 7.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_spart.

INITIALIZATION.

*----Code for Drop down list....

DATA: lit_spart_list TYPE vrm_values, "Table for list of Divisions

lwa_spart_list TYPE vrm_value,

lw_name TYPE vrm_id. "Name of parameter with list-box.

*---Assign selected values to table that would be passed to FM VRM_SET_VALUES

CLEAR : lwa_spart_list,

lw_name.

*---Pass required values for list-box display.

lwa_spart_list-key = 'H'.

lwa_spart_list-text = 'HL'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'S'.

lwa_spart_list-text = 'SL'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'P'.

lwa_spart_list-text = 'PP'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'F'.

lwa_spart_list-text = 'FR'.

APPEND lwa_spart_list TO lit_spart_list.

*Name of parameter to which list is to be assigned

lw_name = 'PR_SPART'.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = lw_name

values = lit_spart_list

EXCEPTIONS

id_illegal_name = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

Reagrds,

nagaraj

8 REPLIES 8
Read only

Former Member
0 Likes
955

Hi ,

The FM is VRM_SET_VALUES.

here is a sample program which does the same


type-pools : VRM.
tables : T134.
Data : it_1 type VRM_VALUES ,
       v_index type i ,
       wa like line of it_1.

parameter : s_MTART LIKE T134-MTART AS LISTBOX  VISIBLE
               LENGTH 6  OBLIGATORY.
INITIALIZATION.
clear v_index.


select MTART INTO T134-MTART from T134.
wa-KEY = T134-MTART.
append wa to it_1.
ENdselect.


CALL FUNCTION 'VRM_SET_VALUES'
  EXPORTING
    ID                    = 'S_MTART'
    VALUES                = it_1
* EXCEPTIONS
*   ID_ILLEGAL_NAME       = 1
*   OTHERS                = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Please optamize the select statement and a better option would be selecting data from T134T , as you get the description also , populate the description in TEXT field if the table it_1

Regards

Arun

  • Assign points if reply is useful

Message was edited by:

Arun R

Read only

0 Likes
955

Very excellent answer.

But can I do it for SELECT-OPTIONS and not for PARAMETER.

Kindly do reply as soon as possible

Thanks once again

Read only

Former Member
0 Likes
955

Hi

Use FM 'VRM_SET_VALUES'

Ex:

TYPE-POOLS: vrm.

data:

ws_cnt type i,

ws_list_values type vrm_values,

ws_list_line like line of ws_list_values.

data: begin of ws_tab,

<field> like <table-field>,

end of ws_tsact.

data: i_tab like ws_tab occurs 0 with header line.

data: ws_text like <table-field>.

selection-screen: begin of line.

selection-screen: comment (31) <text> for field par_comm.

PARAMETERS: <field_name> AS LISTBOX VISIBLE LENGTH 20.

selection-screen: end of line.

append 'create' 'change' 'delete' to i_tab.

LOOP AT i_tab INTO ws_tab.

ws_cnt = ws_cnt + 1.

ws_list_line-key = ws_cnt.

ws_list_line-text = ws_tab-field.

APPEND ws_list_line TO ws_list_values.

ENDLOOP.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'PAR_COMM'

values = ws_list_values.

ENDIF.

PLZ REWARD POINTS IF HELPFUL

Read only

Former Member
0 Likes
955

HI

Please go thru this report

RSDEMO_DROPDOWN_LISTBOX

thanks

Shiva

Read only

former_member404244
Active Contributor
0 Likes
956

Hi,

chk the below code...

TYPE-POOLS: vrm.

PARAMETER: pr_spart TYPE spart AS LISTBOX VISIBLE LENGTH 7.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_spart.

INITIALIZATION.

*----Code for Drop down list....

DATA: lit_spart_list TYPE vrm_values, "Table for list of Divisions

lwa_spart_list TYPE vrm_value,

lw_name TYPE vrm_id. "Name of parameter with list-box.

*---Assign selected values to table that would be passed to FM VRM_SET_VALUES

CLEAR : lwa_spart_list,

lw_name.

*---Pass required values for list-box display.

lwa_spart_list-key = 'H'.

lwa_spart_list-text = 'HL'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'S'.

lwa_spart_list-text = 'SL'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'P'.

lwa_spart_list-text = 'PP'.

APPEND lwa_spart_list TO lit_spart_list.

lwa_spart_list-key = 'F'.

lwa_spart_list-text = 'FR'.

APPEND lwa_spart_list TO lit_spart_list.

*Name of parameter to which list is to be assigned

lw_name = 'PR_SPART'.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = lw_name

values = lit_spart_list

EXCEPTIONS

id_illegal_name = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

Reagrds,

nagaraj

Read only

Former Member
0 Likes
955

Hi jayasree,

check this,

TABLES : mara,

t134.

TYPE-POOLS: vrm.

DATA: name TYPE vrm_id,

w_mtart LIKE mara-mtart,

list TYPE vrm_values,

value LIKE LINE OF list.

PARAMETERS: p_mtart LIKE mara-mtart AS LISTBOX VISIBLE LENGTH 10.

AT SELECTION-SCREEN OUTPUT.

name = 'P_MTART'.

SELECT mtart

UP TO 10 ROWS

FROM t134

INTO w_mtart.

value-key = W_MTART.

value-text = W_MTART.

APPEND value TO list.

CLEAR W_MTART.

ENDSELECT.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = name

values = list.

START-OF-SELECTION.

WRITE: / 'PARAMETER:', p_mtart.

Read only

Former Member
0 Likes
955

Hi,

Check this program.

it demonstrates how to use.

DEFINE LB_MACRO_KOART.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) &3.

PARAMETERS: &1 AS LISTBOX VISIBLE LENGTH &2 OBLIGATORY.

SELECTION-SCREEN END OF LINE.

END-OF-DEFINITION.

************************************************************************

  • SELECTION-SCREEN *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK S1 WITH FRAME TITLE TEXT-001.

LB_MACRO_KOART MYLIST(1) 5 COMMENT.

SELECTION-SCREEN END OF BLOCK S1.

************************************************************************

  • AT SELECTION - SCREEN

************************************************************************

AT SELECTION-SCREEN OUTPUT.

PERFORM ADD_VALUES_TO_KOART.

COMMENT = 'Account type'.

&----


*& Form ADD_VALUES_TO_KOART

&----


  • Fill the values in dropdownlistbox

----


FORM ADD_VALUES_TO_KOART .

TYPE-POOLS: VRM.

DATA: MY_LIST TYPE VRM_VALUES,

VALUE LIKE LINE OF MY_LIST.

DATA : BEGIN OF I_TAB OCCURS 0,

KOART TYPE C,

END OF I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'A'.

APPEND I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'D'.

APPEND I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'K'.

APPEND I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'M'.

APPEND I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'S'.

APPEND I_TAB.

CLEAR I_TAB.

&----


*& Filling the list structure with values from MARA table

&----


LOOP AT I_TAB.

VALUE-KEY = SY-TABIX.

VALUE-TEXT = I_TAB-KOART.

APPEND VALUE TO MY_LIST.

ENDLOOP.

&----


*& Finally calling the function module to create the list box.

&----


CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'MYLIST'

VALUES = MY_LIST.

ENDFORM. " ADD_VALUES_TO_KOART

reward if helpful

Read only

0 Likes
955

Thanks but I need for select-options