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: 

Help needed to modify selection screen.

Former Member
0 Kudos

Hi,

I have 3 checkboxes on the selection screen.My requirement is such that when any one of the checkboxes are checked, the others will be unchecked.

The requirement is to use only checkboxes and not radiobuttons.

I have tried to modify the screen using the fieldnames but it is not working properly.

Please help me.

Thanks,

Sandeep.

12 REPLIES 12

Former Member
0 Kudos

Hi,

Try to process those checkboxes in

AT SELECTION-SCREEN OUTPUT

event.

Regards,

R.Nagarajan.

Former Member
0 Kudos

Hi, try with this example:

SELECTION-SCREEN BEGIN OF BLOCK a2 WITH FRAME TITLE text-002.

PARAMETERS:

p_post AS CHECKBOX USER-COMMAND post.

SELECTION-SCREEN BEGIN OF BLOCK a3 WITH FRAME TITLE text-003.

PARAMETERS:

p_tiptra AS CHECKBOX MODIF ID bl1,

p_tiptr2 AS CHECKBOX MODIF ID bl1.

SELECTION-SCREEN END OF BLOCK a3.

PARAMETERS:

p_email AS CHECKBOX USER-COMMAND emai.

SELECTION-SCREEN BEGIN OF BLOCK a5 WITH FRAME TITLE text-005.

PARAMETERS:

p_tiptr3 AS CHECKBOX MODIF ID bl2,

p_tiptr4 AS CHECKBOX MODIF ID bl2.

SELECTION-SCREEN END OF BLOCK a5.

AT SELECTION-SCREEN ON p_post.

IF p_post EQ ' '.

LOOP AT SCREEN.

IF screen-group1 = 'BL1'.

CLEAR: p_tiptra,

p_tiptr2.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

*************

AT SELECTION-SCREEN ON p_email.

IF p_email EQ ' '.

LOOP AT SCREEN.

IF screen-group1 = 'BL2'.

CLEAR: p_tiptr3,

p_tiptr4.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

valter_oliveira
Active Contributor
0 Kudos

PARAMETERS: p_rad1 AS CHECKBOX DEFAULT 'X' USER-COMMAND rd1,
            p_rad2 AS CHECKBOX USER-COMMAND rd2.

AT SELECTION-SCREEN.

  CASE sy-ucomm.
    WHEN 'RD1'.
      CHECK p_rad1 = 'X'.
      CLEAR p_rad2.
    WHEN 'RD2'.
      CHECK p_rad2 = 'X'.
      CLEAR p_rad1.
  ENDCASE.

Regards,

Valter Oliveira.

Former Member
0 Kudos

Hi,

Parameters:
  char1 as checkbox user-command fcode,
  char2 as checkbox user-command fcode,
  char3 as checkbox user-command fcode.

At selection-screen output.

IF char1 = 'X'.

LOOP AT SCREEN.
  IF screen-name = 'CHAR2'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
    IF screen-name = 'CHAR3'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
ENDLOOP.

ELSEIF char2 = 'X'.

LOOP AT SCREEN.
  IF screen-name = 'CHAR1'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
    IF screen-name = 'CHAR3'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
ENDLOOP.

ELSEIF char3 = 'X'.

LOOP AT SCREEN.
  IF screen-name = 'CHAR1'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
    IF screen-name = 'CHAR2'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDIF.
ENDLOOP.

ENDIF.

With luck,

Pritam.

Former Member
0 Kudos

Hi Sandeep,

didnt Fabrizio Ballante answer did not solve your problem ? if not explain the problem further else close the thread.

Regards,

yugandhar

0 Kudos

Hi,

I need all the checkboxes in the same block and whatever modification has to be done needs to be done in the same block and not two separate ones.

There are 3 checkboxes in the block and not two.

Thanks,

Sandeep.

Edited by: Sandeep Ram on Sep 29, 2008 12:13 PM

0 Kudos

hope it is sufficient...

PARAMETERS : p_c1 AS CHECKBOX USER-COMMAND uc01,
             p_c2 AS CHECKBOX USER-COMMAND uc02,
             p_c3 AS CHECKBOX USER-COMMAND uc03.

AT SELECTION-SCREEN.

  CASE sy-ucomm.
    WHEN 'UC01'.
      p_c2 = p_c3 = space.
    WHEN 'UC02'.
      p_c1 = p_c3 = space.
    WHEN 'UC03'.
      p_c1 = p_c2 = space.
  ENDCASE.

0 Kudos

Hi Sandeep,

you can also try like way:

Parameters:

char1 as checkbox user-command fcode,

char2 as checkbox user-command fcode,

char3 as checkbox user-command fcode.

At selection-screen output.

IF char1 = 'X'.

    char2 = ' '.
    char3 = ' '.

   ELSEIF char2 = 'X'.

    char1 = ' '.
    char3 = ' '.

  ELSEIF char3 = 'X'.

    char1 = ' '.
    char2 = ' '.

  ENDIF.

With luck,

Pritam.

Former Member
0 Kudos

Hello,

Try the following code.

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

parameters: p_check1 as checkbox USER-COMMAND CK1 default 'X',

p_check2 as CHECKBOX USER-COMMAND CK2,

p_check3 AS CHECKBOX USER-COMMAND ck3.

SELECTION-SCREEN END OF BLOCK B1.

at SELECTION-SCREEN.

case sy-ucomm.

when 'CK1'.

p_check2 = ''.

p_check3 = ''.

when 'CK2'.

p_check1 = ''.

p_check3 = ''.

WHEN 'CK3'.

p_check1 = '' .

p_check2 = ''.

WHEN OTHERS.

ENDCASE.

Hope it helps,

Raj

former_member182426
Active Contributor
0 Kudos

hi,

Try this. It's working fine to me...

selection-screen begin of block b1 with frame title text-001.

PARAMETERS: p_cb1 AS CHECKBOX DEFAULT 'X' USER-COMMAND CB1,

p_cb2 AS CHECKBOX USER-COMMAND CB2,

p_cb3 AS CHECKBOX USER-COMMAND CB3.

selection-screen end of block b1.

AT SELECTION-SCREEN ON BLOCK b1.

CASE sy-ucomm.

WHEN 'CB1'.

check p_cb1 = 'X'.

clear p_cb2.

clear p_cb3.

WHEN 'CB2'.

clear p_cb1.

check p_cb2 = 'X'.

clear p_cb3.

WHEN 'CB3'.

clear p_cb1.

clear p_cb2.

check p_cb3 = 'X'.

ENDCASE.

For text-001 element specify wat ever text u want to display.

Regards,

Shankar.

Former Member
0 Kudos

Use the USER-COMMAND. then u can easily modify the screen like radio buttons.

Regards,

Ajay

Former Member
0 Kudos

Done