You are on page 1of 4

*&---------------------------------------------------------------------*

*& Report ZB25_ITAB_FINAL_27


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZB25_ITAB_FINAL_27_FS LINE-SIZE 500.
tables : ekko.
* 1 FINAL ITAB
TYPES : BEGIN OF LS_FINAL,
EBELN
LIFNR
EKORG
EKGRP

TYPE
TYPE
TYPE
TYPE

EBELN, " EKKO


EKKO-LIFNR,
EKORG,
EKGRP,

EBELP
MATNR
MENGE
MEINS
NETPR

TYPE
TYPE
TYPE
TYPE
TYPE

EBELP, " EKPO


MATNR,
EKPO-MENGE,
MEINS,
EKPO-NETPR,

ETENR TYPE EKET-ETENR, " EKET


EINDT TYPE EKET-EINDT,
AMENG TYPE EKET-AMENG,
LAND1 TYPE LFA1-LAND1,
NAME1 TYPE LFA1-NAME1,
ORT01 TYPE LFA1-ORT01,
MAKTX TYPE MAKTX,

" LFA1

" MAKT.

END OF LS_FINAL.
DATA: IT_FINAL TYPE STANDARD TABLE OF LS_FINAL,
WA_FINAL LIKE LINE OF IT_FINAL.
* FIELD SYMBOLS
FIELD-SYMBOLS : <FS_FINAL> LIKE LINE OF IT_FINAL.
TYPES : BEGIN OF LS_LFA1,
LIFNR TYPE LIFNR,
LAND1 TYPE LFA1-LAND1,
NAME1 TYPE LFA1-NAME1,
ORT01 TYPE LFA1-ORT01,
END OF LS_LFA1.

" LFA1

DATA : IT_LFA1 TYPE STANDARD TABLE OF LS_LFA1,


WA_LFA1 LIKE LINE OF IT_LFA1.

TYPES : BEGIN OF LS_MAKT,

MATNR TYPE MATNR,


MAKTX TYPE MAKTX,
END OF LS_MAKT.
DATA : IT_MAKT TYPE STANDARD TABLE OF LS_MAKT,
WA_MAKT LIKE LINE OF IT_MAKT.
PARAMETERS : P_BUKRS TYPE BUKRS.
* SYNTAX SELECT-OPTIONS : <S_VAR> FOR TABLE-FIELD
*PARAMETERS: p__AEDAT type EKKO-AEDAT.
SELECT-OPTIONS : S_AEDAT FOR EKKO-AEDAT.
RANGES : R_LIFNR FOR EKKO-LIFNR.
R_LIFNR-SIGN = 'I'.
R_LIFNR-OPTION = 'BT'.
R_LIFNR-LOW = '0000005510'.
R_LIFNR-HIGH = '0000005555'.
APPEND R_LIFNR.
R_LIFNR-SIGN = 'I'.
R_LIFNR-OPTION = 'BT'.
R_LIFNR-LOW = '0000006000'.
R_LIFNR-HIGH = '0000006999'.
APPEND R_LIFNR.
*
*
*
*
*

INTERNAL WITH FIELDS SIGN OPTION LOW AND HIGH


SIGN WILL HAVE I OR E 1- INCLUDE E- EXCLUDE
* OPTION - EQ, NE, BT, GT, GE, LE, LT
LOW _ FROM VALUE FOR USER INPUT
* HIGH - TO VALUE FOR USER INPUT

* USE SELECC...JOINN TO GET DATA FROM 3 TABLES EKKO EKPO EKET.

SELECT

A~EBELN
A~LIFNR
A~EKORG
A~EKGRP
B~EBELP
B~MATNR
B~MENGE
B~MEINS
B~NETPR

C~ETENR
C~EINDT
C~AMENG
FROM ( ( EKKO AS A INNER
ON A~EBELN = B~EBELN )
ON B~EBELN
B~EBELP
INTO TABLE IT_FINAL
WHERE A~BUKRS = P_BUKRS and
a~aedat in s_aedat AND
A~LIFNR IN R_LIFNR.

JOIN EKPO AS B
INNER JOIN EKET AS C
= C~EBELN AND
= C~EBELP )
" parameter use EQ or =
" since select-option is a itab use IN.

*
*

( A~LIFNR >= '0000005510' AND


A~LIFNR <= '0000005510' ).
IF SY-SUBRC = 0.
SORT IT_FINAL BY EBELN EBELP ETENR.
ENDIF.

* * GET VENDOR DETAILS FROM LFA1


IF NOT IT_FINAL[] IS INITIAL.
SELECT LIFNR LAND1 NAME1 ORT01 FROM LFA1
INTO TABLE IT_LFA1 FOR ALL ENTRIES IN IT_FINAL
WHERE LIFNR = IT_FINAL-LIFNR.
IF SY-SUBRC = 0.
SORT IT_LFA1 BY LIFNR.
ENDIF.
SELECT MATNR MAKTX FROM MAKT
INTO TABLE IT_MAKT FOR ALL ENTRIES IN IT_FINAL
WHERE MATNR = IT_FINAL-MATNR and
SPRAS = 'EN'.
IF SY-SUBRC = 0.
SORT IT_MAKT BY MATNR.
ENDIF.
ENDIF.
*BEFORE FIELD SYMBOLS
*LOOP AT IT_FINAL INTO WA_FINAL.
*
*
READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_FINAL-LIFNR BINARY SEA
RCH.
*
IF SY-SUBRC = 0.
*
WA_FINAL-LAND1 = WA_LFA1-LAND1.
*
WA_FINAL-NAME1 = WA_LFA1-NAME1.
*
WA_FINAL-ORT01 = WA_LFA1-ORT01.
*
ENDIF.
*
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR BINARY SEAR
CH.
*
IF SY-SUBRC = 0.
*
WA_FINAL-MAKTX = Wa_makt-MAKTX.
*
ENDIF.
*
* MODIFY IT_FINAL FROM WA_FINAL.
*
WRITE:/ WA_FINAL-EBELN,
*
WA_FINAL-LIFNR ,
*
WA_FINAL-EKORG ,
*
WA_FINAL-EKGRP ,
*
*
WA_FINAL-EBELP ,
*
WA_FINAL-MATNR ,
*
WA_FINAL-MENGE ,
*
WA_FINAL-MEINS ,
*
WA_FINAL-NETPR ,
*
*
WA_FINAL-ETENR ,
*
WA_FINAL-EINDT ,
*
WA_FINAL-AMENG ,
*
WA_FINAL-LAND1,

*
WA_FINAL-NAME1,
*
WA_FINAL-ORT01,
*
WA_FINAL-MAKTX.
*
*
CLEAR : WA_FINAL, WA_LFA1, WA_MAKT.
* ENDLOOP.
** USING FIELD SYMBOLS
* LOOP AT IT_FINAL INTO WA_FINAL.
LOOP AT IT_FINAL ASSIGNING <FS_FINAL>.
READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = <FS_FINAL>-LIFNR BINARY SE
ARCH.
IF SY-SUBRC = 0.
<FS_FINAL>-LAND1 = WA_LFA1-LAND1.
<FS_FINAL>-NAME1 = WA_LFA1-NAME1.
<FS_FINAL>-ORT01 = WA_LFA1-ORT01.
ENDIF.
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = <FS_FINAL>-MATNR BINARY SEA
RCH.
IF SY-SUBRC = 0.
<FS_FINAL>-MAKTX = Wa_makt-MAKTX.
ENDIF.
*

MODIFY IT_FINAL FROM WA_FINAL.


WRITE:/ <FS_FINAL>-EBELN,
<FS_FINAL>-LIFNR ,
<FS_FINAL>-EKORG ,
<FS_FINAL>-EKGRP ,
<FS_FINAL>-EBELP
<FS_FINAL>-MATNR
<FS_FINAL>-MENGE
<FS_FINAL>-MEINS
<FS_FINAL>-NETPR

,
,
,
,
,

<FS_FINAL>-ETENR ,
<FS_FINAL>-EINDT ,
<FS_FINAL>-AMENG ,
<FS_FINAL>-LAND1,
<FS_FINAL>-NAME1,
<FS_FINAL>-ORT01,
<FS_FINAL>-MAKTX.
CLEAR : WA_LFA1, WA_MAKT.
ENDLOOP.

You might also like