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: 

Enabling and disabling fields on selection screen

Former Member
0 Kudos

Hi there experts...

I Have the following code, but i need to do add more conditions but I'm not able to do so.

PARAMETERS: ch_alv AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd.
PARAMETERS: ch_tot AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd MODIF ID cht.
PARAMETERS: rb1 RADIOBUTTON GROUP rb1 DEFAULT 'X' MODIF ID rbg.
PARAMETERS: rb2 RADIOBUTTON GROUP rb1 MODIF ID rbg.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF CH_TOT = 'X'. 
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 1. 
      ENDIF.
    ELSE. 
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 0. 
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.

Now what I want is to only enable ch_tot, rb1 and rb2 parameters if ch_alv is checked, but I want to maintain the condition of enable RBG only if ch_tot is checked.

Can it be done?

Thanks

Edited by: Hermano.Andrade on Apr 3, 2009 1:27 PM

1 ACCEPTED SOLUTION

Former Member
0 Kudos
PARAMETERS: ch_alv AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd.
PARAMETERS: ch_tot AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd MODIF ID cht.
PARAMETERS: rb1 RADIOBUTTON GROUP rb1 DEFAULT 'X' MODIF ID rbg.
PARAMETERS: rb2 RADIOBUTTON GROUP rb1 MODIF ID rbg.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF CH_ALV = 'X'.
      IF SCREEN-GROUP1  = 'RBG' OR SCREEN-GROUP1  = 'CHT'.
        SCREEN-INPUT = 1.
      ENDIF.
    ELSE.
      CLEAR CH_TOT.
      IF SCREEN-GROUP1  = 'RBG' OR SCREEN-GROUP1  = 'CHT'.
        SCREEN-INPUT = 0.
      ENDIF.
    ENDIF.

    IF CH_TOT = 'X'.
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 1.
      ENDIF.
    ELSE.
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
4 REPLIES 4

GauthamV
Active Contributor
0 Kudos

Check this.



PARAMETERS : ch_alv AS CHECKBOX USER-COMMAND abcd.
PARAMETERS: ch_tot AS CHECKBOX USER-COMMAND abcd MODIF ID abc.

parameters : p_param1(10) TYPE c modif id abc.
parameters : p_param2(10) TYPE c modif id abc.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF ch_alv  = 'X'.
      IF screen-group1  = 'ABC'.
        screen-input = 1.
      ENDIF.
    ELSE.
      IF screen-group1  = 'ABC'.
        screen-input = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.

Former Member
0 Kudos

Hi,

after passing screen-input value, Use MODIFY SCREEN.

Former Member
0 Kudos

NOTE: Now what I want is to only enable ch_tot, rb1 and rb2 parameters if ch_alv is checked, but I want to maintain the condition of enable RBG only if ch_tot is checked.

Can it be done? How?

Edited by: Hermano.Andrade on Apr 3, 2009 1:38 PM

Former Member
0 Kudos
PARAMETERS: ch_alv AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd.
PARAMETERS: ch_tot AS CHECKBOX DEFAULT 'X' USER-COMMAND cmd MODIF ID cht.
PARAMETERS: rb1 RADIOBUTTON GROUP rb1 DEFAULT 'X' MODIF ID rbg.
PARAMETERS: rb2 RADIOBUTTON GROUP rb1 MODIF ID rbg.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF CH_ALV = 'X'.
      IF SCREEN-GROUP1  = 'RBG' OR SCREEN-GROUP1  = 'CHT'.
        SCREEN-INPUT = 1.
      ENDIF.
    ELSE.
      CLEAR CH_TOT.
      IF SCREEN-GROUP1  = 'RBG' OR SCREEN-GROUP1  = 'CHT'.
        SCREEN-INPUT = 0.
      ENDIF.
    ENDIF.

    IF CH_TOT = 'X'.
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 1.
      ENDIF.
    ELSE.
      IF SCREEN-GROUP1  = 'RBG'.
        SCREEN-INPUT = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.