Downloading Internal table data into Excel

 Downloading Internal table data into Excel :

*&---------------------------------------------------------------------*
*& Report ZVB_E070
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_e070.

TYPE-POOLSslis.
TABLES:e070,e07t,
user_addr.

TYPES:BEGIN OF ty_E070,
        trkorr   TYPE e070-trkorr,
        trstatus TYPE e070-trstatus,
        as4user  TYPE e070-as4user,
        as4date  TYPE e070-as4date,
        as4time  TYPE e070-as4time,
        strkorr  TYPE e070-strkorr,
      END OF ty_E070.

TYPESBEGIN OF ty_E07T,
         trkorr  TYPE e07t-trkorr,
         as4text TYPE  e07t-as4text,
       END OF ty_E07T.

TYPES:BEGIN OF ty_USER_ADDR,
        bname      TYPE user_addr-bname,
        name_textc TYPE user_addr-name_textc,
      END OF ty_USER_ADDR.

TYPESBEGIN OF ty_final,
         trkorr     TYPE e070-trkorr,
         trstatus   TYPE e070-trstatus,
         as4user    TYPE e070-as4user,
         name_textc TYPE user_addr-name_textc,
         as4date    TYPE e070-as4date,
         as4time    TYPE e070-as4time,
         strkorr    TYPE e070-strkorr,
         as4text    TYPE  e07t-as4text,
       END OF ty_final.

DATAiw_e070      TYPE ty_e070,
      iw_e07t      TYPE ty_e07t,
      iw_user_addr TYPE ty_user_addr,
      iw_final     TYPE ty_final,
      it_e070      TYPE TABLE OF ty_e070,
      it_e07t      TYPE TABLE OF ty_e07t,
      it_user_addr TYPE TABLE OF ty_user_addr,
      it_final     TYPE TABLE OF ty_final.

DATA:it_fcat TYPE  slis_t_fieldcat_alv,
     iW_fcat TYPE slis_fieldcat_alv.

DATA:iw_layout TYPE slis_layout_alv.

DATAg_str1 TYPE string VALUE '.xls',
      g_str  TYPE string,
      g_str2 TYPE string.

DATA BEGIN OF it_header OCCURS 0,
         line(50TYPE c,
       END OF it_header.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS:s_trkorr FOR e070-trkorr,
  s_date FOR e070-as4date.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2.
  PARAMETERS:p_alv RADIOBUTTON GROUP g1 USER-COMMAND usr DEFAULT 'X'.
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:p_down RADIOBUTTON GROUP g1.
    SELECTION-SCREEN COMMENT 3(29TEXT-002.
    PARAMETERS:p_file TYPE rlgrap-filename MODIF ID sc1.
  SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
      static    'X'
    CHANGING
      file_name P_file.

AT SELECTION-SCREEN OUTPUT.
  IF p_ALV EQ 'X'.
    LOOP AT SCREEN.
      IF screen-name 'P_FILE'.
        screen-active 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

START-OF-SELECTION.

  SELECT trkorr
         trstatus
         as4user
         as4date
         as4time
         strkorr
    FROM e070
    INTO TABLE it_e070
    WHERE trkorr IN s_trkorr
    AND as4date IN s_date
    AND trstatus 'R'.

  IF it_e070 IS NOT INITIAL.
    SELECT bname name_textc
      FROM user_addr
      INTO TABLE it_user_addr
      FOR ALL ENTRIES IN it_e070
      WHERE bname it_e070-as4user.

    SELECT trkorr as4text
      FROM e07t
      INTO TABLE it_e07t
      FOR ALL ENTRIES IN it_e070
      WHERE trkorr it_e070-trkorr
       AND langu sy-langu.
  ELSE.
    MESSAGE 'No data for the selection criteria' TYPE 'E'.
  ENDIF.

  LOOP AT it_e070 INTO iw_e070.
    iw_final-trkorr iw_e070-trkorr.
    iw_final-trstatus iw_e070-trstatus.
    iw_final-as4user iw_e070-as4user.
    iw_final-as4date iw_e070-as4date.
    iw_final-as4time iw_e070-as4time.
    iw_final-strkorr iw_e070-strkorr.
    READ TABLE it_user_addr INTO iw_user_addr WITH KEY bname iw_e070-as4user.
    IF sy-subrc 0.
      iw_final-name_textc iw_user_addr-name_textc.
    ENDIF.
    READ TABLE it_e07t INTO iw_e07t WITH KEY trkorr iw_e070-trkorr.
    IF sy-subrc 0.
      iw_final-as4text iw_e07t-as4text.
    ENDIF.
    APPEND iw_final TO it_final.
  ENDLOOP.

  IF p_alv 'X'.
    iw_layout-colwidth_optimize 'X'.
    iw_layout-zebra 'X'.

    REFRESH:it_fcat.
    CLEAR:iw_fcat.
    iw_fcat-col_pos 1.
    iw_fcat-fieldname 'TRKORR'.
    iw_fcat-seltext_m 'Request/Task'.
*  iw_fcat-outputlen = '15'.
    iw_fcat-key 'X'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 2.
    iw_fcat-fieldname 'TRSTATUS'.
    iw_fcat-seltext_m 'Status'.
*  iw_fcat-outputlen = '10'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 3.
    iw_fcat-fieldname 'AS4USER'.
    iw_fcat-seltext_m 'Owner'.
*  iw_fcat-outputlen = '15'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 3.
    iw_fcat-fieldname 'NAME_TEXTC'.
    iw_fcat-seltext_m 'Owner Full Name'.
*  iw_fcat-outputlen = '15'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 4.
    iw_fcat-fieldname 'AS4DATE'.
    iw_fcat-seltext_m 'Last Changed On'.
*  iw_fcat-outputlen = '10'.
    iw_fcat-icon 'X'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 5.
    iw_fcat-fieldname 'AS4TIME'.
    iw_fcat-seltext_m 'Last Changed At'.
*  iw_fcat-outputlen = '10'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 6.
    iw_fcat-fieldname 'STRKORR'.
    iw_fcat-seltext_m 'Parent Req'.
*  iw_fcat-outputlen = '10'.
    APPEND iw_fcat TO it_fcat.

    CLEAR:iw_fcat.
    iw_fcat-col_pos 7.
    iw_fcat-fieldname 'AS4TEXT'.
    iw_fcat-seltext_m 'Short Desc.'.
*  iw_fcat-outputlen = '10'.
    APPEND iw_fcat TO it_fcat.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program sy-repid
        is_layout          iw_layout
        it_fieldcat        it_fcat
      TABLES
        t_outtab           it_final
      EXCEPTIONS
        program_error      1
        OTHERS             2.

  ELSE.
    it_header-line 'Requset/Task'.
    APPEND it_header.
    it_header-line 'Status'.
    APPEND it_header.
    it_header-line 'Owner'.
    APPEND it_header.
    it_header-line 'Owner Full Name'.
    APPEND it_header.
    it_header-line 'Last Changed On'.
    APPEND it_header.
    it_header-line 'Last Changed At'.
    APPEND it_header.
    it_header-line 'Parent Req'.
    APPEND it_header.
    it_header-line 'Short Desc'.
    APPEND it_header.

    IF p_file NS '.xls'.
      g_str p_file.
      CONCATENATE g_str g_str1 INTO g_str2.
    ELSE.
      g_str2 p_file.
    ENDIF.

    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename              g_str2
        filetype              'ASC'
        write_field_separator 'X'
      TABLES
        data_tab              it_FINAL
        fieldnames            it_header.

  ENDIF.

Input Screen:


 Output:


 

 

 

 

 

 

 

 

 

 

 

 


Comments

Popular posts from this blog

CDS Views: Table Functions with Example

Passing Dynamic Variables to SO10 TEXT

Adobe Form/PDF Form Introduction