Académique Documents
Professionnel Documents
Culture Documents
REPORT ZLM_ALV_EXAM.
INCLUDE zlm_show_mat_top.
INCLUDE zlm_show_mat_f01.
INCLUDE zlm_show_mat_output.
START-OF-SELECTION.
PERFORM F_GET_DATA.
PERFORM f_process_data.
PERFORM F_SHOW_ALV.
*&---------------------------------------------------------------------*
*& Include ZLM_SHOW_MAT_TOP
*&---------------------------------------------------------------------*
TABLES : ZLM_MATERIAL_H.
TYPES: BEGIN OF ty_materialh,
checkbox(1),
matnr TYPE ZLM_MATERIAL_H-MATNR,
matkl TYPE ZLM_MATERIAL_H-matkl,
mtart TYPE ZLM_MATERIAL_H-mtart,
uom TYPE ZLM_MATERIAL_H-uom,
quantity TYPE ZLM_MATERIAL_H-quantity,
description TYPE ZLM_MATERIAL_H-description,
created_on TYPE ZLM_MATERIAL_H-created_on,
created_time TYPE ZLM_MATERIAL_H-created_time,
created_by TYPE ZLM_MATERIAL_H-created_by,
END OF ty_materialh.
DATA: it_struc TYPE TABLE OF ty_materialh,
wa_struc TYPE ty_materialh.
DATA: it_data TYPE TABLE OF ZLM_MATERIAL_H,
wa_data TYPE ZLM_MATERIAL_H.
DATA: it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat LIKE LINE OF it_fcat.
DATA: lv_count TYPE i,
linecount TYPE c.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS : p_matnum LIKE ZLM_MATERIAL_H-matnr.
SELECTION-SCREEN END OF BLOCK b1.
Include show mat f01
*&---------------------------------------------------------------------*
*& Include ZLM_SHOW_MAT_F01
*&---------------------------------------------------------------------*
form f_get_data.
IF p_matnum IS INITIAL.
* SELECT MATNR MATKL MTART UOM QUANTITY DESCRIPTION CREATED_ON CREATED_TI
ME CREATED_BY FROM ZLM_MATERIAL_H INTO CORRESPONDING FIELDS OF TABLE IT_STRU
C.
SELECT * FROM ZLM_MATERIAL_H INTO CORRESPONDING FIELDS OF TABLE IT_STRUC.
* SELECT * FROM ZLM_MATERIAL_H INTO CORRESPONDING FIELDS OF TABLE IT_DAT
A.
DESCRIBE TABLE it_struc LINES lv_count.
linecount = lv_count.
ELSE.
SELECT * FROM ZLM_MATERIAL_H INTO CORRESPONDING FIELDS OF TABLE IT_STRUC W
HERE matnr EQ p_matnum.
* SELECT * FROM ZLM_MATERIAL_H INTO CORRESPONDING FIELDS OF TABLE IT_DAT
A WHERE matnr eq p_matnum.
DESCRIBE TABLE it_struc LINES lv_count.
linecount = lv_count.
ENDIF.
endform.
form f_process_data.
ENDFORM.
FORM user_command USING r_ucomm TYPE sy-ucomm
r_selfield TYPE slis_selfield.
DATA : ld_grid TYPE REF TO cl_gui_alv_grid.
IF ld_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ld_grid.
ENDIF.
IF NOT ld_grid IS INITIAL.
CALL METHOD ld_grid->check_changed_data.
ENDIF.
CASE r_ucomm.
*nama ikon
WHEN '&UBAH'.
LOOP AT IT_STRUC INTO WA_STRUC WHERE checkbox = 'X'.
WA_DATA-matnr = WA_STRUC-matnr.
WA_DATA-matkl = WA_STRUC-matkl.
WA_DATA-mtart = WA_STRUC-mtart.
WA_DATA-uom = WA_STRUC-uom.
WA_DATA-quantity = WA_STRUC-quantity.
WA_DATA-description = WA_STRUC-description.
WA_DATA-created_on = sy-datum.
WA_DATA-created_time = sy-uzeit.
WA_DATA-created_by = sy-uname.
append WA_DATA to IT_DATA.
clear WA_DATA.
ENDLOOP.
MODIFY ZLM_MATERIAL_H FROM TABLE IT_DATA.
COMMIT WORK AND WAIT.
IF SY-SUBRC EQ 0.
MESSAGE 'DATA BERHASIL DIUBAH' TYPE 'I'.
ELSE.
MESSAGE 'DATA GAGAL DIUBAH' TYPE 'I'.
ENDIF.
WHEN '&DELETE'.
LOOP AT IT_STRUC INTO WA_STRUC WHERE checkbox = 'X'.
WA_DATA-matnr = WA_STRUC-matnr.
* WA_DATA-matkl = WA_STRUC-matkl.
* WA_DATA-mtart = WA_STRUC-mtart.
* WA_DATA-uom = WA_STRUC-uom.
* WA_DATA-quantity = WA_STRUC-quantity.
* WA_DATA-description = WA_STRUC-description.
* WA_DATA-created_on = sy-datum.
* WA_DATA-created_time = sy-uzeit.
* WA_DATA-created_by = sy-uname.
DELETE FROM ZLM_MATERIAL_H WHERE MATNR = WA_DATA-MATNR.
* append WA_DATA to IT_DATA.
clear WA_DATA.
ENDLOOP.
IF SY-SUBRC EQ 0.
MESSAGE 'DATA BERHASIL DIHAPUS' TYPE 'I'.
ELSE.
MESSAGE 'DATA GAGAL HAPUS' TYPE 'I'.
ENDIF.
endcase.
r_selfield-refresh = 'X'.
ENDFORM.
Include show mat output
*&---------------------------------------------------------------------*
*& Include ZLM_SHOW_MAT_OUTPUT
*&---------------------------------------------------------------------*
form f_show_alv.
IF IT_STRUC IS NOT INITIAL.
PERFORM build_fieldcatalog.
PERFORM display_alv_report.
ELSE.
MESSAGE 'Data Not Found' TYPE 'I'.
ENDIF.
endform.
FORM build_fieldcatalog.
wa_fcat-fieldname = 'CHECKBOX'.
wa_fcat-seltext_m = 'Checkbox'.
wa_fcat-checkbox = 'X'.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-seltext_m = 'Material Number'.
wa_fcat-col_pos = 0.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'MATKL'.
wa_fcat-seltext_m = 'Material Group'.
wa_fcat-col_pos = 1.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'MTART'.
wa_fcat-seltext_m = 'Material Type'.
wa_fcat-col_pos = 2.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'UOM'.
wa_fcat-seltext_m = 'Unit Of Measure'.
wa_fcat-col_pos = 3.
wa_fcat-outputlen = 20.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'QUANTITY'.
wa_fcat-seltext_m = 'Quantity'.
wa_fcat-qfieldname = 'UOM'.
wa_fcat-col_pos = 4.
wa_fcat-outputlen = 20.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'DESCRIPTION'.
wa_fcat-seltext_m = 'Description'.
wa_fcat-col_pos = 5.
wa_fcat-outputlen = 20.
wa_fcat-edit = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'CREATED_ON'.
wa_fcat-seltext_m = 'Created On'.
wa_fcat-col_pos = 6.
wa_fcat-outputlen = 20.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'CREATED_TIME'.
wa_fcat-seltext_m = 'Created Time'.
wa_fcat-col_pos = 7.
wa_fcat-outputlen = 20.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'CREATED_BY'.
wa_fcat-seltext_m = 'Created By'.
wa_fcat-col_pos = 8.
wa_fcat-outputlen = 20.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
endform.
form display_alv_report.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = 'SUB_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP-OF-PAGE'
TABLES
t_outtab = it_struc
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
endform.
FORM top-of-page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
* Title
wa_header-typ = 'H'.
wa_header-info = 'Report KRRS'.
APPEND wa_header TO t_header.
CLEAR wa_header.
* Information
wa_header-typ = 'A'.
CONCATENATE 'Jumlah Record:' linecount INTO wa_header-info SEPARATED BY spac
e.
APPEND wa_header TO t_header.
CLEAR: wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. "top-of-page
FORM sub_pf_status USING rt_extab TYPE slis_t_extab..
SET PF-STATUS 'STANDARD'.
ENDFORM. "sub_pf_status