07-08-2008 9:18 AM
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!
07-08-2008 9:27 AM
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.
07-08-2008 9:22 AM
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.
07-08-2008 9:24 AM
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
07-08-2008 9:24 AM
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
07-08-2008 9:26 AM
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
07-08-2008 9:27 AM
07-08-2008 9:27 AM
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.
07-08-2008 9:27 AM
hiiii
use following code for making checkbox disable
MODIFY LINE sy-lilli FIELD VALUE box
FIELD FORMAT box INPUT OFF.
regards
twinkal
07-08-2008 9:41 AM
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
07-08-2008 9:42 AM
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.
07-08-2008 11:15 AM
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
07-08-2008 9:51 AM
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