Sie sind auf Seite 1von 8

REPORT

ZLOCAL_LOT.

TYPE-POOLS : SLIS.
*----------------------------------------------------------------------*
* TABLES.
*----------------------------------------------------------------------*
TABLES : TRDIR, TADIR, TSTC.

*----------------------------------------------------------------------*
* TYPES.
*----------------------------------------------------------------------*
TYPES : BEGIN OF GTY_PROG_LIST,
DEVCLASS LIKE TADIR-DEVCLASS,
PROG_NAME LIKE TRDIR-NAME,
TCODE

LIKE TSTC-TCODE,

SUBC

LIKE TRDIR-SUBC,

DYPNO

LIKE TSTC-DYPNO,

END OF GTY_PROG_LIST.
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
DATA : GT_PROG_LIST TYPE STANDARD TABLE OF GTY_PROG_LIST

WITH HEADER LINE.


DATA : GT_TSTC

TYPE STANDARD TABLE OF TSTC WITH HEADER LINE.

DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

*----------------------------------------------------------------------*
* SELECTION-SCREEN.
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME .
SELECT-OPTIONS : S_DEVCL FOR TADIR-DEVCLASS.
SELECT-OPTIONS : S_NAME FOR TRDIR-NAME.
SELECTION-SCREEN END OF BLOCK BL1.

*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INITIALIZATION.
S_DEVCL-LOW = 'Z*'.
APPEND S_DEVCL.

*----------------------------------------------------------------------*
* START-OF-SELECTION.
*----------------------------------------------------------------------*
START-OF-SELECTION.

PERFORM 00_GET_LIST.
PERFORM 01_MAKE_LIST.
PERFORM 02_FIELD_CAT.

*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
END-OF-SELECTION.

IF SY-BATCH <> 'X'.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER = 'X'
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT

= FIELDCATALOG[]

TABLES
T_OUTTAB

= GT_PROG_LIST

EXCEPTIONS
PROGRAM_ERROR
OTHERS

=1
= 2.

ELSE.
WRITE 'Log summary complete' .
ENDIF.

*ENDLOOP.
*&---------------------------------------------------------------------*
*&

Form 00_GET_LIST.

*&---------------------------------------------------------------------*

text.

*----------------------------------------------------------------------*
FORM 00_GET_LIST .

RANGES LR_SUBC FOR TRDIR-SUBC.


CLEAR LR_SUBC.
LR_SUBC-SIGN

= 'I'.

LR_SUBC-OPTION = 'EQ'.
LR_SUBC-LOW

= '1'.

APPEND LR_SUBC.

CLEAR LR_SUBC.
LR_SUBC-SIGN

= 'I'.

LR_SUBC-OPTION = 'EQ'.
LR_SUBC-LOW

= 'M'.

APPEND LR_SUBC.

SELECT A~DEVCLASS AS DEVCLASS


B~NAME
B~SUBC

AS PROG_NAME
AS SUBC

INTO CORRESPONDING FIELDS OF TABLE GT_PROG_LIST


FROM TADIR AS A INNER JOIN TRDIR AS B
ON A~OBJ_NAME = B~NAME
WHERE A~PGMID

= 'R3TR'

AND A~OBJECT = 'PROG'


AND A~DEVCLASS IN S_DEVCL
AND A~OBJ_NAME IN S_NAME
AND B~SUBC

IN LR_SUBC.

IF GT_PROG_LIST[] IS NOT INITIAL.


SELECT *
INTO CORRESPONDING FIELDS OF TABLE GT_TSTC
FROM TSTC
FOR ALL ENTRIES IN GT_PROG_LIST
WHERE PGMNA = GT_PROG_LIST-PROG_NAME.
ENDIF.

ENDFORM.

" 00_GET_LIST.

*&---------------------------------------------------------------------*
*&

Form 01_MAKE_LIST.

*&---------------------------------------------------------------------*
*

text

*----------------------------------------------------------------------*
FORM 01_MAKE_LIST .

DATA : LV_INDEX

TYPE SY-TABIX.

DATA : LS_PROG_LIST

LIKE LINE OF GT_PROG_LIST.

DATA : LT_PROG_LIST

TYPE STANDARD TABLE OF GTY_PROG_LIST


WITH HEADER LINE.

LOOP AT GT_TSTC.

READ TABLE GT_PROG_LIST WITH KEY PROG_NAME = GT_TSTC-PGMNA.

IF SY-SUBRC = 0.
CLEAR LV_INDEX.

LV_INDEX = SY-TABIX.

IF GT_PROG_LIST-TCODE IS INITIAL.
GT_PROG_LIST-TCODE = GT_TSTC-TCODE.
GT_PROG_LIST-DYPNO = GT_TSTC-DYPNO.
MODIFY GT_PROG_LIST INDEX LV_INDEX.
ELSE.
CLEAR LS_PROG_LIST.
MOVE-CORRESPONDING GT_PROG_LIST TO LS_PROG_LIST.
LS_PROG_LIST-TCODE = GT_TSTC-TCODE.
LS_PROG_LIST-DYPNO = GT_TSTC-DYPNO.
APPEND LS_PROG_LIST TO LT_PROG_LIST.
ENDIF.

ENDIF.

ENDLOOP.

APPEND LINES OF LT_PROG_LIST TO GT_PROG_LIST.

SORT GT_PROG_LIST BY DEVCLASS PROG_NAME.

ENDFORM.

" 01_MAKE_LIST.

*&---------------------------------------------------------------------*
*&

Form 02_FIELD_CAT

*&---------------------------------------------------------------------*
*

text

*----------------------------------------------------------------------*
* --> p1

text

* <-- p2

text

*----------------------------------------------------------------------*
FORM 02_FIELD_CAT .

CLEAR

FIELDCATALOG.

FIELDCATALOG-FIELDNAME

= 'DEVCLASS'.

FIELDCATALOG-SELTEXT_M

= 'Package'.

FIELDCATALOG-COL_POS

= 0.

FIELDCATALOG-OUTPUTLEN
FIELDCATALOG-KEY

= 20.
= 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR

FIELDCATALOG.

FIELDCATALOG-FIELDNAME

= 'PROG_NAME'.

FIELDCATALOG-SELTEXT_M

= 'Program name'.

FIELDCATALOG-OUTPUTLEN
FIELDCATALOG-COL_POS
FIELDCATALOG-KEY

= 20.
= 1.
= 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR

FIELDCATALOG.

FIELDCATALOG-FIELDNAME

= 'TCODE'.

FIELDCATALOG-SELTEXT_M

= 'T-CODE'.

FIELDCATALOG-OUTPUTLEN
FIELDCATALOG-COL_POS

= 20.
= 2.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR

FIELDCATALOG.

FIELDCATALOG-FIELDNAME
FIELDCATALOG-SELTEXT_M

= 'SUBC'.
= 'Program Type'.

FIELDCATALOG-COL_POS
FIELDCATALOG-OUTPUTLEN
FIELDCATALOG-JUST

= 3.
= 10.
= 'C'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR

FIELDCATALOG.

FIELDCATALOG-FIELDNAME

= 'DYPNO'.

FIELDCATALOG-SELTEXT_M

= 'Screen No.'.

FIELDCATALOG-COL_POS

= 4.

FIELDCATALOG-OUTPUTLEN
FIELDCATALOG-JUST

= 10.
= 'C'.

APPEND FIELDCATALOG TO FIELDCATALOG.

ENDFORM.

" 02_FIELD_CAT

Das könnte Ihnen auch gefallen