Sie sind auf Seite 1von 5

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

*& Report ZOOPS_ALV_PROG1


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZOOPS_ALV_PROG3.
DATA OKCODE TYPE SYUCOMM.
DATA O_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA O_ALV1 TYPE REF TO CL_GUI_ALV_GRID.
DATA O_ALV2 TYPE REF TO CL_GUI_ALV_GRID..
DATA IT_T005T TYPE TABLE OF T005T.
DATA O_SPLITTER type ref to cl_gui_splitter_container.
DATA o_split1 type ref to cl_gui_container.
data o_split2 like o_split1.

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.
CREATE OBJECT O_CONT
EXPORTING
CONTAINER_NAME
= 'CUST'
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR
= 2
CREATE_ERROR
= 3
LIFETIME_ERROR
= 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
others
= 6
.
IF SY-SUBRC IS INITIAL.
** splitter the container into 2 columns and 1 row
CREATE OBJECT O_SPLITTER
EXPORTING
*
LINK_DYNNR
=
*
LINK_REPID
=
*
SHELLSTYLE
=
*
LEFT
=
*
TOP
=
*
WIDTH
=
*
HEIGHT
=

*
*

*
*
*
*
*
*

METRIC
= cntl_metric_dynpro
ALIGN
= 15
PARENT
= o_cont
ROWS
= 1
COLUMNS
= 2
NO_AUTODEF_PROGID_DYNNR =
NAME
=
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC is initial.

*Get the indivudual splitted container reference


CALL METHOD O_SPLITTER->GET_CONTAINER
EXPORTING
ROW
= 1
COLUMN
= 1
RECEIVING
CONTAINER = o_split1
.

*
*
*
*
*

CALL METHOD O_SPLIT1->SET_WIDTH


EXPORTING
WIDTH
= 1500
EXCEPTIONS
CNTL_ERROR = 1
others
= 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD O_SPLITTER->GET_CONTAINER
EXPORTING
ROW
= 1
COLUMN
= 2
RECEIVING
CONTAINER = o_split2
.
ENDIF.

CREATE OBJECT O_ALV1


EXPORTING
I_PARENT

= O_split1 "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.

CREATE OBJECT O_ALV2


EXPORTING
I_PARENT

= O_split2 "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_ALV1 IS BOUND.
SELECT *
FROM T005T
INTO TABLE IT_T005T
UP TO 30 ROWS
WHERE SPRAS = SY-LANGU.
IF SY-SUBRC IS INITIAL.
CALL METHOD O_ALV1->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_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.
*----------------------------------------------CHECK O_ALV2 IS BOUND.
data it_t001w type table of t001w.
SELECT *
from t001w
into table it_t001w
up to 20 rows.
IF SY-SUBRC IS INITIAL.
CALL METHOD O_ALV2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
*
I_BUFFER_ACTIVE
=
*
I_BYPASSING_BUFFER
=
*
I_CONSISTENCY_CHECK
=
I_STRUCTURE_NAME
= 'T001W'
*
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_T001w
*
IT_FIELDCATALOG
=
*
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_ALV1->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC IS INITIAL.
CALL METHOD O_split1->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC is initial.
ENDIF.
ENDIF.
CALL METHOD O_ALV2->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC IS INITIAL.
CALL METHOD O_split2->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
IF SY-SUBRC is initial.
ENDIF.
ENDIF.
CALL METHOD O_splitter->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
CALL METHOD O_cont->FREE
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR = 2
others
= 3
.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDMODULE.

" USER_COMMAND_9000 INPUT

Das könnte Ihnen auch gefallen