Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 10116

Re: How to convert internal table data into excel format

$
0
0

Hi Sai Ganesha,

 

Try like this

 

Just copy& past in se38 and run and see in SOST....

 

 

 

REPORT  YZIP_MAIL.

 

*--------------------------------------------------------------------*
*        I N T E R N A L   T A B L E   D E C L A R A T I O N         *
*--------------------------------------------------------------------*
DATA : it_ctxt   TYPE TABLE OF solisti1,                  " Internal Table For Character Text Format
        it_pack   TYPE TABLE OF sopcklsti1,                " Internal Table For Packing Data
        lt_att    TYPE TABLE OF solisti1,                  " Internal Table For Character Binary Format
        it_rec    TYPE TABLE OF somlreci1,                 " Internal Table For Receivers List
        it_smr    TYPE swnc_t_statrecs,
        it_data1  TYPE STANDARD TABLE OF sflight.


*--------------------------------------------------------------------*
*            W O R K   A R E A   D E C L A R A T I O N               *
*--------------------------------------------------------------------*
DATA : wa_ctxt          TYPE solisti1,                    " Work Area For Character Text Data
        wa_doc           TYPE sodocchgi1,                  " Work Area For document
        wa_pack          TYPE sopcklsti1,                  " Work Area For Packed Data
        wa_rec           TYPE somlreci1,                   " Work Area For Receiver's Data
        wa_data1         TYPE sflight,
        wa_smr           TYPE swncstatrec.

*--------------------------------------------------------------------*
*                        V A R I A B L E S                           *
*--------------------------------------------------------------------*
DATA : l_string1        TYPE string,
        l_xstring1       TYPE xstring,
        l_zipper         TYPE REF TO cl_abap_zip,
        filename         TYPE string,
        zip              TYPE xstring,
        w_binsize        TYPE i,
        l_count          TYPE swncshcnt.



SELECT * FROM sflight INTO TABLE it_data1 UP TO 10 ROWS.


PERFORM creat_xls_files.

* --- ZIP the file
CREATE OBJECT l_zipper.

* --- Add file to zip

filename = 'Excel.xls'.

CALL METHOD l_zipper->add
   EXPORTING
     name    = filename
     content = l_xstring1.

CLEAR filename.

* ---  Save zip
CALL METHOD l_zipper->save
   RECEIVING
     zip = zip.

* --- Convert Xstring into Binary
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
   EXPORTING
     buffer                = zip
*   APPEND_TO_TABLE       = ' '
* IMPORTING
*   OUTPUT_LENGTH         =
   TABLES
     binary_tab            = lt_att.

IF sy-subrc <> 0.                                           "#EC *
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


*--------------------------------------------------------------------*
*                            SENDING MAILS                           *
*--------------------------------------------------------------------*
* --- for mail body
CONCATENATE sy-mandt 'Excel ZIP Report'(001) INTO wa_ctxt SEPARATED BY space.
APPEND wa_ctxt TO it_ctxt.
CLEAR wa_ctxt.

* --- for mail subject
wa_doc-obj_name     = 'Excel ZIP'.
CONCATENATE sy-mandt 'Excel ZIP' INTO wa_doc-obj_descr SEPARATED BY space.
wa_doc-obj_langu    = 'E'.
wa_doc-sensitivty   = 'O'.                                  "Standard
wa_doc-doc_size     = w_binsize.

* --- for attahed file name
wa_pack-obj_name    = 'Excel ZIP'.
CONCATENATE sy-mandt 'Excel.ZIP' INTO  wa_pack-obj_descr.
wa_pack-transf_bin  = space.
wa_pack-head_start  = 1.
wa_pack-head_num    = 1.
wa_pack-body_start  = 1.
wa_pack-body_num    = LINES( it_ctxt ).
wa_pack-doc_type    = 'RAW'.                                "RAW type Data
APPEND wa_pack TO it_pack.

* --- for attahed file type
wa_pack-doc_size    = w_binsize.
wa_pack-transf_bin  = 'X'.
wa_pack-head_start  = 1.
wa_pack-head_num    = 1.
wa_pack-body_start  = 1.
wa_pack-body_num    = LINES( lt_att ).
wa_pack-doc_type    = 'ZIP'.                                "ZIP Type data
APPEND wa_pack TO it_pack.

* --- for mail recipients


CLEAR wa_rec.
wa_rec-rec_type = 'U'.          " Specification Of Receipient Type - ( To )
wa_rec-com_type = 'INT'.        " Transmission Method (Fax, Telex, ...) - ( Internet)
wa_rec-receiver = 'ramesh@gamil.com'.
APPEND wa_rec TO it_rec.


CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
   EXPORTING
     document_data              = wa_doc
     put_in_outbox              = 'X'
     commit_work                = 'X'
   TABLES
     packing_list               = it_pack
     contents_bin               = lt_att
     contents_txt               = it_ctxt
     receivers                  = it_rec
   EXCEPTIONS
     too_many_receivers         = 1
     document_not_sent          = 2
     document_type_not_exist    = 3
     operation_no_authorization = 4
     parameter_error            = 5
     x_error                    = 6
     enqueue_error              = 7
     OTHERS                     = 8.
IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
   MESSAGE 'Mail has been sent successfully!!!'(002) TYPE 'S'.
ENDIF.
**ENDIF.
*&---------------------------------------------------------------------*
*&      Form  CREAT_XLS_FILES
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM creat_xls_files .
   PERFORM get_xls_file1.
ENDFORM.                    " CREAT_XLS_FILES
*&---------------------------------------------------------------------*
*&      Form  GET_XLS_FILE1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_xls_file1 .
   CLEAR l_string1.
   CONCATENATE ''
              'Airline Code'
              'Flight Connection Number'
              'Flight date'
              'Local currency of airline'
              'Aircraft Type'
               cl_abap_char_utilities=>newline INTO l_string1 SEPARATED BY
               cl_abap_char_utilities=>horizontal_tab.



* --- Internal table to attach

   LOOP AT it_data1 INTO wa_data1.

     CONCATENATE l_string1
                 wa_data1-carrid
                 wa_data1-connid
                 wa_data1-fldate
                 wa_data1-currency
                 wa_data1-planetype
                 cl_abap_char_utilities=>newline INTO l_string1 SEPARATED BY
                 cl_abap_char_utilities=>horizontal_tab.
   ENDLOOP.

* --- Convert internal table into XSTRING
   CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
     EXPORTING
       text           = l_string1
*   MIMETYPE       = ' '
*   ENCODING       =
    IMPORTING
      buffer         = l_xstring1
* EXCEPTIONS
*   FAILED         = 1
*   OTHERS         = 2
   .

ENDFORM.                    " GET_XLS_FILE1

 

This is solution for your question in http://scn.sap.com/thread/3368807


Viewing all articles
Browse latest Browse all 10116

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>