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: 

On radiobutton group event is not triggered..

Former Member
0 Kudos

Hi,

Based on radiobutton selection, I want to make select option field as input enabled or not.

This is the code I used. But the event ON RADIOBUTTON GROUP is not triggered at time of choosing the radio button. It is triggered only if I execute. But however the select option is also not changed in either ways. Please correct the code if I am wrong somewhere.

REPORT zk_chdoc.

TABLES: proj, aufk, cdhdr.

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

SELECTION-SCREEN BEGIN OF BLOCK blk1

WITH FRAME TITLE text-001.

SELECT-OPTIONS: prjid FOR proj-pspid,

netid FOR aufk-aufnr MATCHCODE OBJECT auko.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2

WITH FRAME TITLE text-002.

PARAMETERS: dis_last RADIOBUTTON GROUP rad DEFAULT 'X',

dis_perd RADIOBUTTON GROUP rad.

SELECT-OPTIONS: period FOR cdhdr-udate.

SELECTION-SCREEN END OF BLOCK blk2.

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

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad.

IF dis_perd = 'X'.

LOOP AT SCREEN.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF dis_last = 'X'.

LOOP AT SCREEN.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Write your logic in AT SELECTION-SCREEN OUTPUT not in AT SELECTION-SCREEN ON RADIOBUTTON GROUP.

Regards

Abhijeet

7 REPLIES 7

Former Member
0 Kudos

Hi,

Write your logic in AT SELECTION-SCREEN OUTPUT not in AT SELECTION-SCREEN ON RADIOBUTTON GROUP.

Regards

Abhijeet

0 Kudos

Thanks for your response.

But, If I write my logic in "ON OUTPUT", initially the select option fields are input disabled. But if I choose the alternate radio button, the select option field should be input enabled. But it is not.

0 Kudos

Hi,

I have changed the code you have written now run this code, you will get desired result-



TABLES: proj, aufk, cdhdr.

***************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blk1
WITH FRAME TITLE text-001.
SELECT-OPTIONS: prjid FOR proj-pspid,
netid FOR aufk-aufnr MATCHCODE OBJECT auko.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2
WITH FRAME TITLE text-002.
PARAMETERS: dis_last RADIOBUTTON GROUP rad DEFAULT 'X' user-command comm,
dis_perd RADIOBUTTON GROUP rad.
SELECT-OPTIONS: period FOR cdhdr-udate.

SELECTION-SCREEN END OF BLOCK blk2.
****************************************************************
AT SELECTION-SCREEN OUTPUT.

IF dis_perd = 'X'.
LOOP AT SCREEN.
IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF dis_last = 'X'.
LOOP AT SCREEN.
IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.

Former Member
0 Kudos

Hi ,

Declare radiobutton with user command which will trigger an event.

dis_perd RADIOBUTTON GROUP rad user-command flag.

then use

at selection-screen output.

if ...

endif .

this will work.

regards,

Ramya

Former Member
0 Kudos

Hi SAP Lover,

Deactivate the code from as shown in

AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad.

and replace with this code..

AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad.

IF dis_perd = 'X'.

LOOP AT SCREEN.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF dis_last = 'X'.

LOOP AT SCREEN.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Modify according to your code it will work.

Hope my answer helps you.

Cheers!!

Former Member
0 Kudos

Hi,

Check this program, I've changed it.

The main problem was that you didn't declare radiobutton group with USER COMMAND addition, thats why system was unable to recognize the radiobutton selection.


REPORT zk_chdoc.


TABLES: proj, aufk, cdhdr.

***************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blk1
WITH FRAME TITLE text-001.
SELECT-OPTIONS: prjid FOR proj-pspid,
netid FOR aufk-aufnr MATCHCODE OBJECT auko.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2
WITH FRAME TITLE text-002.
PARAMETERS: dis_last RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND abc,
dis_perd RADIOBUTTON GROUP rad .
SELECT-OPTIONS: period FOR cdhdr-udate MODIF ID mod.

SELECTION-SCREEN END OF BLOCK blk2.
****************************************************************
AT SELECTION-SCREEN OUTPUT.
  IF dis_perd = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'MOD'.
        screen-input = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSEIF dis_last = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'MOD'.
        screen-input = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

Regards

Abhijeet

Former Member
0 Kudos

Hi, try this code:

*& Report Z_DEMO_JG1

*&

&----


*&

*&

&----


REPORT z_demo_jg1 LINE-COUNT 10(2) NO STANDARD PAGE HEADING.

TABLES: proj, aufk, cdhdr.

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

SELECTION-SCREEN BEGIN OF BLOCK blk1

WITH FRAME TITLE text-001.

SELECT-OPTIONS: prjid FOR proj-pspid,

netid FOR aufk-aufnr MATCHCODE OBJECT auko.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2

WITH FRAME TITLE text-002.

PARAMETERS: dis_last RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND ABC,

dis_perd RADIOBUTTON GROUP rad.

SELECT-OPTIONS: period FOR cdhdr-udate.

SELECTION-SCREEN END OF BLOCK blk2.

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

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF dis_perd = 'X'.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '1'.

MODIFY SCREEN.

ENDIF.

else.

IF screen-name = 'PERIOD-LOW' OR screen-name = 'PERIOD-HIGH'.

screen-input = '0'.

MODIFY SCREEN.

endif.

endif.

ENDLOOP.