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

Graying out Select-Option in the Selection Screen

Former Member
0 Likes
4,829

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,601

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.

5 REPLIES 5
Read only

Former Member
0 Likes
3,602

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.

Read only

sridhar_meesala
Active Contributor
0 Likes
3,601

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.

Read only

Former Member
0 Likes
3,601

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

Read only

Former Member
0 Likes
3,601

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

Read only

Former Member
0 Likes
3,601

Hi,

Thanks for all your replies. My code is working fine now.