0% found this document useful (0 votes)
69 views21 pages

Abap Reports

The document contains examples of different ABAP report programming techniques including: 1) Defining data types, internal tables, and work areas for extracting and processing customer data from the KNA1 table. 2) Examples of using SELECT, LOOP, WRITE statements to extract and output customer records. 3) More advanced techniques like selection screens, control breaks, sorting, appending, modifying, and describing internal tables.

Uploaded by

Ashutosh Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views21 pages

Abap Reports

The document contains examples of different ABAP report programming techniques including: 1) Defining data types, internal tables, and work areas for extracting and processing customer data from the KNA1 table. 2) Examples of using SELECT, LOOP, WRITE statements to extract and output customer records. 3) More advanced techniques like selection screens, control breaks, sorting, appending, modifying, and describing internal tables.

Uploaded by

Ashutosh Jha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

ABAP REPORTS

Report ZSD_Customer_Report

Types:begin of ty_kna1,
Customer(10) type c,
NAME(20) TYPE C,
CITY(20) TYPE C,
END OF ty_KNA1.

* provide Work Area --------- comment line


Data:wa_kna1 type ty_kna1.

* provide execution logic


SELECT single KUNNR NAME1 ORT01 FROM KNA1 INTO
WA_KNA1.

* creating virtual page & printing


WRITE:/10 WA_KNA1-CUSTOMER,
30 WA_KNA1-NAME,
60 WA_KNA1-CITY.

REPORT ZSD_LOOPENDLOOP.

TYPES:BEGIN OF ty_kna1,
       customer(20) TYPE    C,
       name(20)     TYPE    C,
       city(20)     TYPE   C,
       END      OF   ty_kna1.

DATA:it_kna1 TYPE TABLE OF ty_kna1,
      wa_kna1 TYPE ty_kna1.
*  * provide extraction logic
  SELECT    kunnr    name1   ort01    FROM    kna1    INTO    TABLE   it_kna1.
*  * Appling processing logic
  LOOP    AT   it_kna1    INTO   wa_kna1.
  WRITE:/10    wa_kna1-customer,
         30    wa_kna1-name,
         60    wa_kna1-city.
  ENDLOOP.

REPORT ZSD_ INTERNAL_WORKAREA.

TYPES: BEGIN OF ty_kna1,


customer (20) TYPE C,
name(20) TYPE C,
city(20) TYPE C,
END OF ty_kna1.
DATA: wa_kna1 TYPE ty_kna1,
it_kna1 TYPE TABLE OF ty_kna1.
* provide extraction logic
SELECT kunnr name1 ort01 FROM kna1 INTO TABLE
it_kna1.
* Appling processing logic
LOOP AT it_kna1 INTO wa_kna1.
WRITE:/10 wa_kna1-customer,
30 wa_kna1-name,
60 wa_kna1-city.
ENDLOOP.

SELECTION SCREEN.

TABLES    kna1.
*  * provide selection screen
SELECTION-SCREEN: BEGIN   OF   BLOCK   b1   WITH    FRAME   TITLE 
TEXT-009 .
  SELECT-OPTIONS:  s_kunnr    FOR   kna1-kunnr.
  SELECTION-SCREEN: END   OF   BLOCK   b1.
*  * provide objects
  TYPES:  BEGIN   OF   ty_kna1,
         customer(20) TYPE    C,
         name(20)   TYPE    C,
         city(20)   TYPE    C,
         END       OF   ty_kna1.
DATA:  wa_kna1    TYPE   ty_kna1,
       It_kna1 TYPE    TABLE    OF    ty_kna1.
*  * provide extraction logic
  SELECT    kunnr    name1   ort01    FROM    kna1    INTO    TAB
LE   it_kna1   WHERE
 kunnr    IN    s_kunnr.
*  * Appling processing logic
  LOOP    AT   it_kna1    INTO   wa_kna1.
  WRITE:/10    wa_kna1-customer,
         30    wa_kna1-name,
         60    wa_kna1-city.
  ENDLOOP.

PARAMETERS

* provide tables work area


TABLES kna1.

* provide selection screen


SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE
TEXT-009
PARAMETERS p_kunnr TYPE kunnr.
SELECTION-SCREEN: END OF BLOCK b1.

* provide objects
TYPES: BEGIN OF wa_kna1,
customer(20) TYPE C,
name(20) TYPE C,
city(20) TYPE C,
END OF wa_kna1.

* provide extraction logic


SELECT SINGLE kunnr name1 ort01 FROM kna1 INTO
wa_kna1
WHERE kunnr EQ p_kunnr.

* Appling processing logic


WRITE:/10 wa_kna1-customer,
30 wa_kna1-name,
60 wa_kna1-city.
ENDSELECT.
APPEND keyword:
TYPES:BEGIN OF ty_mat,
      material TYPE char20,
      quantity TYPE i,
      price TYPE i,
     END OF ty_mat.

*  Declare the work area
     DATA:wa_mat TYPE ty_mat,
          it_mat TYPE TABLE OF ty_mat.

  wa_mat-material = 'F001'.
  wa_mat-quantity = 100.
  wa_mat-price = 50.

*  Move Work Area Data to Internal Table
  APPEND wa_mat to it_mat.
  clear:wa_mat.

  wa_mat-material = 'F002'.
  wa_mat-quantity = 200.
  wa_mat-price = 75.

  APPEND wa_mat to it_mat.

  wa_mat-material = 'F001'.
  wa_mat-quantity = 200.
  wa_mat-price = 75.

  APPEND wa_mat to it_mat.

SORT it_mat by material.
  CLEAR:wa_mat.

  LOOP AT it_mat INTO wa_mat.

    write:/10 wa_mat-material,
            30 wa_mat-quantity,
            60 wa_mat-price.
    CLEAR:wa_mat.

  ENDLOOP.

SORT keyword:

DATA: BEGIN OF wa,


material(10) TYPE C,
quan(10) TYPE C,
END OF wa.
DATA it LIKE TABLE OF wa.
* fill data into it
wa-material=’F001’.
wa-quan=50.
APPEND wa TO it.
wa-material=’F002’.
wa-quan=70.
APPEND wa TO it.
wa-material=’F002’.
wa-quan=100.
APPEND wa TO it.
wa-material=’F001’.
wa-quan=80.
APPEND wa TO it.
SORT it BY material ASCENDING.
LOOP AT it INTO wa.
WRITE:/10 wa-material,
30 wa-quan.
ENDLOOP.

DELETE ADJACENT DUPLICATES keyword:

TYPES: BEGIN    OF   TY,
    material(10) TYPE   c,
    quan(10)     TYPE   c,
    END  OF TY.

  DATA:IT TYPE TABLE OF TY,
        WA TYPE TY.

*  * fill data into it
  wa-material = 'F001'.
  wa-quan = 50.
  APPEND    wa   TO   it.
  CLEAR:wa.

  wa-material = 'F002'.
  wa-quan = 70.
  APPEND   wa   TO   it.
  CLEAR:wa.

  wa-material = 'F002'.
  wa-quan = 100.
  APPEND wa TO it.
  CLEAR:wa.

  wa-material = 'F001'.
  wa-quan = 80.
  APPEND wa TO it.
  CLEAR wa.

  SORT it BY material.

  DELETE ADJACENT DUPLICATES FROM it COMPARING material.

  LOOP AT it INTO wa.
  WRITE:/10 wa-material,
         30 wa-quan.
  ENDLOOP.

COLLECT Keyword:
TYPES:BEGIN OF ty_kna1,
  material(20) TYPE c,
  quan TYPE i,
  END OF ty_kna1.

  DATA:wa_kna1 TYPE ty_kna1,
       it_kna1 TYPE TABLE OF ty_kna1,
       it_kna11 TYPE TABLE OF ty_kna1.

    wa_kna1-material  =  'F001'.
    wa_kna1-quan        =   50.
    APPEND    wa_kna1    TO it_kna1.

    wa_kna1-material  =  'F002'.
    wa_kna1-quan        =   150.
    APPEND    wa_kna1    TO    it_kna1.

    wa_kna1-material  =  'F001'.
    wa_kna1-quan        =   550.
    APPEND  wa_kna1    TO it_kna1.

    wa_kna1-material  =  'F002'.
    wa_kna1-quan        =   350.
    APPEND  wa_kna1   TO    it_kna1.

*  LOOP    AT    it_kna1    INTO  wa_kna1.
*  COLLECT      wa_kna1    INTO    it_kna11.
*
*  ENDLOOP.
*  LOOP     AT    it_kna11    INTO    wa_kna1.
*  WRITE:/10     wa_kna1-material,
*          30     wa_kna1-quan.
*  ENDLOOP.

READ TABLE it_kna1 INTO wa_kna1 with KEY material = 'F002'.
IF sy-subrc = 0.
MESSAGE 'Data Found' TYPE 'I'.
ENDIF.

CLEAR wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 with KEY material = 'F003'.
IF sy-subrc ne 0.
MESSAGE 'Data not Found' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.

MODIFY keyword:
TYPES:BEGIN OF ty_kna1,
  material(20) TYPE c,
  quan TYPE i,
  unit(2) TYPE c,
  END OF ty_kna1.

  DATA:wa_kna1 TYPE ty_kna1,
       it_kna1 TYPE TABLE OF ty_kna1,
       it_kna11 TYPE TABLE OF ty_kna1.

    wa_kna1-material  =  'F001'.
    wa_kna1-quan        =   50.
    APPEND    wa_kna1    TO it_kna1.

    wa_kna1-material  =  'F002'.
    wa_kna1-quan        =   150.
    APPEND    wa_kna1    TO    it_kna1.

    wa_kna1-material  =  'F001'.
    wa_kna1-quan        =   550.
    APPEND  wa_kna1    TO it_kna1.

    wa_kna1-material  =  'F002'.
    wa_kna1-quan        =   350.
    APPEND  wa_kna1   TO    it_kna1.

*  LOOP    AT    it_kna1    INTO  wa_kna1.
*  COLLECT      wa_kna1    INTO    it_kna11.
*
*  ENDLOOP.
*  LOOP     AT    it_kna11    INTO    wa_kna1.
*  WRITE:/10     wa_kna1-material,
*          30     wa_kna1-quan.
*  ENDLOOP.

LOOP AT it_kna1 INTO wa_kna1.
wa_kna1-unit    =     'kg'.
  MODIFY    it_kna1    FROM    wa_kna1    TRANSPORTING    unit.

ENDLOOP.

READ TABLE it_kna1 INTO wa_kna1 with KEY material = 'F002'.
IF sy-subrc = 0.
MESSAGE 'Data Found' TYPE 'I'.
ENDIF.

CLEAR wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 with KEY material = 'F003'.
IF sy-subrc ne 0.
MESSAGE 'Data not Found' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.

DESCRIBE keyword:

TYPES: BEGIN OF ty,


material(20) TYPE C,
quan TYPE I,
END OF wa.
DATA it TYPE TABLE OF wa.
DATA n TYPE I.
wa-material = ‘F001’.
wa-quan = 50.
APPEND wa TO it.
wa-material = ‘F002’.
wa-quan = 150.
APPEND wa TO it.
wa-material = ‘F001’.
wa-quan = 250.
APPEND wa TO it.
wa-material = ‘F002’.
wa-quan = 350.
APPEND wa TO it.
DESRIBE TABLE it LINES n.
WRITE n.
APPEND LINES keyword:
*&---------------------------------------------------------------------*
*& Report  ZTEST_APPEND_LINE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTEST_APPEND_LINE.
TYPES: BEGIN   OF ty,
        material(20) TYPE    C,
        quan TYPE    I,
     END      OF    ty.
*  * creating bodies

  DATA: it   TYPE   TABLE   OF   ty,
      it1  TYPE    TABLE   OF   ty,
wa TYPE ty.

*  * appending data from work area to bodies

wa-material  =  'F001'.
wa-quan        =   50.
APPEND     wa    TO   it.
clear wa.

wa-material  =  'F002'.
wa-quan        =   150.
APPEND     wa    TO    it.
CLEAR:wa.

wa-material  =  'F001'.
wa-quan        =   250.
APPEND     wa    TO    it1.
CLEAR:wa.

wa-material  =  'F002'.
wa-quan      =   350.
APPEND     wa  TO  it1.
CLEAR:wa.

* coping data one body to another body
APPEND    LINES    OF    it    TO    it1.

* displaying data of target body
LOOP    AT   it1   INTO   wa.

*       ------------- CLEAR   wa.
WRITE:/10    wa-material,
       30    wa-quan.
*       ------------- CLEAR   wa.
ENDLOOP.

Control Break Statements:- (Events)


TYPES:  BEGIN   OF   ty,
        material(10) TYPE    C,
        quan         TYPE    I,
        amount      TYPE    I,
        END       OF    ty.

*  * creating internal table
  DATA    it    TYPE   TABLE    OF    ty,
wa    TYPE   ty.

*  * filling data into it
  wa-material  =  'F001'.
  wa-quan        =  50.
  wa-amount    =  5000.
  APPEND    wa    TO    it.

  wa-material  =  'F002'.
  wa-quan        =  70.
  wa-amount    =  6000.
  APPEND    wa    TO    it.

  wa-material  =  'F001'.
  wa-quan        =  100.
  wa-amount    =  10000.
  APPEND    wa    TO    it.

  wa-material  =  'F002'.
  wa-quan        =  100.
  wa-amount    =  12000.
  APPEND    wa    TO    it.

*  * sorting it by material
  SORT   it   BY    material.

*  * appling Control Break Statements
  LOOP    AT    it   INTO    wa.
  
  AT    FIRST.
  WRITE:/50    'Materials Details Report'    COLOR    1.
  SKIP.
  ULINE.
  ENDAT.

  AT    NEW   material.
  WRITE:/  'The Material Code is:', wa-material.
  SKIP.
  ENDAT.
  WRITE:/10   wa-quan,
         30   wa-amount.

  AT    END    OF   material.
  SUM.
  WRITE:/   'The Total Quantity is:', wa-quan,
        /   'The Total Amount is:', wa-amount.
  ULINE.
  ENDAT.

  AT    LAST.
  SUM.
  WRITE:/   'The Grand Total Quantity is:', wa-quan,
        /   'The Grand Total Amount is:', wa-amount.
  ULINE.
  ENDAT.

  ENDLOOP.

MODIFY keyword:

TABLES kna1.

DATA: wa TYPE kna1,


It TYPE TABLE OF kna1.

wa-kunnr = ‘0000009083’.
wa-name1 = ‘rahul’.
wa-ort01 = ‘mumbai’.
wa-pstlz = ‘400002’.
APPEND wa TO it.

MODIFY kna1 FROM TABLE it.

WRITE:/ ‘number of records inserted:’, SY-DBCNT.

Creation of Table Maintenance Generator:


Create Table First:
 Go to SE11
 Provide Database Table: ZSD_MAIL
 Select Create option
 Provide Short Description: Customer Mail Table
 Provide Delivery Class: A
 Provide Table View Maintenance: Display Maintenance Allowed (both
display & create entries is allowed)
 Select Fields tab
Field key Data Element
MANDT _/ MANDT
KUNNR _/ KUNNR
MAILID _/ ZMAIL_DAT
 Double click on ZMAIL_DAT
 You will find a message pop-up select Yes option
 Select Local Object option
 Again you will find a warning: application table should be client specific the
press Enter
 You will find a pop-up: create the data element then click Yes
 Provide Short Description: Customer Mail Id
 Provide Domain: CHAR
 Select Field Label tab
Length field lable
Medium 20 Mail Id
 Activate data element (Ctrl+F3)
 Go to back (F3)
Field key data element
INDICATOR _/ Z_INDICATOR
 Double click on Z_INDICATOR
 Save Yes
 You will find a warning pop-up: Enter
 You will find a pop-up: create data element Yes
 Provide Short Description: Indicator
 Provide Domain: CHAR20
 Select Value Range tab
FIX VAR Short Desciption
1 TO
2 CC
3 BCC
 Activate the domain (Ctrl+F3)
 Go to back (F3)
 Select Field Label tab
 Provide Short Description: Indicator
Length field lable
Medium 20 Indicator
 Activate data element (Ctrl+F3)
 Go to back (F3)
 Select Technical Settings button
 Provide Data Class: APPL0 (APPL0---for master data & APPL1---for
transactional data)
 Provide Size Category: 0 (it means table holds up to 8000 records)
 Select Save option (Ctrl+s)
 Select back (F3)
 Activate Table (Ctrl+F3)
 During activation you will find a warning pop-up select Yes
Ignore the warnings & go back (F3)

Creating TMG:
 Go to SE80
 Under Test Repository select Function Group option
 Provide Function Group: ZMAIL_GR then press Enter
 You will find a pop-up create object press Yes
 Again you will find a pop-up Short Text: Mail Group then press Enter
 Select Local Object

 Go to SE11
 Provide Database Table: ZSD_MAIL
 Select Change option
 Select Utilities---Table Maintenance Generator
 Provide Authorization Group: &NC&
 Provide Function Group: ZMAIL_GR
 Select One Step option
 Select Scr Number(s) button
 You will find a pop-up select Propose Screen Number option then press
Enter
 Select Create option (F6)
 Select Save option (Enter)
 Select Local Object (Enter)

Creating TCode:
 Go to SE93
 Provide Transaction Code: ZMAIL
 Select Create option
 Provide Short Text: Customer Mail Details
 Select Transaction with Parameters (Parameter Transaction) option then
press Enter
 Provide Transaction: SM30
 Select Skip Initial screen checkbox
 Scroll down to bottom then provide
 Name of Screen Field Value
ViewName ZSD_MAIL
Update X
 Save (Ctrl+s)
 Select Favorites---Insert Transaction
 Provide Transaction Code: ZMAIL then press Enter

Testing TMG:
 Provide Run TCode: ZMAIL then press Enter
 Provide Table: ZSD_MAIL
 Select Maintain option
 Select New Entries button
 Insert records & save

Subroutines:

*&---------------------------------------------------------------------*
*& Report  ZTEST_SUBROUTINE_PRAYAG
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTEST_SUBROUTINE_PRAYAG.

BREAK-POINT.

WRITE: / 'Welcome to the Sub routine'.

PERFORM sub.

WRITE:/  'First Call'.

PERFORM  sub.

WRITE:/  'Second Call'.

*&---------------------------------------------------------------------*
*&      Form  SUB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM sub .
WRITE: / 'Ínside Sub'.
ENDFORM.                    " SUB

Pass by Value & Pass by Reference:


Pass by Value:

REPORT ztest_actual_para_prayag.

DATA v1 TYPE c VALUE 'A'.

PERFORM sub USING v1.

WRITE:/     v1.

FORM  sub USING  VALUE(p1).
p1 = 'B'.

WRITE:/  p1.

ENDFORM.

Output:
b
a

Pass by Reference:

DATA    v1    TYPE C VALUE 'A'.

PERFORM  sub USING v1.

WRITE:/     v1.

FORM  sub    USING  p1.

p1 = 'B'.

WRITE:/  p1.
ENDFORM.

Output:
b
b

External Subroutines:
 Go to SE38
 Program: ZMM_GRN_DETAILS
 Create
 Title: GRM Details
 Type: Executable Program
 Save
 Local Object

*&---------------------------------------------------------------------*
*& Report  ZMM_GRN_DETAILS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM_GRN_DETAILS.

TABLES: MKPF, MSEG.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_mblnr FOR MKPF-mblnr,
          s_werks FOR MSEG-werks,
          s_budat FOR MKPF-budat.
SELECTION-SCREEN: END OF BLOCK b1.
BREAK-POINT.
PERFORM extsub(ZMM_GRN_FORM) USING s_mblnr-low  s_mblnr-high s_werks-low s_wer
ks-high s_budat-low s_budat-high.

 Double click on ZMM_GRM_FORM


 You will find a pop-up select Yes
 Save & Yes
 You will find a pop-up deselect With Top Incl check box the press Enter
*&---------------------------------------------------------------------*
*& Report  ZMM_GRN_FORM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM_GRN_FORM.

TABLES:mkpf,mseg.

TYPES: BEGIN    OF    ty_mseg,
       mblnr TYPE    mblnr,
       budat TYPE    budat,
       menge  TYPE    menge_D,
       matnr   TYPE    matnr,
       dmbtr   TYPE    dmbtr,
       werks TYPE werks_d,
*  budat TYPE budat,
      END     OF    ty_mseg.

DATA: wa_mseg  TYPE    ty_mseg,
      It_mseg   TYPE    TABLE    OF  ty_mseg.

form extsub USING VALUE(grm_low)     VALUE(grm_high)    VALUE(plnt_low)    VAL
UE(plnt_high)     VALUE(date_low)      VALUE(date_high).
BREAK-POINT.
  SELECT mkpf~mblnr
         mkpf~budat
         mseg~menge
         mseg~matnr
         mseg~dmbtr
         mseg~werks
    FROM mkpf INNER JOIN mseg
    on  MKPF~mblnr = mseg~mblnr
    AND MKPF~MJAHR = mseg~MJAHR
   into TABLE It_mseg
   WHERE MKPF~mblnr BETWEEN grm_low AND grm_high.

   LOOP    AT    it_mseg     INTO     wa_mseg.
    WRITE:/10     wa_mseg-mblnr,
           30     wa_mseg-budat,
           50     wa_mseg-menge,
           70     wa_mseg-matnr,
           90     wa_mseg-dmbtr.
ENDLOOP.
ENDFORM.

Output:
s_mblnr : 49000000 to 490005000
s_werks: 1000 to 1200
s_budat: 15.11.1994 to 01.06.2009
Execute (F8)
Field Symbol:
 Go to SE38
 Program: ZMM_FIELDSYMBOL
 Create
 Title: Field Symbols
 Type: Executable Program
 Save, Local Object

TABLES: LFA1.
INCLUDE ZVEND_DECC.

 Double click on ZVEND_DECC


 Yes, Yes, Enter

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAM TITLE


text-000.
SELECT-OPTIONS: s_lifnr FOR LFA1-lifnr,
s_land1 FOR LFA1-land1.
SELECTION-SCREEN: END OF BLOCK b1.

TYPES: BEGIN OF ty_lfa1,


lifnr TYPE lifnr,
land1 TYPE land1,
name1 TYPE name1,
ort01 TYPE ort01,
pstlz TYPE pstlz,
stras TYPE stras,
END OF ty_lfa1.

FIELD-SYMBLOS <l_fs> TYPE ty_lfa1.

DATA it_lfa1 TYPE TABLE OF ty_lfa1.

PERFORM get_data.
PERFORM display_data.
FORM get_data.
SELECT lifnr land1 name1 ort01 pstlz stras INTO TABLE
it_lfa1
FROM LFA1
WHERE lifnr IN s_lifnr
AND land1 IN s_land1.
ENDFORM.
FORM display_data.
LOOP AT it_lfa1 ASSIGNING <l_fs>.
WRITE:/10 <l_fs>-lifnr,
30 <l_fs>-land1,
50 <l_fs>-name1,
70 <l_fs>-ort01,
90 <l_fs>-pstlz,
110 <l_fs>-stras,
ENDLOOP.
ENDFORM.

Export Import Functionality:

 Go to SE38
 Program: YIMPORT_PROG
 Create
 Title: Import Program
 Type: Executable Program
 Save, Local Object

TABLES: EKPO.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-


000.
SELECT-OPTIONS: s_matnr FOR EKPO-matnr,
s_werks FOR EKPO-werks.
SELECTION-SCREEN: END OF BLOCK b1.

TYPES: BEGIN OF ty_ekpo,


ebeln TYPE ebeln,
matnr TYPE matnr,
menge TYPE menge_D,
netpr TYPE netpr,
END OF ty_ekpo.

DATA: wa_ekpo TYPE ty_ekpo,


It_ekpo TYPE TABLE OF ty_ekpo.
SUBMIT YEXPORT_PROG WITH matnr IN s_matnr
WITH werks IN s_werks
EXPORTING LIST TO MEMORY AND RETURN.

IMPORT it_ekpo FROM MEMORY ID ‘matt’.

LOOP AT it_ekpo INTO wa_ekpo.


WRITE:/10 wa_ekpo-ebeln,
30 wa_ekpo-matnr,
60 wa_ekpo-menge,
90 wa_ekpo-netpr.
ENDLOOP.

 Double click on YEXPORT_PROG


 Yes
 Remove With Top INCL check box
 Enter, Enter, Enter

TABLES: EKPO.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-


000.
SELECT-OPTIONS: s_matnr FOR EKPO-matnr,
s_werks FOR EKPO-werks.
SELECTION-SCREEN: END OF BLOCK b1.

TYPES: BEGIN OF ty_ekpo,


ebeln TYPE ebeln,
matnr TYPE matnr,
menge TYPE menge_D,
netpr TYPE netpr,
END OF ty_ekpo.

DATA it_ekpo TYPE TABLE OF ty_ekpo.

SELECT ebeln matnr menge netpr FROM EKPO INTO TABLE


it_ekpo
WHERE matnr IN s_matnr
AND werks IN s_werks.
EXPORT it_ekpo TO MEMORY ID ‘matt’.

Output:
Execute IMPORT_PROG
s_matnr 100-100 to 100-500
s_werks 1000 to 1100

You might also like