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

Problem Loop at screen

Former Member
0 Likes
1,237

Hi guys i've problem when using loop at screen.

The cannot change when click the radio button. But screen can change when i double click.

it's my code

SELECTION-SCREEN BEGIN OF BLOCK div WITH FRAME TITLE text-000 NO INTERVALS.

   SELECTION-SCREEN BEGIN OF LINE.

     SELECTION-SCREEN COMMENT (15) FOR FIELD faufnr MODIF ID sve.

   SELECT-OPTIONS: faufnr FOR afpo-aufnr MODIF ID sve.

     SELECTION-SCREEN END OF LINE.

   SELECTION-SCREEN BEGIN OF LINE.

     SELECTION-SCREEN COMMENT (15) FOR FIELD fqty MODIF ID sve.

   SELECT-OPTIONS: fqty   FOR afpo-aufnr MODIF ID sve.

     SELECTION-SCREEN END OF LINE.

   SELECTION-SCREEN BEGIN OF LINE.

     SELECTION-SCREEN COMMENT (15) FOR FIELD faufnr1 MODIF ID del.

   SELECT-OPTIONS: faufnr1 FOR afpo-aufnr MODIF ID del.

     SELECTION-SCREEN END OF LINE.

   SELECTION-SCREEN BEGIN OF LINE.

     parameters: save radiobutton group grp1 default 'X'.

     selection-screen comment (5) for field save.

     selection-screen position 10.

     selection-screen position 15.

     parameters: print radiobutton group grp1.

     selection-screen comment (5) for field print.

     selection-screen position 25.

     parameters: delete radiobutton group grp1.

     selection-screen comment (5) for field delete.

   SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK div.

AT SELECTION-SCREEN OUTPUT.

loop at screen.

if SCREEN-GROUP1 = 'SVE'. "Name field

   if save eq 'X' or print eq 'X'.

     screen-active = 1.

   else.

     screen-active = 0.

endif.

modify screen.

elseif SCREEN-GROUP1 = 'DEL'.

   if delete eq 'X'.

     screen-active = 1.

   else.

     screen-active = 0.

   endif.

modify screen.

endif.

endloop.

START-OF-SELECTION.

4 REPLIES 4
Read only

Hvshal4u
Active Participant
0 Likes
820

Hi ,

You need to use " USER-COMMAND ". along with the radio button in order to trigger the selection screen event.

e.g.parameters: save radiobutton group grp1 default 'X'  USER-COMMAND ABC.

Regards,

Vishal

Read only

Chintu6august
Contributor
0 Likes
820

hi,

use USER-COMMAND with radio buttons and do remember the sequence in which events trigger and write your code according to that and don't use MODIFY SCREEN twice in the same loop..

thanks!!

Read only

0 Likes
820

Chintu Sharma wrote:

don't use MODIFY SCREEN twice in the same loop.

No - I think that is handled correctly here.

Rob

Read only

furlan
Participant
0 Likes
820

Hi Afif,

Yes, you need to add USER-COMMAND and handle that at the AT SELECTION-SCREEN event:

(I need to change your example to SFLIGHT table due my testing environment).

TABLES: sflight.

TABLES: sscrfields.

SELECTION-SCREEN BEGIN OF BLOCK div WITH FRAME TITLE text-000 NO INTERVALS.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (15) FOR FIELD faufnr MODIF ID sve.

SELECT-OPTIONS: faufnr FOR sflight-carrid MODIF ID sve.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (15) FOR FIELD fqty MODIF ID sve.

SELECT-OPTIONS: fqty   FOR sflight-connid MODIF ID sve.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (15) FOR FIELD faufnr1 MODIF ID del.

SELECT-OPTIONS: faufnr1 FOR sflight-fldate MODIF ID del.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: save RADIOBUTTON GROUP grp1 DEFAULT 'X' USER-COMMAND radiocom.

SELECTION-SCREEN COMMENT (5) FOR FIELD save.

SELECTION-SCREEN POSITION 10.

SELECTION-SCREEN POSITION 15.

PARAMETERS: print RADIOBUTTON GROUP grp1.

SELECTION-SCREEN COMMENT (5) FOR FIELD print.

SELECTION-SCREEN POSITION 25.

PARAMETERS: delete RADIOBUTTON GROUP grp1.

SELECTION-SCREEN COMMENT (5) FOR FIELD delete.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK div.

AT SELECTION-SCREEN OUTPUT.

   LOOP AT SCREEN.

     IF screen-group1 = 'SVE'. "Name field

       IF save EQ 'X' OR print EQ 'X'.

         screen-active = 1.

       ELSE.

         screen-active = 0.

       ENDIF.

       MODIFY SCREEN.

     ELSEIF screen-group1 = 'DEL'.

       IF delete EQ 'X'.

         screen-active = 1.

       ELSE.

         screen-active = 0.

       ENDIF.

       MODIFY SCREEN.

     ENDIF.

   ENDLOOP.

AT SELECTION-SCREEN.

   IF sscrfields-ucomm = 'RADIOCOM'.

     BREAK-POINT.

   ENDIF.

START-OF-SELECTION.

   WRITE: / 'test'.

Take care!

Flavio