|
YPRACTICE_503 |
Home | ||||
|
Previous Next | |||||
|
*&---------------------------------------------------------------------* *& Report YPRACTICE_503 * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------*
REPORT ypractice_503 .
*----------------------------------------------------------------------* * Tables *----------------------------------------------------------------------* TABLES : t023t, mara, makt, t006a.
INCLUDE ypractice_503_alv. *INCLUDE ypractice_501_alv.
*----------------------------------------------------------------------* *GLOBAL VARIABLE DECRALATION *----------------------------------------------------------------------*
TYPES : BEGIN OF ty_header, chbox, exp, matkl LIKE t023t-matkl, wgbez LIKE t023t-wgbez, END OF ty_header.
TYPES: BEGIN OF ty_detail, matkl LIKE mara-matkl, " Material Group matnr LIKE mara-matnr, " Material Number maktx LIKE makt-maktx, " Material Description bismt LIKE mara-bismt, " Old material number meins LIKE mara-meins, " Base Unit of Measure mseht LIKE t006a-mseht, " Unit of Measurement Text END OF ty_detail.
DATA: gi_header TYPE STANDARD TABLE OF ty_header WITH HEADER LINE, gi_detail TYPE STANDARD TABLE OF ty_detail WITH HEADER LINE, gi_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE, gi_t006a LIKE STANDARD TABLE OF t006a WITH HEADER LINE.
DATA: gv_width TYPE i. " Width of list
*----------------------------------------------------------------------* *Input Screen/Selection *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK groupbox1 WITH FRAME TITLE text_101. "Declare Group Box 1
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(18) text_102 FOR FIELD so_matkl. SELECT-OPTIONS so_matkl FOR mara-matkl. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(18) text_103 FOR FIELD so_matnr. SELECT-OPTIONS so_matnr FOR mara-matnr. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK groupbox1. "End Group Box 1
*----------------------------------------------------------------------* *EVENT *----------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT. text_101 = 'Selection Parameter'. text_102 = 'Material Group'. text_103 = 'Material Number'.
*----------------------------------------------------------------------* *INITIALIZATION *----------------------------------------------------------------------* INITIALIZATION.
*======================================================================* *MAIN PROGRAM *Execute after Input Screen *======================================================================* START-OF-SELECTION. gv_width = 113. PERFORM fm_collect_data. PERFORM fm_process_data. PERFORM fm_display_data.
END-OF-SELECTION.
*======================================================================* *SUB PROGRAM / SUB ROUTINE *======================================================================*
*&--------------------------------------------------------------------* *& Form fm_collect_data *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM fm_collect_data. *Collect Material Group SELECT matkl wgbez INTO CORRESPONDING FIELDS OF TABLE gi_header FROM t023t WHERE matkl IN so_matkl AND spras = sy-langu.
* "For SAP 4.6C * DATA : lv_total_data type i. * DESCRIBE TABLE gi_header LINES lv_total_data. * IF lv_total_data > 0.
IF LINES( gi_header ) > 0." For SAP 4.7 above * Collect Master Material SELECT matnr matkl bismt meins INTO CORRESPONDING FIELDS OF TABLE gi_detail FROM mara FOR ALL ENTRIES IN gi_header WHERE matkl = gi_header-matkl AND matnr IN so_matnr.
IF LINES( gi_detail ) > 0." For SAP 4.7 above * Collect Material Decription SELECT matnr maktx INTO CORRESPONDING FIELDS OF TABLE gi_makt FROM makt FOR ALL ENTRIES IN gi_detail WHERE matnr = gi_detail-matnr AND spras = sy-langu.
* Collect Measurement Text SELECT msehi mseht INTO CORRESPONDING FIELDS OF TABLE gi_t006a FROM t006a FOR ALL ENTRIES IN gi_detail WHERE msehi = gi_detail-meins AND spras = sy-langu. ENDIF. ENDIF.
* Notes : * Avoid using inner join
ENDFORM. "FM_COLLECT_DATA
*&--------------------------------------------------------------------* *& Form FM_PROCESS_DATA *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM fm_process_data. *Get other requirement information LOOP AT gi_detail. * Get Material Description READ TABLE gi_makt WITH KEY matnr = gi_detail-matnr. IF sy-subrc = 0. gi_detail-maktx = gi_makt-maktx. ENDIF.
* Get Measurement Text READ TABLE gi_t006a WITH KEY msehi = gi_detail-meins. IF sy-subrc = 0. gi_detail-mseht = gi_t006a-mseht. ENDIF.
MODIFY gi_detail. ENDLOOP.
ENDFORM. "FM_PROCESS_DATA
*&--------------------------------------------------------------------* *& Form fm_display_data *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM fm_display_data. PERFORM fm_alv_reset_data.
* Mengatur Parameter dan Data ALV PERFORM fm_alv_set_layout USING 'Display List of Master Material'. PERFORM fm_alv_set_print. PERFORM fm_alv_set_column.
gv_i_default = 'X'. gv_i_save = 'A'.
PERFORM fm_alv_show_hier TABLES gi_header gi_detail.
ENDFORM. "fm_display_data
*====================================================================== *Set ALV *======================================================================
*&--------------------------------------------------------------------* *& Form fm_alv_set_column *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM fm_alv_set_column.
* matkl LIKE mara-matkl, " Material Group * matnr LIKE mara-matnr, " Material Number * maktx LIKE makt-maktx, " Material Description * bismt LIKE mara-bismt, " Old material number * meins LIKE mara-meins, " Base Unit of Measure * mseht LIKE t006a-mseht, " Unit of Measurement Text
* Set Header Column PERFORM fm_alv_add_fieldcat USING 'GI_HEADER': 'MATKL' 'T023T' 'MATKL' '' '' 'Mat. Group' '' '' '' '' '' '' '' '' '' '' '' '' '' 'X' 'X', 'WGBEZ' 'T023T' 'WGBEZ' '' '' 'Mat. Number' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_internal_tabname = 'GI_HEADER' * i_structure_name = '' CHANGING ct_fieldcat = gi_it_fieldcat[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
* Set Detail Column PERFORM fm_alv_add_fieldcat USING 'GI_DETAIL': 'MATKL' 'MARA' 'MATKL' '' '' 'Mat. Group' '' '' '' '' '' '' '' '' '' '' '' '' '' 'X' 'X', 'MATNR' 'MARA' 'MATNR' '' '' 'Mat. Number' '' '' '' '' '' '' '' '' '' '' '' '' '' 'X' 'X', 'MAKTX' 'MAKT' 'MAKTX' '' '' 'Decription' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '', 'BISMT' 'MARA' 'BISMT' '' '' 'Old Mat. No' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '', 'MEINS' 'MARA' 'MEINS' '' '' 'Base Unit' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '', 'MSEHT' 'T006A' 'MSEHT' '' '' 'Measure' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_internal_tabname = 'GI_DETAIL' * i_structure_name = '' CHANGING ct_fieldcat = gi_it_fieldcat[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
* Sort and Group by Field * CLEAR gi_it_sort. * gi_it_sort-fieldname = 'MATKL'. ">> Filled by Fieldname * gi_it_sort-up = 'X'. ">> 'X' = Ascending ; ' ' = Descending * gi_it_sort-subtot = 'X'. * gi_it_sort-group = '*'. ">> '*' = Grouped by field ; ' ' = Not grouped by this field * APPEND gi_it_sort.
ENDFORM. "fm_alv_set_column
*&---------------------------------------------------------------------* *& Form fm_build_keyinfo *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->FU_KEYINFO text *----------------------------------------------------------------------* FORM fm_build_keyinfo USING fu_keyinfo TYPE slis_keyinfo_alv .
fu_keyinfo-header01 = 'MATKL'. * fu_keyinfo-header02 = 'VKORG'. * fu_keyinfo-header03 = 'VTWEG'. * fu_keyinfo-header04 = 'NETWR'. * fu_keyinfo-header05 = 'WAERK'.
fu_keyinfo-item01 = 'MATKL'. * fu_keyinfo-item02 = 'POSNR'. * fu_keyinfo-item03 = 'VTWEG'. * fu_keyinfo-item04 = 'SPART'. * fu_keyinfo-item05 = 'NORM'.
ENDFORM. "fm_build_keyinfo
|
| User Threads | New Thread ( Only for Donators ) |
|
|
|||
| Threads | Last Post | Replies | Views |
|
|
|||