Professional Documents
Culture Documents
REPORT ZAP_ASSIGNMENT_2.
TYPE-POOLS SLIS.
BEGIN OF TY_FINAL ,
MBLNR TYPE MKPF-MBLNR,
MJAHR TYPE MKPF-MJAHR,
BUDAT TYPE MKPF-BUDAT,
ZEILE TYPE MSEG-ZEILE,
WERKS TYPE MSEG-WERKS,
LGORT TYPE MSEG-LGORT,
MATNR TYPE MSEG-MATNR,
MAKTX TYPE MAKT-MAKTX,
MENGE TYPE MSEG-MENGE,
MEINS TYPE MSEG-MEINS,
END OF TY_FINAL.
BEGIN OF TY_GT_MSEG_NEW ,
MBLNR TYPE MSEG-MBLNR ,
ZEILE TYPE MSEG-ZEILE ,
WERKS TYPE MSEG-WERKS ,
LGORT TYPE MSEG-LGORT ,
MATNR TYPE MSEG-MATNR ,
MENGE TYPE MSEG-MENGE ,
MEINS TYPE MSEG-MEINS ,
END OF TY_GT_MSEG_NEW,
BEGIN OF TY_GT_MAKT ,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF TY_GT_MAKT .
INITIALIZATION.
PERFORM SET_FIELDCAT_1 USING GT_FCAT1[].
PERFORM SET_LAYOUT.
START-OF-SELECTION.
PERFORM GET_MSEG.
PERFORM DISP_MSEG.
*&---------------------------------------------------------------------*
*& Form SET_FIELDCAT_1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_FIELDCAT_1 USING GT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 1.
GS_FCAT-FIELDNAME = 'MBLNR'.
GS_FCAT-TABNAME = 'GT_MSEG1'.
GS_FCAT-OUTPUTLEN = 10.
GS_FCAT-SELTEXT_M = 'Mat. Doc'.
GS_FCAT-EMPHASIZE = 'X'.
GS_FCAT-KEY = 'X'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 2.
GS_FCAT-FIELDNAME = 'WERKS'.
GS_FCAT-TABNAME = 'GT_MSEG1'.
GS_FCAT-OUTPUTLEN = 5.
GS_FCAT-SELTEXT_M = 'Plant'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 3.
GS_FCAT-FIELDNAME = 'BWART'.
GS_FCAT-TABNAME = 'GT_MSEG1'.
GS_FCAT-OUTPUTLEN = 4.
GS_FCAT-SELTEXT_M = 'Mov.Type'.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 4.
GS_FCAT-FIELDNAME = 'COUNT'.
GS_FCAT-TABNAME = 'GT_MSEG1'.
GS_FCAT-OUTPUTLEN = 5.
GS_FCAT-SELTEXT_M = 'Count'.
GS_FCAT-hotspot = 'X'.
GS_SORT-FIELDNAME = 'COUNT'.
GS_SORT-SUBTOT = 'X'.
GS_SORT-UP = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR GS_SORT.
ENDLOOP.
GS_MSEG2-COUNT = LV_CNT.
MODIFY gt_mseg2 INDEX sy-tabix FROM gs_mseg2 TRANSPORTING count.
CLEAR LV_CNT.
ENDLOOP.
* REFRESH: GT_FCAT1 .
LV_VALUE = SY-LISEL.
LV_MBLNR = LV_VALUE+0(10).
* LV_CNT = SELFIELD-VALUE.
*
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = IN_LV_VALUE
* IMPORTING
* OUTPUT = LV_MBLNR
* .
PERFORM DISP_LINE_DATA.
ENDFORM.
" SET_LAYOUT
*&---------------------------------------------------------------------*
*& Form GET_LINE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LV_VALUE text
*----------------------------------------------------------------------*
FORM GET_LINE_DATA USING LV_MBLNR TYPE CHAR10.
SELECT MBLNR
MJAHR
BUDAT
FROM MKPF
INTO TABLE GT_MKPF_NEW
WHERE MBLNR = LV_MBLNR.
SELECT MBLNR
ZEILE
WERKS
LGORT
MATNR
MENGE
MEINS
FROM MSEG
INTO TABLE GT_MSEG_NEW
FOR ALL ENTRIES IN GT_MKPF_NEW
WHERE MBLNR = GT_MKPF_NEW-MBLNR.
SELECT MATNR MAKTX FROM MAKT INTO TABLE GT_MAKT FOR ALL ENTRIES IN
GT_MSEG_NEW WHERE MATNR = GT_MSEG_NEW-MATNR .
ENDIF.
SORT GT_MAKT BY MATNR.
ENDIF.
GS_FINAL-ZEILE = GS_MSEG_NEW-ZEILE .
GS_FINAL-WERKS = GS_MSEG_NEW-WERKS.
GS_FINAL-LGORT = GS_MSEG_NEW-LGORT.
GS_FINAL-MATNR = GS_MSEG_NEW-MATNR.
GS_FINAL-MENGE = GS_MSEG_NEW-MENGE.
GS_FINAL-MEINS = GS_MSEG_NEW-MEINS.
CLEAR: GS_MKPF_NEW.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form SET_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_LAYOUT .
GS_LAYO-ZEBRA = 'X'.
GS_LAYO-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISP_LINE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_LINE_DATA .
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 1.
GS_FCAT-FIELDNAME = 'MBLNR'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 10.
GS_FCAT-SELTEXT_M = 'MBLNR'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 2.
GS_FCAT-FIELDNAME = 'MJAHR'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 4.
GS_FCAT-SELTEXT_M = 'MJAHR'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 3.
GS_FCAT-FIELDNAME = 'BUDAT'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 10.
GS_FCAT-SELTEXT_M = 'BUDAT'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 4.
GS_FCAT-FIELDNAME = 'ZEILE'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 10.
GS_FCAT-SELTEXT_M = 'ZEILE'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 5.
GS_FCAT-FIELDNAME = 'WERKS'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 4.
GS_FCAT-SELTEXT_M = 'WERKS'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 6.
GS_FCAT-FIELDNAME = 'LGORT'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 4.
GS_FCAT-SELTEXT_M = 'LGORT'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 7.
GS_FCAT-FIELDNAME = 'MATNR'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 10.
GS_FCAT-SELTEXT_M = 'MATNR'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 8.
GS_FCAT-FIELDNAME = 'MAKTX'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 15.
GS_FCAT-SELTEXT_M = 'MAKTX'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 9.
GS_FCAT-FIELDNAME = 'MENGE'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 13.
GS_FCAT-SELTEXT_M = 'MENGE'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
GS_FCAT-ROW_POS = 1.
GS_FCAT-COL_POS = 10.
GS_FCAT-FIELDNAME = 'MEINS'.
GS_FCAT-TABNAME = 'GT_FINAL'.
GS_FCAT-OUTPUTLEN = 3.
GS_FCAT-SELTEXT_M = 'MEINS'.
APPEND GS_FCAT TO GT_FCAT_NEW.
CLEAR GS_FCAT.
*
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* I_PROGRAM_NAME = SYST-CPROG
* I_INTERNAL_TABNAME = 'GT_FINAL'
* CHANGING
* CT_FIELDCAT = GT_FCAT_NEW.
* REFRESH: GT_FCAT_NEW.