Sunteți pe pagina 1din 4

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

*& Report ZOOPS_ALV_PROG1


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZOOPS_ALV_PROG2.
DATA OKCODE TYPE SYUCOMM.
DATA O_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA O_ALV TYPE REF TO CL_GUI_ALV_GRID..
DATA IT_T005T TYPE TABLE OF T005T.
DATA O_DOCK TYPE REF TO CL_GUI_DOCKING_CONTAINER.
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*&
Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS '9000'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
" STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
Module create_container_9000 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE create_container_9000 OUTPUT.
DATA LV_MODE TYPE INT4.
CALL METHOD CL_GUI_ALV_GRID=>OFFLINE
RECEIVING
E_OFFLINE = LV_MODE
.
CREATE OBJECT O_DOCK
EXPORTING
*
PARENT
=
*
REPID
=
*
DYNNR
=
SIDE
= CL_GUI_DOCKING_CONTAINER=>DOCK_AT_left
*
EXTENSION
= 15
*
STYLE
=
*
LIFETIME
= lifetime_default
*
CAPTION
=
*
METRIC
= 0
RATIO
= 50
*
NO_AUTODEF_PROGID_DYNNR
=
*
NAME
=
* EXCEPTIONS
*
CNTL_ERROR
= 1
*
CNTL_SYSTEM_ERROR
= 2
*
CREATE_ERROR
= 3
*
LIFETIME_ERROR
= 4

*
*

LIFETIME_DYNPRO_DYNPRO_LINK = 5
others
= 6

.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC IS INITIAL.
CREATE OBJECT O_ALV
EXPORTING
I_PARENT

= O_DOCK

"CL_GUI_CUSTOM_CONTAINER=>SCREEN0

EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others
= 5
.
IF SY-SUBRC IS NOT INITIAL.
MESSAGE 'COULD NOT INSTANTATIATE ALV GRID' TYPE 'I' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
ENDMODULE.
" create_container_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
Module DISPLAY_DATA_9000 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE DISPLAY_DATA_9000 OUTPUT.
*CHECK O_ALV IS BOUND.
DATA IT_FCAT TYPE LVC_T_FCAT.
FIELD-SYMBOLS : <FS_FCAT> TYPE LVC_S_FCAT.
*pREPARE THE FIELD CAT SEMI AUTOMATICALLY
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME
= 'T005T'
CHANGING
CT_FIELDCAT
= IT_FCAT
EXCEPTIONS
INCONSISTENT_INTERFACE
= 1
PROGRAM_ERROR
= 2
OTHERS
= 3
.
IF SY-SUBRC IS INITIAL.
READ TABLE IT_FCAT ASSIGNING <FS_FCAT> WITH KEY FIELDNAME = 'LANDX50'.
IF SY-SUBRC IS INITIAL.
<FS_FCAT>-NO_OUT = 'X'.
ENDIF.
ENDIF.
SELECT *
FROM T005T
INTO TABLE IT_T005T
UP TO 30 ROWS

WHERE SPRAS = SY-LANGU.


IF SY-SUBRC IS INITIAL.
CALL METHOD O_ALV->SET_TABLE_FOR_FIRST_DISPLAY
* EXPORTING
*
I_BUFFER_ACTIVE
=
*
I_BYPASSING_BUFFER
=
*
I_CONSISTENCY_CHECK
=
*
I_STRUCTURE_NAME
= 'T005T'
*
IS_VARIANT
=
*
I_SAVE
=
*
I_DEFAULT
= 'X'
*
IS_LAYOUT
=
*
IS_PRINT
=
*
IT_SPECIAL_GROUPS
=
*
IT_TOOLBAR_EXCLUDING
=
*
IT_HYPERLINK
=
*
IT_ALV_GRAPHICS
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_ADAPTER
=
CHANGING
IT_OUTTAB
= IT_T005T
IT_FIELDCATALOG
= IT_FCAT
*
IT_SORT
=
*
IT_FILTER
=
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR
= 2
TOO_MANY_LINES
= 3
others
= 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDMODULE.
" DISPLAY_DATA_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
OKCODE = SY-UCOMM.
CLEAR SY-UCOMM.
CASE OKCODE.
WHEN 'BACK' OR 'EXIT'.
CALL METHOD O_ALV->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC IS INITIAL.
CALL METHOD O_DOCK->FREE

.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDMODULE.

" USER_COMMAND_9000 INPUT

S-ar putea să vă placă și