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

Radio button logic.

Former Member
0 Likes
1,466

Hi,

Iam using below code.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS P_APP RADIOBUTTON GROUP RA DEFAULT 'X'USER-COMMAND UC2.

SELECTION-SCREEN COMMENT 3(11) TEXT-003.

SELECTION-SCREEN POSITION 20.

PARAMETERS P_PRE RADIOBUTTON GROUP RA.

SELECTION-SCREEN COMMENT 22(15) TEXT-004.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS P_AFULL RADIOBUTTON GROUP RC MODIF ID R1.

SELECTION-SCREEN COMMENT 3(15) TEXT-005.

SELECTION-SCREEN POSITION 20.

PARAMETERS P_APART RADIOBUTTON GROUP RC MODIF ID R1.

SELECTION-SCREEN COMMENT 22(20) TEXT-006.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B3.

SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS P_PFULL RADIOBUTTON GROUP RD MODIF ID R2.

SELECTION-SCREEN COMMENT 3(15) TEXT-007.

SELECTION-SCREEN POSITION 20.

PARAMETERS P_PPART RADIOBUTTON GROUP RD MODIF ID R2.

SELECTION-SCREEN COMMENT 22(20) TEXT-008.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B4.

when user selects the P_APP radiobutton only block B3 will display.

when user selects the P_PRE radiobutton only block B4 will display.

I tried with below code.

AT SELECTION-SCREEN OUTPUT.

IF P_VALI EQ 'X'.

LOOP AT SCREEN .

CASE SCREEN-GROUP1.

WHEN 'R1'.

SCREEN-ACTIVE = 1.

WHEN 'R2'.

SCREEN-ACTIVE = 0.

ENDCASE.

MODIFY SCREEN.

ENDLOOP.

ELSE.

LOOP AT SCREEN .

CASE SCREEN-GROUP1.

WHEN 'R1'.

SCREEN-ACTIVE = 0.

WHEN 'R2'.

SCREEN-ACTIVE = 1.

ENDCASE.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

But only Radiobuttons are disable but not entire block.

Please provide me solution.

Regards,

Suresh.

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,197

Oh, and make sure to use the MODIF ID for all of the elements in the block. See that I've added the MODIF ID to the selection-screec comments.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_afull RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 3(15) text-005 MODIF ID r1.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_apart RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 22(20) text-006 MODIF ID r1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_pfull RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 3(15) text-007 MODIF ID r2.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_ppart RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 22(20) text-008 MODIF ID r2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b4.

Regards,

Rich Heilman

9 REPLIES 9
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,197

Check the values of the radiobuttons.

AT SELECTION-SCREEN OUTPUT.
IF  P_APP  =  'X'.
LOOP AT SCREEN .
CASE SCREEN-GROUP1.
WHEN 'R1'.
SCREEN-ACTIVE = 1.
WHEN 'R2'.
SCREEN-ACTIVE = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ELSEIF P_PRE = 'X'.
LOOP AT SCREEN .
CASE SCREEN-GROUP1.
WHEN 'R1'.
SCREEN-ACTIVE = 0.
WHEN 'R2'.
SCREEN-ACTIVE = 1.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDIF.

REgards,

Rich Heilman

Read only

0 Likes
1,197

Hi Heilman,

Thanks for your reply.

I tried with your code only Radio buttons are not display but textelements are display.

when user selects P_APP i don't need entire block b4.

How can i modify above code.

Regards,

Suresh

Read only

0 Likes
1,197

go to attribute--


text elements--


change the fields...

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,198

Oh, and make sure to use the MODIF ID for all of the elements in the block. See that I've added the MODIF ID to the selection-screec comments.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_afull RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 3(15) text-005 MODIF ID r1.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_apart RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 22(20) text-006 MODIF ID r1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_pfull RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 3(15) text-007 MODIF ID r2.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_ppart RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 22(20) text-008 MODIF ID r2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b4.

Regards,

Rich Heilman

Read only

Former Member
0 Likes
1,197

AT SELECTION-SCREEN OUTPUT.

IF P_VALI EQ 'X'. " i hope here your program is getting wrong try to give if p_app = x

LOOP AT SCREEN .

CASE SCREEN-GROUP1.

WHEN 'R1'.

SCREEN-ACTIVE = 1.

WHEN 'R2'.

SCREEN-ACTIVE = 0.

ENDCASE.

MODIFY SCREEN.

ENDLOOP.

ELSE.

LOOP AT SCREEN .

CASE SCREEN-GROUP1.

WHEN 'R1'.

SCREEN-ACTIVE = 0.

WHEN 'R2'.

SCREEN-ACTIVE = 1.

ENDCASE.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

Read only

Former Member
0 Likes
1,197

Hi,

I think below code will be useful for u.

selection-screen begin of block input with frame title text-000.

parameters : direct radiobutton group rg_f user-command rg_f,

plant type zctdirect_saving-zwerks modif id di ,

extern radiobutton group rg_f,

plants like zctextern_saving-zwerks modif id ex .

selection-screen end of block input.

The above is my selection screen,

loop at screen.

if screen-group1 = 'DI'.

if direct = c_x.

screen-active = 1.

clear: plants.

else.

screen-active = 0.

endif.

endif.

if screen-group1 = 'EX'.

if extern = c_x.

screen-active = 1.

clear: plant.

else.

screen-active = 0.

endif.

endif.

modify screen.

endloop.

This will toggle the screen as per our requirement.

I hope this will helpful for u.

Thanks.

Read only

Former Member
0 Likes
1,197

hay u have to use the

loop at screen...

if screen-group = 'X'.

when r1 = 'X'.

screen-input = 0.

modify screen.

endif.

Read only

Former Member
0 Likes
1,197

Modif ID's have to be used for the "SELECTION-SCREEN COMMENT " statements also. Then even the selection block and the texts will be not visible.

Eg:-

PARAMETERS P_AFULL RADIOBUTTON GROUP RC MODIF ID R1.

SELECTION-SCREEN COMMENT 3(15) TEXT-005 MODIF ID R1.

If you want to have only the fields disappeared you can use the option FOR FIELD also.

Eg:-

PARAMETERS p_afull RADIOBUTTON GROUP rc MODIF ID r1.

SELECTION-SCREEN COMMENT 3(15) text-005 FOR FIELD p_afull.

Read only

former_member585060
Active Contributor
0 Likes
1,197

Hi

Try this code

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_app RADIOBUTTON GROUP ra DEFAULT 'X' USER-COMMAND uc2.
SELECTION-SCREEN COMMENT 3(11) text-003.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_pre RADIOBUTTON GROUP ra.
SELECTION-SCREEN COMMENT 22(15) text-004.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_afull RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 3(15) text-005.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_apart RADIOBUTTON GROUP rc MODIF ID r1.
SELECTION-SCREEN COMMENT 22(20) text-006.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_pfull RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 3(15) text-007.
SELECTION-SCREEN POSITION 20.
PARAMETERS p_ppart RADIOBUTTON GROUP rd MODIF ID r2.
SELECTION-SCREEN COMMENT 22(20) text-008.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b4.


AT SELECTION-SCREEN OUTPUT.

  IF p_app = 'X' .

    LOOP AT SCREEN.
      CASE screen-group1.
        WHEN 'R1'.
          screen-input = 1.
          screen-invisible = 0.
          MODIFY SCREEN.
        WHEN 'R2'.
          screen-input = 0.
          screen-invisible = 1.
          MODIFY SCREEN.
      ENDCASE.
    ENDLOOP.

  ELSE.
    IF p_pre = 'X'.
      LOOP AT SCREEN.
        CASE screen-group1.
          WHEN 'R2'.
            screen-input = 1.
            screen-invisible = 0.
            MODIFY SCREEN.
          WHEN 'R1'.
            screen-input = 0.
            screen-invisible = 1.
            MODIFY SCREEN.
        ENDCASE.
      ENDLOOP.

    ENDIF.
  ENDIF.


START-OF-SELECTION.