Alv Report
Alv Report
"Header:Material Document
"Material Descriptions
TYPES: BEGIN OF
mblnr TYPE
mjahr TYPE
bwart TYPE
matnr TYPE
werks TYPE
ebeln TYPE
ebelp TYPE
budat TYPE
maktx TYPE
lifnr TYPE
name1 TYPE
"Final Table
ty_final,
mseg-mblnr,
mseg-mjahr,
mseg-bwart,
mseg-matnr,
mseg-werks,
mseg-ebeln,
mseg-ebelp,
mkpf-budat,
makt-maktx,
ekko-lifnr,
lfa1-name1,
END OF ty_final.
******************/ TABLE TYPES DECLARATION /**************
TYPES: tt_mseg TYPE STANDARD TABLE OF ty_mseg,
tt_mkpf TYPE STANDARD TABLE OF ty_mkpf,
tt_makt TYPE STANDARD TABLE OF ty_makt,
tt_ekko TYPE STANDARD TABLE OF ty_ekko,
tt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
tt_final TYPE STANDARD TABLE OF ty_final.
******************/
DATA: it_mseg TYPE
it_mkpf TYPE
it_makt TYPE
it_ekko TYPE
it_lfa1 TYPE
it_final TYPE
it_fcat TYPE
******************/
DATA: wa_mseg TYPE
wa_mkpf TYPE
wa_makt TYPE
wa_ekko TYPE
wa_lfa1 TYPE
wa_final TYPE
wa_fcat TYPE
*&---------------------------------------------------------------------*
*&
Form SCREEN_VALIDATIONS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM screen_validations .
DATA: gv_werks TYPE mseg-werks.
IF p_werks IS INITIAL.
MESSAGE 'Enter plant number' TYPE 'E'.
ELSE.
SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks EQ p_werks.
IF sy-subrc NE 0.
MESSAGE 'Plant not available' TYPE 'E'.
ENDIF.
ENDIF.
ENDFORM.
" SCREEN_VALIDATIONS
*&---------------------------------------------------------------------*
*&
Form GETDATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM getdata .
PERFORM getdata_from_mseg.
PERFORM getdata_from_mkpf.
PERFORM get_data_from_makt.
PERFORM get_data_from_ekko.
PERFORM get_data_from_lfa1.
ENDFORM.
" GETDATA
*&---------------------------------------------------------------------*
*&
Form GETDATA_FROM_MSEG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM getdata_from_mseg .
SELECT mblnr
mjahr
bwart
matnr
werks
ebeln
ebelp FROM mseg INTO TABLE it_mseg
WHERE mblnr IN s_mblnr
AND werks EQ p_werks.
IF sy-subrc NE 0.
MESSAGE 'No data found for the given details' TYPE 'E'.
ENDIF.
ENDFORM.
" GETDATA_FROM_MSEG
*&---------------------------------------------------------------------*
*&
Form GETDATA_FROM_MKPF
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM getdata_from_mkpf .
IF it_mseg IS NOT INITIAL.
SELECT mblnr
mjahr
budat FROM mkpf INTO TABLE it_mkpf
FOR ALL ENTRIES IN it_mseg
WHERE mblnr EQ it_mseg-mblnr
AND mjahr EQ it_mseg-mjahr.
IF sy-subrc EQ 0.
SORT it_mkpf BY mblnr mjahr.
ENDIF.
ENDIF.
ENDFORM.
" GETDATA_FROM_MKPF
*&---------------------------------------------------------------------*
*&
Form GET_DATA_FROM_MAKT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_from_makt .
IF it_mseg IS NOT INITIAL.
SELECT matnr
maktx FROM makt INTO TABLE it_makt
FOR ALL ENTRIES IN it_mseg
WHERE matnr EQ it_mseg-matnr
AND spras EQ sy-langu.
IF sy-subrc EQ 0.
SORT it_makt BY matnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_FROM_MAKT
*&---------------------------------------------------------------------*
*&
Form GET_DATA_FROM_EKKO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_from_ekko .
IF it_mseg IS NOT INITIAL.
SELECT ebeln
lifnr FROM ekko INTO TABLE it_ekko
FOR ALL ENTRIES IN it_mseg
WHERE ebeln EQ it_mseg-ebeln.
IF sy-subrc EQ 0.
SORT it_ekko BY ebeln.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_FROM_EKKO
*&---------------------------------------------------------------------*
*&
Form GET_DATA_FROM_LFA1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_from_lfa1 .
IF it_ekko IS NOT INITIAL.
SELECT lifnr
name1 FROM lfa1 INTO TABLE it_lfa1
FOR ALL ENTRIES IN it_ekko
WHERE lifnr EQ it_ekko-lifnr.
IF sy-subrc EQ 0.
SORT it_lfa1 BY lifnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_FROM_LFA1
*&---------------------------------------------------------------------*
*&
Form PROCESS_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM process_data .
LOOP AT it_mseg INTO wa_mseg.
MOVE-CORRESPONDING wa_mseg TO wa_final.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
IS_LAYOUT
=
it_fieldcat
= it_fcat
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
IS_PRINT
=
IS_REPREP_ID
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0
I_HTML_HEIGHT_TOP
= 0
I_HTML_HEIGHT_END
= 0
IT_ALV_GRAPHICS
=
IT_HYPERLINK
=
IT_ADD_FIELDCAT
=
IT_EXCEPT_QINFO
=
IR_SALV_FULLSCREEN_ADAPTER
=
IMPORTING
E_EXIT_CAUSED_BY_CALLER
=
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= it_final
EXCEPTIONS
program_error
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
ENDFORM.
" DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*&
Form FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM fieldcat .
PERFORM fill_fieldcat USING 'MBLNR' 'Material Document' 15.