You are on page 1of 5

REPORT ZALV_VENDOR_PROJECT

TYPE-POOLS : SLIS.
TABLES : LFA1,LFM1,ADRC.
DATA : BEGIN OF IT_LFA1 OCCURS 10,
LIFNR LIKE LFA1-LIFNR,
ADRNR LIKE LFA1-ADRNR,
ERDAT LIKE LFA1-ERDAT,
ERNAM LIKE LFA1-ERNAM,
LOEVM LIKE LFA1-LOEVM,
END OF IT_LFA1.
DATA : BEGIN OF IT_LFM1 OCCURS 10,
LIFNR LIKE LFM1-LIFNR,
EKORG LIKE LFM1-EKORG,
VERKF LIKE LFM1-VERKF,
TELF1 LIKE LFM1-TELF1,
EIKTO LIKE LFM1-EIKTO,
END OF IT_LFM1.
DATA : BEGIN OF IT_VENDOR OCCURS 10,
LIFNR LIKE LFA1-LIFNR,
ADRNR LIKE LFA1-ADRNR,
ERDAT LIKE LFA1-ERDAT,
ERNAM LIKE LFA1-ERNAM,
LOEVM LIKE LFA1-LOEVM,
EKORG LIKE LFM1-EKORG,
VERKF LIKE LFM1-VERKF,
TELF1 LIKE LFM1-TELF1,
EIKTO LIKE LFM1-EIKTO,
END OF IT_VENDOR.
DATA : BEGIN OF IT_ADRC OCCURS 10,
ADDRNUMBER LIKE ADRC-ADDRNUMBER,
NAME1 LIKE ADRC-NAME1,
SORT1 LIKE ADRC-SORT1,
POST_CODE1 LIKE ADRC-POST_CODE1,
STREET LIKE ADRC-STREET,
CITY1 LIKE ADRC-CITY1,
STR_SUPPL2 LIKE ADRC-STR_SUPPL2,
TEL_NUMBER LIKE ADRC-TEL_NUMBER,
FAX_NUMBER LIKE ADRC-FAX_NUMBER,
COUNTRY LIKE ADRC-COUNTRY,
LANGU LIKE ADRC-LANGU,
NATION LIKE ADRC-NATION,
END OF IT_ADRC.
DATA : BEGIN OF IT_FINAL OCCURS 10,
EKORG LIKE LFM1-EKORG,
LIFNR LIKE LFM1-LIFNR,
NAME1 LIKE ADRC-NAME1,
NATION LIKE ADRC-NATION,
SORT1 LIKE ADRC-SORT1,
POST_CODE1 LIKE ADRC-POST_CODE1,
STREET LIKE ADRC-STREET,
CITY1 LIKE ADRC-CITY1,
STR_SUPPL2 LIKE ADRC-STR_SUPPL2,
TEL_NUMBER LIKE ADRC-TEL_NUMBER,

FAX_NUMBER LIKE ADRC-FAX_NUMBER,


COUNTRY LIKE ADRC-COUNTRY,
LANGU LIKE ADRC-LANGU,
VERKF LIKE LFM1-VERKF,
TELF1 LIKE LFM1-TELF1,
EIKTO LIKE LFM1-EIKTO,
LOEVM LIKE LFA1-LOEVM,
ERDAT LIKE LFA1-ERDAT,
ERNAM LIKE LFA1-ERNAM,
END OF IT_FINAL.
DATA : V_PROGRAM LIKE SY-REPID.
DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV .
SELECT-OPTIONS : S_LIFNR FOR LFA1-LIFNR,
S_EKORG FOR LFM1-EKORG,
S_LOEVM FOR LFA1-LOEVM,
S_NATION FOR ADRC-NATION.
START-OF-SELECTION.
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM

GET_LFA1.
GET_LFM1.
GET_VENDOR.
GET_ADRC.
GET_FINAL.
DISPLAY_REPORT.

*&---------------------------------------------------------------------*
*&
Form GET_LFA1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_LFA1 .
SELECT LIFNR
ADRNR
ERDAT
ERNAM
LOEVM
FROM LFA1
INTO TABLE IT_LFA1
WHERE LIFNR IN S_LIFNR.
ENDFORM.
" GET_LFA1
*&---------------------------------------------------------------------*
*&
Form GET_LFM1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_LFM1 .

SELECT LIFNR
EKORG
VERKF
TELF1
EIKTO
FROM LFM1
INTO TABLE IT_LFM1
FOR ALL ENTRIES IN IT_LFA1
WHERE LIFNR = IT_LFA1-LIFNR
AND EKORG IN S_EKORG.
ENDFORM.
" GET_LFM1
*&---------------------------------------------------------------------*
*&
Form GET_VENDOR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_VENDOR .
LOOP AT IT_LFM1.
READ TABLE IT_LFA1 WITH KEY LIFNR = IT_LFM1-LIFNR.
IF SY-SUBRC = 0.
IT_VENDOR-LIFNR
IT_VENDOR-ADRNR
IT_VENDOR-ERDAT
IT_VENDOR-ERNAM
IT_VENDOR-LOEVM
ENDIF.
IT_VENDOR-EKORG
IT_VENDOR-VERKF
IT_VENDOR-TELF1
IT_VENDOR-EIKTO

=
=
=
=

=
=
=
=
=

IT_LFA1-LIFNR.
IT_LFA1-ADRNR.
IT_LFA1-ERDAT.
IT_LFA1-ERNAM.
IT_LFA1-LOEVM.

IT_LFM1-EKORG.
IT_LFM1-VERKF.
IT_LFM1-TELF1.
IT_LFM1-EIKTO.

APPEND IT_VENDOR.
ENDLOOP.
IF NOT S_LOEVM IS INITIAL.
DELETE IT_VENDOR WHERE LOEVM = 'X'.
ENDIF.

ENDFORM.
" GET_VENDOR
*&---------------------------------------------------------------------*
*&
Form GET_ADRC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM GET_ADRC .
SELECT ADDRNUMBER
NAME1
SORT1
POST_CODE1
STREET
CITY1
STR_SUPPL2
TEL_NUMBER
FAX_NUMBER
COUNTRY
LANGU
NATION
FROM ADRC
INTO TABLE IT_ADRC
FOR ALL ENTRIES IN IT_VENDOR
WHERE ADDRNUMBER = IT_VENDOR-ADRNR
AND NATION IN S_NATION.
ENDFORM.
" GET_ADRC
*&---------------------------------------------------------------------*
*&
Form GET_FINAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_FINAL .
LOOP AT IT_VENDOR.
IT_FINAL-EKORG = IT_VENDOR-EKORG.
IT_FINAL-LIFNR = IT_VENDOR-LIFNR.
READ TABLE IT_ADRC WITH KEY ADDRNUMBER = IT_VENDOR-ADRNR.
IF SY-SUBRC = 0.
IT_FINAL-NAME1 = IT_ADRC-NAME1.
IT_FINAL-NATION = IT_ADRC-NATION.
IT_FINAL-SORT1 = IT_ADRC-SORT1.
IT_FINAL-POST_CODE1 = IT_ADRC-POST_CODE1.
IT_FINAL-STREET = IT_ADRC-STREET.
IT_FINAL-CITY1 = IT_ADRC-CITY1.
IT_FINAL-STR_SUPPL2 = IT_ADRC-STR_SUPPL2.
IT_FINAL-TEL_NUMBER = IT_ADRC-TEL_NUMBER.
IT_FINAL-FAX_NUMBER = IT_ADRC-FAX_NUMBER.
IT_FINAL-COUNTRY = IT_ADRC-COUNTRY.
IT_FINAL-LANGU = IT_ADRC-LANGU.
ENDIF.
IT_FINAL-VERKF
IT_FINAL-TELF1
IT_FINAL-EIKTO
IT_FINAL-LOEVM
IT_FINAL-ERDAT

=
=
=
=
=

IT_VENDOR-VERKF.
IT_VENDOR-TELF1.
IT_VENDOR-EIKTO.
IT_VENDOR-LOEVM.
IT_VENDOR-ERDAT.

IT_FINAL-ERNAM = IT_VENDOR-ERNAM.
APPEND IT_FINAL.
ENDLOOP.
ENDFORM.
" GET_FINAL
*&---------------------------------------------------------------------*
*&
Form DISPLAY_REPORT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_REPORT .
V_PROGRAM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= V_PROGRAM
I_INTERNAL_TABNAME
= 'IT_FINAL'
I_INCLNAME
= V_PROGRAM
CHANGING
CT_FIELDCAT
= IT_FCAT
EXCEPTIONS
INCONSISTENT_INTERFACE
= 1
PROGRAM_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 FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
= V_PROGRAM
IT_FIELDCAT
= IT_FCAT
TABLES
T_OUTTAB
= IT_FINAL
EXCEPTIONS
PROGRAM_ERROR
= 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.

ENDFORM.

" DISPLAY_REPORT

You might also like