‎2007 Jul 05 9:23 PM
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.
‎2007 Jul 05 9:34 PM
Hi,
For input parameters you need to press enter . The USER-COMMAND ucom will only work with checkboxes or radio buttons.
aRs
‎2007 Jul 05 9:40 PM
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.
‎2007 Jul 05 9:41 PM
‎2007 Jul 06 6:49 AM
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