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

loop at screen

Former Member
0 Likes
1,476

hi,

i am using selection screnn can i use loop at screen in this ?

thanks and regards

abaper

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,051

Hi

pls refer this code.

*--- SELECTION OPTIONS -


SELECTION-SCREEN BEGIN OF BLOCK SO WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,"Sales order number

S_VBELND FOR LIKP-VBELN,"Delivery number

S_VBELNI FOR VBRK-VBELN,"Invoice number

S_VBELNP FOR VBKD-BSTKD."PO number

SELECTION-SCREEN END OF BLOCK SO.

*--- EVENT AT SCREEN OUTPUT -


AT SELECTION-SCREEN OUTPUT.

CASE SY-TCODE.

WHEN 'ZEDI6'.

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6D'. "Delivery select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6I'. "Invoice select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6P'. "PO select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

ENDCASE.

reward all help full answers.

regards .

Jay

6 REPLIES 6
Read only

Former Member
0 Likes
1,051

Hi king,

REPORT zextest595 .

*--- Radiobuttons

PARAMETERS: p_up RADIOBUTTON GROUP a DEFAULT 'X' USER-COMMAND rb,

p_list RADIOBUTTON GROUP a.

PARAMETERS: p_pcfile LIKE rlgrap-filename OBLIGATORY DEFAULT 'C:\'

MODIF ID ccc,

p_pctype LIKE rlgrap-filetype OBLIGATORY DEFAULT 'ASC'

MODIF ID ccc,

p_unix LIKE rlgrap-filename OBLIGATORY DEFAULT '.\'

MODIF ID ccc.

PARAMETERS: p_dir LIKE rlgrap-filename OBLIGATORY DEFAULT '.'

MODIF ID ddd,

p_fp LIKE rlgrap-filename

MODIF ID ddd.

*----


  • AT SELECTION-SCREEN

*----


AT SELECTION-SCREEN OUTPUT.

IF p_up = 'X' .

LOOP AT SCREEN.

CASE screen-group1.

WHEN 'CCC'.

screen-input = 1. "Enable

screen-invisible = 0. "Disable

MODIFY SCREEN.

WHEN 'DDD'.

screen-input = 0.

screen-invisible = 1.

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

ENDIF.

IF p_list = 'X'.

LOOP AT SCREEN.

CASE screen-group1.

WHEN 'CCC'.

screen-input = 0.

screen-invisible = 1.

MODIFY SCREEN.

WHEN 'DDD'.

screen-input = 1.

screen-invisible = 0.

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

ENDIF.

Don't forget to reward if useful...

Read only

Former Member
0 Likes
1,051

hi,

yes you can use loop at screen,

use it in event at selection-screen output. and modify any record on selection -screen according to your requirement.

AT SELECTION-SCREEN OUTPUT.

*disable the date range selection screen option

IF rb_today EQ 'X' OR

rb_cntm EQ 'X' OR

rb_cntyr EQ 'X' OR

rb_past EQ 'X' OR

rb_all EQ 'X' OR

rb_fut EQ 'X'.

LOOP AT SCREEN.

IF screen-name EQ 'S_D_RAN-LOW' .

screen-input = '0'.

MODIFY SCREEN.

EXIT.

ENDIF.

ENDLOOP.

LOOP AT SCREEN.

IF screen-name EQ 'S_D_RAN-HIGH'.

screen-input = '0'.

screen-required = '0'.

MODIFY SCREEN.

CLEAR screen.

EXIT.

ENDIF.

ENDLOOP.

regards,

ruchika

Read only

Former Member
0 Likes
1,052

Hi

pls refer this code.

*--- SELECTION OPTIONS -


SELECTION-SCREEN BEGIN OF BLOCK SO WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,"Sales order number

S_VBELND FOR LIKP-VBELN,"Delivery number

S_VBELNI FOR VBRK-VBELN,"Invoice number

S_VBELNP FOR VBKD-BSTKD."PO number

SELECTION-SCREEN END OF BLOCK SO.

*--- EVENT AT SCREEN OUTPUT -


AT SELECTION-SCREEN OUTPUT.

CASE SY-TCODE.

WHEN 'ZEDI6'.

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6D'. "Delivery select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6I'. "Invoice select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

WHEN 'ZEDI6P'. "PO select

LOOP AT SCREEN.

CASE SCREEN-GROUP4.

WHEN '001'. "Sales order select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '002'. "Delivery select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '003'. "Invoice select

SCREEN-ACTIVE = '0'. "1=Active, 0=Don't display

MODIFY SCREEN.

WHEN '004'. "PO Select

SCREEN-ACTIVE = '1'. "1=Active, 0=Don't display

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

ENDCASE.

reward all help full answers.

regards .

Jay

Read only

Former Member
0 Likes
1,051

Hi,

You can use the LOOP AT SCREEN statment .... In the event AT SELETION SCREEN OUTPUT we use this LOOP AT SCREEN and ENDLOOP statments

PARAMETERS: TEST1(10) MODIF ID SC1,
            TEST2(10) MODIF ID SC2,
            TEST3(10) MODIF ID SC1,
            TEST4(10) MODIF ID SC2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.
  IF SCREEN-GROUP1 = 'SC1'.
    SCREEN-INTENSIFIED = '1'.
    MODIFY SCREEN.
    CONTINUE.
  ENDIF.
  IF SCREEN-GROUP1 = 'SC2'.
    SCREEN-INTENSIFIED = '0'.
    MODIFY SCREEN.
  ENDIF.
ENDLOOP.

Regards

Sudheer

Read only

Former Member
0 Likes
1,051

hi,

yes u can use.loop at screen is used to make selection screen fields visible/invisible etc.

ex:

report zsr_screen.

PARAMETERS P_CREA AS CHECKBOX USER-COMMAND CRE.

PARAMETERS P_FILE(80) MODIF ID AAA.

AT SELECTION-SCREEN OUTPUT.

CHECK P_CREA = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'AAA'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

Read only

Former Member
0 Likes
1,051

Hello,

<i><b>Yes, you can use LOOP AT SCREEN...ENDLOOP in the SELECTION SCREEN.</b></i>

I guess you are looking for some modification on the screen interms of either hiding elements or enabling input etc. on the screen depending on some conditions. All these are modification to the SCREEN and happen at the event <i><b>AT SELECTION-SCREEN OUTPUT.</b></i>

Following is one sample code showing how to do this. Here depending on the MODIFICATION Group IDs, fields are made input enabled and disabled.

PARAMETERS: CUSTNAME(10) MODIF ID ID1,
            CUSTADDR(10) MODIF ID ID1,
            VENDNAME(10) MODIF ID ID2,
            VENDADDR(10) MODIF ID ID2.

 
AT SELECTION-SCREEN OUTPUT. 
LOOP AT SCREEN.
  IF SCREEN-GROUP1 = 'ID1'.
    SCREEN-INPUT = '1'.
    MODIFY SCREEN.
    CONTINUE.
  ENDIF.
  IF SCREEN-GROUP1 = 'ID2'.
    SCREEN-INPUT = '0'.
    MODIFY SCREEN.
  ENDIF.
ENDLOOP.

Hope this helps.

PS If the answer solves your query, plz close the thread by rewarding each reply and marking the thread Solved.

Regards