sapdev logo background
sapdev logo sapdev logo
Comments

Capture ABAP report using WRITE statement to internal table with SAP




The below code demonstrates how to create a simple report using the write statement and then capture it to an internal table as it is displayed on screen. Does not work for ALV reports.

*&------------------------------------------------------------*
*& Report  ZREPORT_CAPTURE                                    *
*&                                                            *
*&------------------------------------------------------------*
*&                                                            *
*& Demonstrate function module 'LIST_TO_ASCI'                 *
*& ..........................................                 *
*&                                                            *
*& Captures a report displayed using the write statement to an*
*& internal table, this is then downloaded to a PC file       *
*&------------------------------------------------------------* 
REPORT  ZREPORT_CAPTURE  no standard page heading.

TABLES:     ekko.

TYPE-POOLS: slis.                                 "ALV Declarations
*Data Declaration
*----------------
TYPES: BEGIN OF t_ekko,
  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,
 END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
      wa_ekko TYPE t_ekko.

*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      gd_tab_group TYPE slis_t_sp_group_alv,
      gd_layout    TYPE slis_layout_alv,
      gd_repid     LIKE sy-repid.

DATA: BEGIN OF it_report OCCURS 0,
      line(300),
      END OF it_report.


************************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.

* retrieve data
  PERFORM data_retrieval.


************************************************************************
*END-OF-SELECTION.
END-OF-SELECTION.

* display date on screen
  write: sy-uline(27).
  LOOP AT it_ekko INTO wa_ekko.
    WRITE:/ sy-vline,
            (10)wa_ekko-ebeln, sy-vline,
            (10)wa_ekko-ebelp, sy-vline.
  ENDLOOP.
  write:/ sy-uline(27).

* capture report to internal table, does not work for ALV reports
  CALL FUNCTION 'LIST_TO_ASCI'
    EXPORTING
      LIST_INDEX               = 0
    TABLES
      listasci                 = it_report.

* download report to file
  CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
      filename = 'C:\temp\report.txt'
      filetype = 'ASC'
    TABLES
      data_tab = it_report.


*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
FORM data_retrieval.

  SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
   UP TO 10 ROWS
    FROM ekpo
    INTO TABLE it_ekko.
ENDFORM.                    " DATA_RETRIEVAL



comments powered by Disqus