09-26-2008 10:58 AM
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.
09-26-2008 11:01 AM
Hi,
Write your logic in AT SELECTION-SCREEN OUTPUT not in AT SELECTION-SCREEN ON RADIOBUTTON GROUP.
Regards
Abhijeet
09-26-2008 11:01 AM
Hi,
Write your logic in AT SELECTION-SCREEN OUTPUT not in AT SELECTION-SCREEN ON RADIOBUTTON GROUP.
Regards
Abhijeet
09-26-2008 11:07 AM
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.
09-26-2008 11:08 AM
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.
09-26-2008 11:07 AM
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
09-26-2008 11:08 AM
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!!
09-26-2008 11:11 AM
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
09-26-2008 11:11 AM
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.