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

drop down menu...

Former Member
0 Likes
366

hi,

im a new learner for abap....

i have to create a new subject and put in drop down text..

usually its take from data dictionary... but in my kes i support to creat new subject like ' text1' and 'text2', put it in drop down menu....'

i need your help....

2 REPLIES 2
Read only

Former Member
0 Likes
345

Hi Suguna,

Use this FM "VRM_SET_VALUES". For reference I am sending one program,go thru it and make changes accordingly...

REPORT zmti_pump_sr_no.

**********DATA DECLARATION**********

Type-pools : vrm.

INCLUDE zmti_pump_sr_no_dec.

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

********Selection Screen************

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS : p_plant TYPE eqbs-b_werk OBLIGATORY,

p_mat_no TYPE m_mat1m-matnr OBLIGATORY,

p_year(4) AS LISTBOX VISIBLE LENGTH 10,

p_test(10) AS LISTBOX VISIBLE LENGTH 12,

p_no_ser TYPE i OBLIGATORY,

p_sbu(11) DEFAULT 'P | PDP-SBU' MODIF ID sg1,

p_mat_de TYPE m_mat1m-maktg MODIF ID sg1.

SELECTION-SCREEN END OF BLOCK b1.

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

INITIALIZATION.

PERFORM f4_year_request.

PERFORM f4_value_request.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-group1 = 'SG1'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN ON p_mat_no.

PERFORM validate_mat_no.

AT SELECTION-SCREEN.

SELECT SINGLE maktg

FROM m_mat1m "#EC *

INTO p_mat_de

WHERE matnr = p_mat_no

AND spras = 'EN'. " This is for material description. "#EC *

START-OF-SELECTION.

SET PF-STATUS 'EUSRN'.

PERFORM fetch_sernr.

PERFORM get_srno.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'BK' OR 'EXIT' OR 'CANCEL'.

--


START CHNG01 BY SACHCHIDANAND ON 08.05.08--

  • LEAVE PROGRAM. "CHNG01 --

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

titlebar = text-022

text_question = text-023

text_button_1 = text-024

text_button_2 = text-025

default_button = '1'

display_cancel_button = 'X'

IMPORTING

answer = _answer

EXCEPTIONS

text_not_found = 1

OTHERS = 2.

CASE _answer.

WHEN 'A'.

WHEN 1.

LOOP AT it_ser INTO wa_ser.

x_spec-serialno = wa_ser-sernr.

CALL FUNCTION 'ZBAPI_EQUI_CREATE'

EXPORTING

data_general = x_gen

data_specific = x_spec

plant = p_plant

IMPORTING

equipment = x_eqp

return = x_ret.

COMMIT WORK AND WAIT.

ENDLOOP.

MESSAGE s002(zermes) WITH text-021.

LEAVE TO SCREEN 0.

WHEN 2.

IF sy-ucomm = 'CANCEL'.

LEAVE PROGRAM.

ELSE.

LEAVE TO SCREEN 0.

ENDIF.

ENDCASE.

--


END CHNG01 BY SACHCHIDANAND ON 08.05.08--

WHEN 'SAVE'.

LOOP AT it_ser INTO wa_ser.

x_spec-serialno = wa_ser-sernr.

CALL FUNCTION 'ZBAPI_EQUI_CREATE'

EXPORTING

data_general = x_gen

data_specific = x_spec

plant = p_plant

IMPORTING

equipment = x_eqp

return = x_ret.

COMMIT WORK AND WAIT.

ENDLOOP.

MESSAGE s002(zermes) WITH text-021.

LEAVE TO SCREEN 0.

ENDCASE.

&----


*& Form fetch_sernr

&----


  • text

----


FORM fetch_sernr.

CONCATENATE p_year p_test p_sbu(1) INTO ser_no. " To generate YYMMP as the reference serial number.

ser_no1 = ser_no.

SELECT sernr

FROM equi

INTO TABLE it_equi.

WRITE : / text-003 COLOR 4, 48 p_mat_no COLOR 7, p_mat_de COLOR 7.

SKIP.

WRITE : / text-020 COLOR 4, 48 p_no_ser COLOR 7.

SKIP.

ENDFORM. "form_sernr

&----


*& Form get_srno

&----


  • text

----


FORM get_srno.

DELETE it_equi

WHERE sernr NS ser_no.

DESCRIBE TABLE it_equi

LINES lin.

IF lin = 0.

WRITE 😕 text-016 COLOR 4, ser_no1 COLOR 4, text-018 COLOR 4, 48 text-019 COLOR 4.

SKIP.

WRITE : / text-017 COLOR 4.

SKIP.

CONCATENATE ser_no '0001' INTO ser_no. " Generate the first serial number i.e YYMMP0001.

MOVE ser_no TO wa_ser-sernr.

PERFORM bapi_call.

ELSE.

SORT it_equi BY sernr.

LOOP AT it_equi INTO wa_equi.

len = STRLEN( wa_equi-sernr ).

IF len <> 9.

DELETE it_equi .

ENDIF.

ENDLOOP.

DESCRIBE TABLE it_equi

LINES lin.

READ TABLE it_equi INTO

wa_equi INDEX lin.

IF sy-subrc = 0.

WRITE 😕 text-016 COLOR 4, ser_no1 COLOR 4, text-018 COLOR 4, 48 wa_equi-sernr COLOR 7.

SKIP.

WRITE : / text-017 COLOR 4.

var2 = wa_equi-sernr.

var1 = var2+5.

PERFORM calc.

ENDIF.

ENDIF.

ENDFORM. "get_srno

&----


*& Form bapi_call

&----


  • text

----


FORM bapi_call.

CLEAR : x_spec,

x_gen,

x_eqp,

x_ret.

x_spec-material = p_mat_no.

x_spec-serialno = wa_ser.

x_spec-equicatgry = 'S'.

WRITE 😕 ser_no COLOR 5.

var1 = ser_no+5.

p_no_ser = p_no_ser - 1.

APPEND wa_ser TO it_ser.

PERFORM calc.

ENDFORM. "bapi_call

&----


*& Form calc

&----


  • text

----


FORM calc.

DO p_no_ser TIMES.

var1 = var1 + 1.

CONCATENATE ser_no1 var1 INTO ser_no2.

MOVE ser_no2 TO wa_ser-sernr.

CLEAR : x_spec,

x_gen,

x_eqp,

x_ret.

x_spec-material = p_mat_no.

x_spec-serialno = wa_ser-sernr.

x_spec-equicatgry = 'S'.

SKIP.

WRITE 😕 ser_no2 COLOR 5.

APPEND wa_ser TO it_ser.

ENDDO.

ENDFORM. "calc

&----


*& Form f4_value_request.

&----


  • text

----


FORM f4_value_request.

DATA: l_name TYPE vrm_id,

li_list TYPE vrm_values,

l_value LIKE LINE OF li_list.

l_value-key = '01'.

l_value-text = text-002.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '02'.

l_value-text = text-004.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '03'.

l_value-text = text-005.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '04'.

l_value-text = text-006.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '05'.

l_value-text = text-007.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '06'.

l_value-text = text-008.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '07'.

l_value-text = text-009.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '08'.

l_value-text = text-010.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '09'.

l_value-text = text-011.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '10'.

l_value-text = text-012.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '11'.

l_value-text = text-013.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '12'.

l_value-text = text-014.

APPEND l_value TO li_list.

CLEAR l_value.

l_name = 'P_TEST'.

p_test = '01'. "this is to set the default value of the list box.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = l_name

values = li_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.

ENDFORM. " f4_value_request

&----


*& Form validate_mat_no

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validate_mat_no .

SELECT SINGLE matnr

FROM mara

INTO i_mara

WHERE matnr = p_mat_no.

IF sy-subrc <> 0.

MESSAGE e001(zermes) WITH text-015.

ENDIF.

ENDFORM. " validate_mat_no

&----


*& Form F4_YEAR_REQUEST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f4_year_request .

DATA: l_name TYPE vrm_id,

li_list TYPE vrm_values,

l_value LIKE LINE OF li_list.

l_value-key = '05'.

l_value-text = '2005'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '06'.

l_value-text = '2006'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '07'.

l_value-text = '2007'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '08'.

l_value-text = '2008'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '09'.

l_value-text = '2009'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '10'.

l_value-text = '2010'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '11'.

l_value-text = '2011'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '12'.

l_value-text = '2012'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '13'.

l_value-text = '2013'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '14'.

l_value-text = '2014'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '15'.

l_value-text = '2015'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '16'.

l_value-text = '2016'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '17'.

l_value-text = '2017'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '18'.

l_value-text = '2018'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '19'.

l_value-text = '2019'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '20'.

l_value-text = '2020'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '21'.

l_value-text = '2021'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '22'.

l_value-text = '2022'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '23'.

l_value-text = '2023'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '24'.

l_value-text = '2024'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '25'.

l_value-text = '2025'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '26'.

l_value-text = '2026'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '27'.

l_value-text = '2027'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '28'.

l_value-text = '2028'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '29'.

l_value-text = '2029'.

APPEND l_value TO li_list.

CLEAR l_value.

l_value-key = '30'.

l_value-text = '2030'.

APPEND l_value TO li_list.

CLEAR l_value.

l_name = 'P_year'. "#EC NOTEXT

p_year = '07'.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = l_name

values = li_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.

ENDFORM. " F4_YEAR_REQUEST

Regards,

Shafi

Read only

Former Member
0 Likes
345

Hi,

Check the below code :

selection-screen begin of block b1 with frame.
parameters p_dep(20) as listbox visible length 15
 default 'IT' obligatory.
selection-screen end of block b1.

at selection-screen output.
type-pools : vrm.

types : begin of tp_dep,
dep(20),
end of tp_dep.

data : my_list type vrm_values,
       value like line of my_list.

data : ig_dep type standard table of tp_dep,
       wg_dep type tp_dep.

clear wg_dep.
wg_dep-dep = 'MECH'.
append wg_dep to ig_dep.

clear wg_dep.
wg_dep-dep = 'EEE'.
append wg_dep to ig_dep.

clear wg_dep.
wg_dep-dep = 'ECE'.
append wg_dep to ig_dep.

clear wg_dep.
wg_dep-dep = 'CSE'.
append wg_dep to ig_dep.

loop at ig_dep into wg_dep.
value-key = sy-tabix.
value-text = wg_dep-dep.
append value to my_list.

CALL FUNCTION 'VRM_SET_VALUES'
  EXPORTING
    id                    = 'P_DEP'
    values                = MY_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.

endloop.

Regards,

Raghu