CLASS HANDLE_EVENT DEFINITION.
PUBLIC SECTION.
CLASS-METHODS : HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK
OF CL_GUI_ALV_GRID IMPORTING E_ROW.
ENDCLASS.
PUBLIC SECTION.
CLASS-METHODS : HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK
OF CL_GUI_ALV_GRID IMPORTING E_ROW.
ENDCLASS.
DATA : IT_MARA TYPE TABLE OF MARA,
WA_MARA TYPE MARA,
IT_MAKT TYPE TABLE OF MAKT,
WA_MAKT TYPE MAKT,
O_CUST TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
O_SPLI TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
O_REF1 TYPE REF TO CL_GUI_CONTAINER,
O_REF2 TYPE REF TO CL_GUI_CONTAINER,
O_ALV1 TYPE REF TO CL_GUI_ALV_GRID,
O_ALV2 TYPE REF TO CL_GUI_ALV_GRID,
OK_CODE TYPE SY-UCOMM.
SELECT-OPTIONS : S_MATNR FOR WA_MARA-MATNR.
WA_MARA TYPE MARA,
IT_MAKT TYPE TABLE OF MAKT,
WA_MAKT TYPE MAKT,
O_CUST TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
O_SPLI TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
O_REF1 TYPE REF TO CL_GUI_CONTAINER,
O_REF2 TYPE REF TO CL_GUI_CONTAINER,
O_ALV1 TYPE REF TO CL_GUI_ALV_GRID,
O_ALV2 TYPE REF TO CL_GUI_ALV_GRID,
OK_CODE TYPE SY-UCOMM.
SELECT-OPTIONS : S_MATNR FOR WA_MARA-MATNR.
CLASS HANDLE_EVENT IMPLEMENTATION.
METHOD HANDLE_DOUBLE_CLICK.
CLEAR WA_MARA.
READ TABLE IT_MARA INTO WA_MARA INDEX E_ROW.
select * from makt into table it_makt
where matnr = wa_mara-matnr.
IF SY-SUBRC = 0.
IF O_ALV2 IS NOT BOUND.
create object O_ALV2
exporting
I_PARENT = O_REF2
exceptions
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5
.
if SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
METHOD HANDLE_DOUBLE_CLICK.
CLEAR WA_MARA.
READ TABLE IT_MARA INTO WA_MARA INDEX E_ROW.
select * from makt into table it_makt
where matnr = wa_mara-matnr.
IF SY-SUBRC = 0.
IF O_ALV2 IS NOT BOUND.
create object O_ALV2
exporting
I_PARENT = O_REF2
exceptions
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5
.
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_ALV2->SET_TABLE_FOR_FIRST_DISPLAY
exporting
I_STRUCTURE_NAME = 'MAKT'
*
changing
IT_OUTTAB = IT_MAKT
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.
ENDIF.
exporting
I_STRUCTURE_NAME = 'MAKT'
*
changing
IT_OUTTAB = IT_MAKT
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.
ENDIF.
call method O_ALV2->REFRESH_TABLE_DISPLAY
* exporting
* IS_STABLE =
* I_SOFT_REFRESH =
exceptions
FINISHED = 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.
ENDMETHOD.
ENDCLASS.
* exporting
* IS_STABLE =
* I_SOFT_REFRESH =
exceptions
FINISHED = 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.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
PERFORM FETCH_DATA.
PERFORM FETCH_DATA.
END-OF-SELECTION.
CALL SCREEN 100.
FORM FETCH_DATA.
SELECT * FROM MARA INTO TABLE IT_MARA
WHERE MATNR IN S_MATNR.
ENDFORM.
SELECT * FROM MARA INTO TABLE IT_MARA
WHERE MATNR IN S_MATNR.
ENDFORM.
MODULE SPLIT_CONTAINER OUTPUT.
IF O_CUST IS NOT BOUND.
create object O_CUST
exporting
* PARENT =
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
.
create object O_SPLI
exporting
* LINK_DYNNR =
* LINK_REPID =
* SHELLSTYLE =
* LEFT =
* TOP =
* WIDTH =
* HEIGHT =
* METRIC = CNTL_METRIC_DYNPRO
* ALIGN = 15
PARENT = O_CUST
ROWS = 2
COLUMNS = 1
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
exceptions
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
OTHERS = 3
.
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 O_CUST IS NOT BOUND.
create object O_CUST
exporting
* PARENT =
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
.
create object O_SPLI
exporting
* LINK_DYNNR =
* LINK_REPID =
* SHELLSTYLE =
* LEFT =
* TOP =
* WIDTH =
* HEIGHT =
* METRIC = CNTL_METRIC_DYNPRO
* ALIGN = 15
PARENT = O_CUST
ROWS = 2
COLUMNS = 1
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
exceptions
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
OTHERS = 3
.
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_SPLI->GET_CONTAINER
exporting
ROW = 1
COLUMN = 1
receiving
CONTAINER = O_REF1 .
call method O_SPLI->GET_CONTAINER
exporting
ROW = 2
COLUMN = 1
receiving
CONTAINER = O_REF2 .
ENDIF.
ENDMODULE.
exporting
ROW = 1
COLUMN = 1
receiving
CONTAINER = O_REF1 .
call method O_SPLI->GET_CONTAINER
exporting
ROW = 2
COLUMN = 1
receiving
CONTAINER = O_REF2 .
ENDIF.
ENDMODULE.
MODULE MARA_DISPLAY OUTPUT.
IF O_ALV1 IS NOT BOUND.
create object O_ALV1
exporting
I_PARENT = O_REF1
* I_APPL_EVENTS = SPACE
exceptions
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5
.
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 O_ALV1 IS NOT BOUND.
create object O_ALV1
exporting
I_PARENT = O_REF1
* I_APPL_EVENTS = SPACE
exceptions
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5
.
if SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
SET HANDLER HANDLE_EVENT=>HANDLE_DOUBLE_CLICK FOR O_ALV1.
call method O_ALV1->SET_TABLE_FOR_FIRST_DISPLAY
exporting
* I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'MARA'
changing
IT_OUTTAB = IT_MARA
* 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. " MARA_DISPLAY OUTPUT
call method O_ALV1->SET_TABLE_FOR_FIRST_DISPLAY
exporting
* I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'MARA'
changing
IT_OUTTAB = IT_MARA
* 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. " MARA_DISPLAY OUTPUT
Serkan AKKAVAK
Computer Engineer BSc
SAP Department Deputy Manager
Contact : serkurumsal@yandex.com
0 Comments