Professional Documents
Culture Documents
TYPE
TYPE
TYPE
TYPE
TYPE
SLIS_T_FIELDCAT_ALV,
SLIS_T_LISTHEADER,
SLIS_T_LISTHEADER,
SLIS_T_EVENT,
SLIS_T_EXTAB.
DATA: WA_FIELDCAT
WA_LISTHEADER
WA_EVENTS
WA_EXCLUDING
CS_LAYOUT
CS_VARIANT
G_SAVE.
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
SLIS_FIELDCAT_ALV,
SLIS_LISTHEADER,
SLIS_ALV_EVENT,
SLIS_EXTAB,
SLIS_LAYOUT_ALV,
DISVARIANT,
DATA ERROR.
DATA : BEGIN OF IT_ALV OCCURS 0,
PGMID
LIKE TADIR-PGMID,
OBJECT
LIKE
OBJ_NAME
LIKE
KORRNUM
LIKE
SRCSYSTEM LIKE
linecol TYPE c,
END OF IT_ALV.
TADIR-OBJECT,
TADIR-OBJ_NAME,
TADIR-KORRNUM,
TADIR-SRCSYSTEM,
IF SY-SUBRC EQ 0.
VARIANT = CS_VARIANT-VARIANT.
ENDIF.
ENDFORM.
" INITIALIZATION
*&---------------------------------------------------------------------*
*&
Form SELECTION_VALIDATION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SELECTION_VALIDATION .
CS_VARIANT-VARIANT = VARIANT.
ENDFORM.
" SELECTION_VALIDATION
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM TADIR
INTO CORRESPONDING FIELDS OF TABLE IT_ALV
UP TO 10 ROWS.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
PERFORM GET_VARIANT.
CHECK ERROR IS INITIAL.
PERFORM SET_LAYOUT.
PERFORM BUILD_FIELDCAT.
CHECK ERROR IS INITIAL.
PERFORM GET_EVENTS.
CHECK ERROR IS INITIAL.
PERFORM DISPLAY_ALV.
ENDFORM.
" DISPLAY_DATA
*&---------------------------------------------------------------------*
*&
Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCAT .
WA_EXCLUDING-FCODE = '&OUP'.
APPEND WA_EXCLUDING TO IT_EXCLUDING.
CLEAR WA_EXCLUDING.
WA_EXCLUDING-FCODE = '&ODN'.
APPEND WA_EXCLUDING TO IT_EXCLUDING.
CLEAR WA_EXCLUDING.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= SY-REPID
I_INTERNAL_TABNAME
= 'IT_ALV'
I_INCLNAME
= SY-REPID
CHANGING
CT_FIELDCAT
= IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR
= 2
OTHERS
= 3.
IF SY-SUBRC <> 0.
ERROR = 'X'.
MESSAGE S002(SY) WITH 'Internal Error'.
ENDIF.
ENDFORM.
" BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form GET_EVENTS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_EVENTS .
WA_EVENTS-NAME = 'USER_COMMAND'.
WA_EVENTS-FORM = 'USER_COMMAND'.
APPEND WA_EVENTS TO IT_EVENTS.
CLEAR WA_EVENTS.
WA_EVENTS-NAME = 'TOP_OF_PAGE'.
WA_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND WA_EVENTS TO IT_EVENTS.
CLEAR WA_EVENTS.
WA_EVENTS-NAME = 'END_OF_LIST'.
WA_EVENTS-FORM = 'END_OF_LIST'.
APPEND WA_EVENTS TO IT_EVENTS.
CLEAR WA_EVENTS.
ENDFORM.
" GET_EVENTS
*&---------------------------------------------------------------------*
*&
Form DISPLAY_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV .
CLEAR WA_LISTHEADER.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY
= IT_LISTHEADER
I_LOGO
= 'SUGENLOGO'
.
ENDFORM.
"top_of_page
*&---------------------------------------------------------------------*
*&
Form end_of_list
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM END_OF_LIST.
IF IT_LISTFOOTER[] IS INITIAL.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-KEY = 'TEST'.
WA_LISTHEADER-INFO = 'TEST'.
APPEND WA_LISTHEADER TO IT_LISTFOOTER.
CLEAR WA_LISTHEADER.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY
= IT_LISTHEADER
*
I_LOGO
= I_LOGO
I_END_OF_LIST_GRID
= 'X'
*
I_ALV_FORM
= I_ALV_FORM
.
ENDFORM.
"end_of_list
*&---------------------------------------------------------------------*
*&
Form GET_VARIANT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_VARIANT .
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE
= G_SAVE
CHANGING
CS_VARIANT = CS_VARIANT
EXCEPTIONS
OTHERS
= 4.
IF SY-SUBRC <> 0.
ERROR = 'X'.
MESSAGE S002(SY) WITH 'Variant not found'.
ENDIF.
ENDFORM.
" GET_VARIANT
*&---------------------------------------------------------------------*
*&
Form F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM F4_FOR_VARIANT .
DATA ES_VARIANT LIKE CS_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = CS_VARIANT
IMPORTING
ES_VARIANT = ES_VARIANT
EXCEPTIONS
OTHERS
= 3.
IF ES_VARIANT IS NOT INITIAL.
CS_VARIANT = ES_VARIANT.
VARIANT = CS_VARIANT-VARIANT.
ENDIF.
ENDFORM.
" F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*&
Form SET_LAYOUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SET_LAYOUT .
CS_LAYOUT-ZEBRA = 'X'.
* CS_LAYOUT-DEF_STATUS = 'A'.
ENDFORM.
" GET_LAYOUT
*&---------------------------------------------------------------------*
*&
Form user_command
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING FCODE SELFIELD.
CASE FCODE.
WHEN 'DEV'.
BREAK-POINT.
WHEN OTHERS.
ENDCASE.
ENDFORM.
"user_command
FORM SETPF USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD' .
ENDFORM.