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

USER-COMMAND in PARAMETERS

Former Member
0 Likes
20,697

Hello,

I have 2 radio buttons on selection screen :

Quarterly

annual

Under Quarterly, I have 4 checkboxes. Under annual, no checkboxes.

When user choses Quarterly, 4 check boxes must be enabled. otherwise all the 4 check boxes as well as the quarterly radio button must be disabled.

how can we do this ?

points will be rewarded.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
8,341

You have to code in at selection-screen output tp change the selection screen dynamically.

Refer the following:



REPORT  ztestab1.

PARAMETERS: p_quart  RADIOBUTTON GROUP g1
                    DEFAULT 'X' USER-COMMAND fil,
            p_annual RADIOBUTTON GROUP g1.

PARAMETERS: p_ch1 AS CHECKBOX  MODIF ID ses,
            p_ch2 AS CHECKBOX  MODIF ID ses,
            p_ch3 AS CHECKBOX  MODIF ID ses,
            p_ch4 AS CHECKBOX  MODIF ID ses.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1 = 'SES'.
      IF p_annual EQ 'X'.
        screen-input = 1.
      ELSE.
        screen-input = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.

7 REPLIES 7
Read only

Former Member
0 Likes
8,341

Hi,

see this code.


PARAMETERS:quart RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND ucom,
           yearly RADIOBUTTON GROUP rad.

PARAMETERS:1st AS CHECKBOX MODIF ID QUA,
           2nd AS CHECKBOX MODIF ID QUA,
           3rd AS CHECKBOX MODIF ID QUA,
           4th AS CHECKBOX MODIF ID QUA.

AT SELECTION-SCREEN OUTPUT.

IF quart = 'X'.
  LOOP AT SCREEN.
    IF screen-group1 = 'QUA'.
      screen-active = 1.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
ELSE.
  LOOP AT SCREEN.
    IF screen-group1 = 'QUA'.
      screen-active = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
ENDIF.

rgds,

bharat.

Read only

Former Member
0 Likes
8,342

You have to code in at selection-screen output tp change the selection screen dynamically.

Refer the following:



REPORT  ztestab1.

PARAMETERS: p_quart  RADIOBUTTON GROUP g1
                    DEFAULT 'X' USER-COMMAND fil,
            p_annual RADIOBUTTON GROUP g1.

PARAMETERS: p_ch1 AS CHECKBOX  MODIF ID ses,
            p_ch2 AS CHECKBOX  MODIF ID ses,
            p_ch3 AS CHECKBOX  MODIF ID ses,
            p_ch4 AS CHECKBOX  MODIF ID ses.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1 = 'SES'.
      IF p_annual EQ 'X'.
        screen-input = 1.
      ELSE.
        screen-input = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.

Read only

Former Member
0 Likes
8,341

Hi,

according to your requirement

create two blocks for quarterly,annually radiobuttons and for 4 checkboxes .

In first block quarterly radio button

and second one is for 4 check boxess and second radiio buttion .

Use at selection-screen output event for this.

Use parameters syntax for defining variables in selection screen.

for second blockeach block create modif id 'ABC' .

under that event first

loop at screen.

if p_quarter eq 'x'.

if screen-group1 = 'ABC'.

screen-input = 0.(it is for no selection)

modify screen.

else .

screen-input = 1.

modify screen.

end if.

endif.

endloop.

try like this.

*Reward points.

like this

Read only

Former Member
0 Likes
8,341

Hi

What you can do is,

Define Quaterly and its check boxs into one group id. in the selection screen, Similarly Annual as seperate group id

Then,

In the AT SELECTION-SCREEN OUTPUT.

Check the Radio button which is selected .

Based on that, you can for example in your case

Quaterly means, pass values to check box and disabled the Annual group id else deactivate the group id of Quartely .

by passing Annual goup id with Screen-active as '0'.

after that apply Modify screen.

Hope it will resolve your problem.

Reward points if useful.

Read only

Former Member
0 Likes
8,341

Hi,

Can try this way also......................

PARAMETERS:quart RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND ucom,

yearly RADIOBUTTON GROUP rad.

PARAMETERS:1st AS CHECKBOX MODIF ID QUA,

2nd AS CHECKBOX MODIF ID QUA,

3rd AS CHECKBOX MODIF ID QUA,

4th AS CHECKBOX MODIF ID QUA.

AT SELECTION-SCREEN OUTPUT.

IF quart = 'X'.

LOOP AT SCREEN.

IF screen-name = '1st'

OR screen-name = '2nd'

OR screen-name = '3rd' .

screen-active = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF screen-name = '1st'

OR screen-name = '2nd'

OR screen-name = '3rd' .

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Read only

prasanth_kasturi
Active Contributor
0 Likes
8,341

hiii

try this

PARAMETERS:quart RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND ucom.

PARAMETERS:1st AS CHECKBOX MODIF ID MOD,

2nd AS CHECKBOX MODIF ID MOD,

3rd AS CHECKBOX MODIF ID MOD,

4th AS CHECKBOX MODIF ID MOD.

PARAMETERS: annual RADIOBUTTON GROUP rad.

at selection-screen output.

loop at screen .

if quart = 'X'and screen-group1 = 'MOD'.

screen-input = 1.

elseif annual = 'X' and screen-group1 = 'MOD'.

screen-input = 0.

endif.

modify screen.

endloop.

REWARD IF HELPFUL

PRASANTH

Read only

Former Member
0 Likes
8,341

Hi,

Try the following code:

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

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: RB1 RADIOBUTTON GROUP RG1 USER-COMMAND UC01 DEFAULT 'X'."#EC *

SELECTION-SCREEN COMMENT 3(60) TEXT-004 FOR FIELD RB1.

SELECTION-SCREEN END OF LINE.

PARAMETERS: C1 AS CHECKBOX MODIF ID CHK,

C2 AS CHECKBOX MODIF ID CHK.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: RB2 RADIOBUTTON GROUP RG1 . "#EC *

SELECTION-SCREEN COMMENT 3(60) TEXT-005 FOR FIELD RB2.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'CHK'.

IF RB1 = 'X'.

SCREEN-ACTIVE = '1'.

SCREEN-ACTIVE = '1'.

ELSE.

SCREEN-ACTIVE = '0'.

SCREEN-ACTIVE = '0'.

ENDIF.

MODIFY SCREEN.

ENDIF.

ENDLOOP.