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

Selection screen

Former Member
0 Likes
407

Hi All ,

I have 4 parameters in my selection screen .if user enters a value in first field the second parameter should be enable if 2nd has a value 3 rd should be enable same as 4 th.

This is my code .Some how its not working . if i press enter only its working.Can any one help me in this issue?

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

parameter:p_matnr like mara-matnr modif id sc1.

parameter:spart like mara-spart modif id sc2.

parameter:mtart like mara-mtart modif id sc3.

parameter:text(100) modif id sc4.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF p_matnr is initial.

IF screen-group1 = 'SC2' or screen-group1 = 'SC3' OR SCREEN-GROUP1 = 'SC4'.

screen-input = 0.

MODIFY SCREEN.

CONTINUE.

endif.

elseif p_matnr is not initial and spart is initial .

if screen-group1 = 'SC3' OR SCREEN-GROUP1 = 'SC4'.

screen-input = 0.

MODIFY SCREEN.

CONTINUE.

endif.

elseif p_matnr is not initial and spart is not initial and mtart is initial.

if screen-group1 = 'SC4' .

SCREEN-INPUT = 0.

MODIFY SCREEN.

CONTINUE.

ENDIF.

ENDIF .

endloop.

4 REPLIES 4
Read only

former_member194669
Active Contributor
0 Likes
383

Hi,

For input parameters you need to press enter . The USER-COMMAND ucom will only work with checkboxes or radio buttons.

aRs

Read only

Former Member
0 Likes
383

AT SELECTION-SCREEN OUTPUT is similar to PAI in screens. So you need some user action to trigger it (like pressing the ENTER key). If you use radiobuttons, then you can use USER-COMMAND option to trigger it.

Read only

0 Likes
383

Why do you want it this way? Why can't you show all of them?

Read only

kesavadas_thekkillath
Active Contributor
0 Likes
383

im enclosing a prg below...it was done in my initial stages of development...so i apologize if there is any prbms...

here only when selecting the list box value the next text box is enabled......

i hope so using flag variables in the at selection-screen event can hep you...

any how plz refer the prg below...if useful reward points

&----


*& Report YKES_LIST_TEST *

*& *

&----


*& *

*& *

&----


REPORT ykes_list_test MESSAGE-ID zpp .

TYPE-POOLS: vrm, slis.

DATA: lifnr LIKE lfa1-lifnr.

DATA: v_repid LIKE sy-repid .

DATA: plnt(10) TYPE n, flg TYPE i.

DATA: name TYPE vrm_id,

mrp(55) TYPE c,

list TYPE vrm_values,

var1(10) TYPE c,

var2(30) TYPE c,

value LIKE LINE OF list.

DATA:BEGIN OF itabt024d OCCURS 0,

dispo LIKE t024d-dispo,

dsnam LIKE t024d-dsnam,

conc(55) TYPE n,

END OF itabt024d.

DATA:BEGIN OF strumarc,

matnr LIKE marc-matnr,

maktx LIKE makt-maktx,

END OF strumarc.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

DATA: itabmarc LIKE strumarc OCCURS 0 WITH HEADER LINE.

DATA:itabt001w LIKE TABLE OF t001w WITH HEADER LINE.

RANGES: r_werks FOR t001w-werks,

r_mrpdesc FOR itabt024d-dispo .

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

r_mrpdesc-option = 'EQ'.

r_mrpdesc-sign = 'I'.

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

PARAMETERS: plant LIKE r_werks AS LISTBOX VISIBLE LENGTH 10 USER-COMMAND

c1 MODIF ID pln.

PARAMETERS: vendor LIKE r_mrpdesc AS LISTBOX VISIBLE LENGTH 50 MODIF ID

det USER-COMMAND c1.

SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.

flg = 1.

IF flg = 1.

CLEAR vendor.

CLEAR plant.

ENDIF.

at selection-screen.

AT SELECTION-SCREEN OUTPUT.

PERFORM fetch_plant.

AT SELECTION-SCREEN ON plant.

PERFORM fetch_mrp.

AT SELECTION-SCREEN ON vendor.

PERFORM materials.

START-OF-SELECTION.

REFRESH i_fieldcat.

i_fieldcat-col_pos = 1 .

i_fieldcat-fieldname = 'MATNR'.

i_fieldcat-seltext_m = 'Part No'.

i_fieldcat-outputlen = 30.

i_fieldcat-fix_column = 'X'.

APPEND i_fieldcat.

CLEAR i_fieldcat.

i_fieldcat-col_pos = 2 .

i_fieldcat-fieldname = 'MAKTX'.

i_fieldcat-seltext_m = 'Part Description'.

i_fieldcat-outputlen = 30.

i_fieldcat-fix_column = 'X'.

APPEND i_fieldcat .

CLEAR i_fieldcat.

v_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_grid_title = 'Parts Under Selected MRP Controller'

it_fieldcat = i_fieldcat[]

TABLES

t_outtab = itabmarc.

&----


*& Form ASSIGN_LISTBOX_VALUES

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM assign_listbox_values .

REFRESH list.

IF flg = 1.

LOOP AT r_werks.

name = 'PLANT'.

value-key = r_werks-low.

value-text = r_werks-low.

APPEND value TO list.

ENDLOOP.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = name

values = list.

CLEAR plant.

ELSEIF flg = 0.

CLEAR itabt024d-conc.

LOOP AT itabt024d.

name = 'VENDOR'.

value-key = itabt024d-dispo.

value-text = itabt024d-conc.

APPEND value TO list.

ENDLOOP.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = name

values = list.

ENDIF.

ENDFORM. " ASSIGN_LISTBOX_VALUES

&----


*& Form get_list_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_list_data .

REFRESH list.

IF flg = 1.

SELECT DISTINCT werks FROM t001w INTO r_werks-low

WHERE kunnr EQ 'TSL' OR kunnr EQ '0000050001'.

APPEND r_werks.

ENDSELECT.

CLEAR r_werks.

SORT r_werks ASCENDING.

DELETE ADJACENT DUPLICATES FROM r_werks.

CLEAR r_werks.

ELSEIF flg = 0.

CLEAR itabt024d.

CLEAR itabt024d-conc.

SELECT dispo dsnam INTO TABLE itabt024d FROM t024d

WHERE werks EQ plant.

CLEAR itabt024d.

SORT itabt024d ASCENDING.

DELETE ADJACENT DUPLICATES FROM itabt024d.

CLEAR itabt024d.

LOOP AT itabt024d.

CONCATENATE itabt024d-dispo ' - ' itabt024d-dsnam INTO itabt024d-conc.

MODIFY itabt024d.

ENDLOOP.

ENDIF.

ENDFORM. " get_list_data

&----


*& Form fetch_plant

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fetch_plant .

REFRESH list.

IF flg = 1.

LOOP AT SCREEN.

IF screen-group1 = 'DET'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

PERFORM get_list_data.

PERFORM assign_listbox_values.

flg = 0.

ENDIF.

ENDFORM. " fetch_plant

&----


*& Form fetch_mrp

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fetch_mrp .

REFRESH list.

clear VENDOR.

IF flg = 0 .

CONDENSE plant.

IF plant NE ' '.

LOOP AT SCREEN.

IF screen-group1 = 'DET'.

screen-active = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

PERFORM get_list_data.

PERFORM assign_listbox_values.

ENDIF.

flg = 2.

ENDIF.

ENDFORM. " fetch_mrp

&----


*& Form materials

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM materials .

IF flg = 2.

IF vendor NE ' '.

CONDENSE vendor.

SELECT matnr INTO CORRESPONDING FIELDS OF

TABLE itabmarc FROM marc WHERE werks EQ plant

AND dispo EQ vendor.

CLEAR itabmarc.

LOOP AT itabmarc.

SELECT maktx FROM makt INTO (itabmarc-maktx) WHERE matnr =

itabmarc-matnr.

MODIFY itabmarc.

ENDSELECT.

ENDLOOP.

CLEAR itabmarc.

ENDIF.

ENDIF.

ENDFORM. " materials