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,197

HI experts,

my loop ta screen in my report is not working.m sending u code,plz tell me y it is not working.

&----


*& Report ZPRICELIST_CD

*&

&----


*&

*&

&----


REPORT ZPRICELIST_CD.

TABLES: A601,ZTRFRATE,A613.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN WITH FRAME TITLE TEXT-100.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER CHECK1 RADIOBUTTON GROUP P1 DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 5(15) TEXT-OO1.

PARAMETER CHECK2 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 25(20) TEXT-OO2.

PARAMETER CHECK3 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 50(15) TEXT-OO3.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN1 WITH FRAME TITLE TEXT-200.

SELECT-OPTIONS: SO FOR A601-VKORG MODIF ID SO,

DC FOR A601-VTWEG MODIF ID DC,

STATE FOR A601-PLTYP MODIF ID S1,

PTYP FOR A601-KONDA MODIF ID P1,

MATNR FOR A601-MATNR MODIF ID M1.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER MRP AS CHECKBOX MODIF ID MRP.

SELECTION-SCREEN COMMENT 5(10) TEXT-004 MODIF ID C1 .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN1.

LOOP AT SCREEN.

IF CHECK1 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'

OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

endif.

ELSEIF CHECK2 = 'X'.

IF SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ELSEIF CHECK3 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

regards,

raman

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
827

Hi raman,

Use this. This will solve the purpose :

&----


*& Report ZPRICELIST_CD

*&

&----


*&

*&

&----


REPORT ZPRICELIST_CD.

TABLES: A601,ZTRFRATE,A613.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN WITH FRAME TITLE TEXT-100.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER CHECK1 RADIOBUTTON GROUP P1 DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 5(15) TEXT-OO1.

PARAMETER CHECK2 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 25(20) TEXT-OO2.

PARAMETER CHECK3 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 50(15) TEXT-OO3.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN1 WITH FRAME TITLE TEXT-200.

SELECT-OPTIONS: SO FOR A601-VKORG MODIF ID SO,

DC FOR A601-VTWEG MODIF ID DC,

STATE FOR A601-PLTYP MODIF ID S1,

PTYP FOR A601-KONDA MODIF ID P1,

MATNR FOR A601-MATNR MODIF ID M1.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER MRP AS CHECKBOX MODIF ID MRP.

SELECTION-SCREEN COMMENT 5(10) TEXT-004 MODIF ID C1 .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF CHECK1 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'

OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

endif.

ELSEIF CHECK2 = 'X'.

IF SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ELSEIF CHECK3 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

Reward with Points if helpful.

Regards

Hemant Khemani

6 REPLIES 6
Read only

Former Member
0 Likes
827

Hi,

AT SELECTION-SCREEN.

LOOP AT SCREEN.

IF CHECK1 = 'X' AND SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'

OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

endif.

ELSE

IF CHECK2 = 'X' AND SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ELSEIF CHECK3 = 'X' AND SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

Regards,

Jagadish

Read only

Former Member
0 Likes
827

You have to code 'LOOP AT SCREEN' in AT SELECTION-SCREEN OUTPUT event.

BY 'Loop at screen' you change the display of the selection screen dynamically. This should be done in AT SELECTION-SCREEN OUTPUT event for report program.

Read only

Former Member
0 Likes
827

Hi,

change the selection-screen on block part like this


SELECTION-SCREEN END OF BLOCK RAMAN1.


IF CHECK1 = 'X'.
  LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 
    'P1' OR SCREEN-GROUP1 = 'C1' OR SCREEN-GROUP1 = 'S1' OR 
      SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.
      SCREEN-ACTIVE = 1.
    endif.
    MODIFY SCREEN.
  ENDLOOP.
ELSEIF CHECK2 = 'X'.
  LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 
    'S1' OR SCREEN-GROUP1 = 'P1'.
    SCREEN-ACTIVE = 0.
    ELSEIF SCREEN-GROUP1 = 'M1'.
    SCREEN-ACTIVE = 1.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
ELSEIF CHECK3 = 'X'.
  LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 
    'P1' OR SCREEN-GROUP1 = 'C1'.
    SCREEN-ACTIVE = 0.
    ELSEIF SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR 
        SCREEN-GROUP1 = 'M1'.
    SCREEN-ACTIVE = 1.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
ENDIF.

rgds,

bharat.

Read only

Former Member
0 Likes
828

Hi raman,

Use this. This will solve the purpose :

&----


*& Report ZPRICELIST_CD

*&

&----


*&

*&

&----


REPORT ZPRICELIST_CD.

TABLES: A601,ZTRFRATE,A613.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN WITH FRAME TITLE TEXT-100.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER CHECK1 RADIOBUTTON GROUP P1 DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 5(15) TEXT-OO1.

PARAMETER CHECK2 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 25(20) TEXT-OO2.

PARAMETER CHECK3 RADIOBUTTON GROUP P1.

SELECTION-SCREEN COMMENT 50(15) TEXT-OO3.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN.

SELECTION-SCREEN BEGIN OF BLOCK RAMAN1 WITH FRAME TITLE TEXT-200.

SELECT-OPTIONS: SO FOR A601-VKORG MODIF ID SO,

DC FOR A601-VTWEG MODIF ID DC,

STATE FOR A601-PLTYP MODIF ID S1,

PTYP FOR A601-KONDA MODIF ID P1,

MATNR FOR A601-MATNR MODIF ID M1.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER MRP AS CHECKBOX MODIF ID MRP.

SELECTION-SCREEN COMMENT 5(10) TEXT-004 MODIF ID C1 .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK RAMAN1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF CHECK1 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'

OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

endif.

ELSEIF CHECK2 = 'X'.

IF SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ELSEIF CHECK3 = 'X'.

IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'.

SCREEN-ACTIVE = 0.

ELSEIF SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.

SCREEN-ACTIVE = 1.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

Reward with Points if helpful.

Regards

Hemant Khemani

Read only

0 Likes
827

THANKS HEMANT

Read only

Former Member
0 Likes
827

Add the event AT SELECTION-SCREEN OUTPUT before the LOOP AT SCREEN statement and check if it works


SELECTION-SCREEN END OF BLOCK RAMAN1.

*AT SELECTION-SCREEN OUTPUT.*

LOOP AT SCREEN.
IF CHECK1 = 'X'.
IF SCREEN-GROUP1 = 'DC' OR SCREEN-GROUP1 = 'MRP' OR SCREEN-GROUP1 = 'P1' OR SCREEN-GROUP1 = 'C1'
OR SCREEN-GROUP1 = 'S1' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'M1'.
SCREEN-ACTIVE = 1.