Application Development 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: 

How to enable/disable a checkbox

Former Member
0 Kudos

Hello Gurus,

just want to ask on how to enable or disable a checkbox.

for example:

i choose radiobutton 1

checkbox1 is on

checkbox 2 is off

i choose radiobutton 2

checkbox1 is off

checkbox2 is on

any help will be appreciated.

Thank you very much!

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Try this its working.

PARAMETERS:
  p_rad1  RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND rad1,
  p_rad2  RADIOBUTTON GROUP rad1.

SELECTION-SCREEN :
  BEGIN OF BLOCK b1 WITH FRAMe.
PARAMETERS:
  p_check1 as checkbox,
  p_check2 as checkbox.
SELECTION-SCREEN END OF BLOCK b1.



AT SELECTION-SCREEN OUTPUT.
  PERFORM modify_sel_screen.

FORM modify_sel_screen .
  IF p_rad1 EQ 'X'.
    LOOP AT SCREEN.
      IF screen-name cp 'P_CHECK2'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 CP 'P_CHECK1'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " MODIFY_SEL_SCREEN

Regards,

Swapna.

11 REPLIES 11

Former Member
0 Kudos

While giving checkbox 1 put the default value as 'X' then the checkbox 1 will be on. When you execute the report in the selection-screen you will see that the checkbox 1 is on.

bpawanchand
Active Contributor
0 Kudos

Hi

you have to loop at SCREEN internal table

loop at screen.

if screen-name = <parameter name>.

screen-active= 0.

modify screen.

endif.

endloop.

screen field is hidden

http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9a2e35c111d1829f0000e829fbfe/frameset.htm

under user dialog --> modifying screen elemnts for SCREEN internal table

regards

Pavan

Edited by: Pavan Bhamidipati on Jul 8, 2008 10:28 AM

JozsefSzikszai
Active Contributor
0 Kudos

hi,

you can code something like this:

PARAMETERS : radio1 RADIOBUTTON GROUP 1 USER-COMMAND uc01,
radio2 RADIOBUTTON GROUP 1,
check1 AS CHECKBOX PARAMETER ID CB1,
check2 AS CHECKBOX PARAMETER ID CB2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT screen.
CASE 'X'.
WHEN radio1.
IF screen-group1 EQ 'CB1'.
screen-active = 1.
ELSEIF screen-group1 EQ 'CB2'.
screen-active = 0.
ENDIF.
WHEN radio2.
IF screen-group1 EQ 'CB2'.
screen-active = 1.
ELSEIF screen-group1 EQ 'CB1'.
screen-active = 0.
ENDIF.
ENDCASE.
MODIFY screen.
ENDLOOP.

hope this helps

ec

Former Member
0 Kudos

Hello jologs,

Use the AT SELECTION-SCREEN OUTPUT event along with

LOOP AT SCREEN......MODIFY SCREEN.ENDLOOP.

to disable what u want .

Example

PARAMETERS : 

radio1 RADIOBUTTON GROUP 1 USER-COMMAND rad1,
radio2 RADIOBUTTON GROUP 1,
check1 AS CHECKBOX PARAMETER ID CH1,
check2 AS CHECKBOX PARAMETER ID CH2.
 
AT SELECTION-SCREEN OUTPUT.
 
LOOP AT screen.

CASE 'X'.
WHEN radio1.
IF screen-group1 EQ 'CH1'.
screen-active = 1.
ELSEIF screen-group1 EQ 'CH2'.
screen-active = 0.
ENDIF.

WHEN radio2.
IF screen-group1 EQ 'CH2'.
screen-active = 1.
ELSEIF screen-group1 EQ 'CH1'.
screen-active = 0.
ENDIF.

ENDCASE.

MODIFY screen.

ENDLOOP.

Best of luck,

Bhumika

former_member705122
Active Contributor
0 Kudos

Hi,

Check this link:

Regards

Adil

Former Member
0 Kudos

Hi,

Try this its working.

PARAMETERS:
  p_rad1  RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND rad1,
  p_rad2  RADIOBUTTON GROUP rad1.

SELECTION-SCREEN :
  BEGIN OF BLOCK b1 WITH FRAMe.
PARAMETERS:
  p_check1 as checkbox,
  p_check2 as checkbox.
SELECTION-SCREEN END OF BLOCK b1.



AT SELECTION-SCREEN OUTPUT.
  PERFORM modify_sel_screen.

FORM modify_sel_screen .
  IF p_rad1 EQ 'X'.
    LOOP AT SCREEN.
      IF screen-name cp 'P_CHECK2'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 CP 'P_CHECK1'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " MODIFY_SEL_SCREEN

Regards,

Swapna.

Former Member
0 Kudos

hiiii

use following code for making checkbox disable

MODIFY LINE sy-lilli  FIELD VALUE  box
             FIELD FORMAT box INPUT OFF.

regards

twinkal

Former Member
0 Kudos

Hiii!

Try out this code.


REPORT  z_sdn.

PARAMETERS:
  p_num RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND abc,
  p_char RADIOBUTTON GROUP rad1.


PARAMETERS:
  p_num1 TYPE i MODIF ID num,
  p_num2 TYPE i MODIF ID num,
  p_char1 TYPE c MODIF ID chr,
  p_char2 TYPE c MODIF ID chr.

  AT SELECTION-SCREEN OUTPUT.

  IF p_num = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'CHR'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 = 'NUM'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

Reward points if useful

Regards

Abhijeet Kulshreshtha

Former Member
0 Kudos

Hi,

PARAMETERS:
  p_rad1  RADIOBUTTON GROUP gp1 DEFAULT 'X' USER-COMMAND rad,
  p_rad2  RADIOBUTTON GROUP gp1.

PARAMETERS:
   check1 AS CHECKBOX,
  check2 AS CHECKBOX.


AT SELECTION-SCREEN OUTPUT.
  IF p_rad1 EQ 'X'.
    LOOP AT SCREEN.
      IF screen-name CP 'CHECK1'.
        screen-input = 1.
      ELSEIF screen-name CP 'CHECK2'.
                 screen-input = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSE.

    LOOP AT SCREEN.
      IF screen-name CP 'CHECK1'.
        screen-input = 0.
      ELSEIF
       screen-name  cp  'CHECK2'.
        screen-input = 1.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.

Regards,

Rajitha.

0 Kudos

Hi,,

Try following code snippet..it's working fine

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE tt.

PARAMETERS: Radio1 RADIOBUTTON GROUP gp1 USER-COMMAND R1,

Radio2 RADIOBUTTON GROUP gp1,

Chk1 AS CHECKBOX,

Chk2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.

tt = 'Example'.

CHK1 = 'X'.

LOOP AT SCREEN .

IF screen-NAME = 'CHK1' OR screen-name = 'CHK2'.

SCREEN-INPUT = 0.

SCREEN-INPUT = 0.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN ON BLOCK B1.

CASE sy-ucomm.

WHEN 'R1'.

IF Radio1 = 'X'.

CLEAR CHK2.

CHK1 = 'X'.

LOOP AT SCREEN .

IF SCREEN-NAME = 'CHK1'.

SCREEN-INVISIBLE = 1.

MODIFY SCREEN.

ELSEIF SCREEN-NAME = 'CHK2'.

SCREEN-INVISIBLE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF Radio2 = 'X'.

CLEAR CHK1.

CHK2 = 'X'.

LOOP AT SCREEN .

IF SCREEN-NAME = 'CHK2'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ELSEIF SCREEN-NAME = 'CHK1'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDCASE.

Plz reward if useful..

Regards,

Naveen

Former Member
0 Kudos

Hi,

Read line <line num of radiobutton1> field value <radio1>

if sy-subrc eq 0.

if radio1 = 'X'.

modify line <line num of checkbox2> field value chk2

field format chk2 input off.

endif.

endif.

Read line <line num of radiobutton2> field value <radio2>

if sy-subrc eq 0.

if radio2 = 'X'.

modify line <line num of checkbox1> field value chk1

field format chk1 input off.

endif.

endif.

regards

padma