‎2010 Dec 01 2:45 AM
Hi all,
I have a requirement that if i select an option of the radiobutton in the selection-screen, the other must be grayed out. And at the same time, if the 1st option is re-selected, the other one is grayed out. Hope someone can help me with this. By the way, here's my declaration.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : rb_type RADIOBUTTON GROUP grp1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 7(26) text-004 FOR FIELD rb_type.
SELECT-OPTIONS : s_prog FOR trdir-name.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : rb_type2 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 7(26) text-006 FOR FIELD rb_type2.
SELECT-OPTIONS : s_progf FOR tfdir-funcname.
SELECTION-SCREEN END OF LINE.
Thanks you so much.
‎2010 Dec 01 4:56 AM
Hi,
Write as :
SELECTION-SCREEN BEGIN OF LINE.
*PARAMETERS : rb_type RADIOBUTTON GROUP grp1 DEFAULT 'X' user-command UCOM.*SELECTION-SCREEN COMMENT 7(26) text-004 FOR FIELD rb_type.
SELECT-OPTIONS : s_prog FOR trdir-name.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : rb_type2 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 7(26) text-006 FOR FIELD rb_type2.
SELECT-OPTIONS : s_progf FOR tfdir-funcname.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
loop at screen.
if rb_type = 'X'.
if screen-name = 'S_PROGF-LOW' OR
screen-name = 'S_PROGF-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
endif.
endloop.
AT SELECTION-SCREEN OUTPUT.
loop at screen.
if rb_type = 'X'.
if screen-name = 'S_PROGF-LOW' OR
screen-name = 'S_PROGF-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
elseif rb_type2 = 'X'.
if screen-name = 'S_PROG-LOW' OR
screen-name = 'S_PROG-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
endif.
endloop.Regards,
Srini.
‎2010 Dec 01 4:56 AM
Hi,
Write as :
SELECTION-SCREEN BEGIN OF LINE.
*PARAMETERS : rb_type RADIOBUTTON GROUP grp1 DEFAULT 'X' user-command UCOM.*SELECTION-SCREEN COMMENT 7(26) text-004 FOR FIELD rb_type.
SELECT-OPTIONS : s_prog FOR trdir-name.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : rb_type2 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 7(26) text-006 FOR FIELD rb_type2.
SELECT-OPTIONS : s_progf FOR tfdir-funcname.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
loop at screen.
if rb_type = 'X'.
if screen-name = 'S_PROGF-LOW' OR
screen-name = 'S_PROGF-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
endif.
endloop.
AT SELECTION-SCREEN OUTPUT.
loop at screen.
if rb_type = 'X'.
if screen-name = 'S_PROGF-LOW' OR
screen-name = 'S_PROGF-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
elseif rb_type2 = 'X'.
if screen-name = 'S_PROG-LOW' OR
screen-name = 'S_PROG-HIGH'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
endif.
endif.
endloop.Regards,
Srini.
‎2010 Dec 01 4:59 AM
Hi,
You are not very clear in explaining your requirement. To the extent of my understanding, you want s_progf to be disabled when you select rb_type and s_prog when you select rb_type2. Correct me if I am wrong.
Add the screen group for the select options in your selection screen code. Then in AT SELECTION SCREEN OUTPUT write this code.
LOOP AT SCREEN.
IF rb1 = 'x' AND ( screen-group1 = co_sc2 ).
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
IF rb2 = 'x' AND ( screen-group1 = co_sc1 ).
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
CLEAR screen.
ENDLOOP.Thanks,
sri.
‎2010 Dec 01 5:06 AM
Try
SCREEN-INPUT = 0. MODIFY SCREEN.
EDIT:
How can you reselect the other radiobutton if it is grayed out :P. Doing that is meaning less.
Please correct your question.
Edited by: Sree134 on Dec 1, 2010 6:07 AM
‎2010 Dec 01 5:08 AM
Hi,
Excute below code then u can understand code.
SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-005.
PARAMETERS:R1 RADIOBUTTON GROUP G3 USER-COMMAND com modif id aa DEFAULT 'X',
R2 RADIOBUTTON GROUP G3 MODIF ID bb.
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-004.
PARAMETERS: p_copyt RADIOBUTTON GROUP g2 MODIF ID 002,
p_copyi RADIOBUTTON GROUP g2 MODIF ID 002.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-003.
PARAMETERS:p_test RADIOBUTTON GROUP g1 MODIF ID 001,
p_flag RADIOBUTTON GROUP g1 MODIF ID 001.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
loop AT SCREEN.
*******MODIFIED TO CHECKBOX*****************
if r1 = 'X'.
if screen-group1 eq '001'." and screen-group1 eq 003.
screen-INPUT = 1.
MODIFY SCREEN.
endif.
if screen-group1 eq '002'." and screen-group1 eq 003.
screen-INPUT = 0.
MODIFY SCREEN.
endif.
elseif r2 = 'X'.
CLEAR:P_TEST,P_FLAG.
if screen-group1 eq '001'." and screen-group1 eq 003.
screen-INPUT = 0.
MODIFY SCREEN.
endif.
if screen-group1 eq '002'." and screen-group1 eq 003.
screen-INPUT = 1.
MODIFY SCREEN.
endif.
endif.
endloop.
regards,
muralii
‎2010 Dec 01 5:19 AM
Hi,
Thanks for all your replies. My code is working fine now.