Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

download data to excel sheet

Former Member
0 Kudos

Hi can anyone tell me as to how to download the data to excel sheet along with header.

i have a program that's using ws_download and its downloading fine but iam looking similar tghing with FM gui_download

help me out in this regard

This is my previous code

data : v_repid type syrepid,

d_file type string,

p_file like rlgrap-filename .

concatenate p_file '.xls' into p_file.

d_file = p_file.

call function 'WS_DOWNLOAD'

exporting

  • BIN_FILESIZE = ' '

  • CODEPAGE = ' '

filename = p_file

filetype = 'DBF'

  • mode = ' '

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • COL_SELECT = ' '

  • COL_SELECTMASK = ' '

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

tables

data_tab = it_data

fieldnames = it_header

exceptions

file_open_error = 1

file_write_error = 2

invalid_filesize = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

others = 10

.

if sy-subrc eq 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

i have to replace this FM with gui_download

in the gui_downlaod tell me where i have to pass the header info

Thanks

1 ACCEPTED SOLUTION

ferry_lianto
Active Contributor
0 Kudos

Hi Kajol,

Please check this sample code from other thread.


DATA: BEGIN OF itab1 OCCURS 0,
        f1(10),
      END   OF itab1.
 
itab1-f1 = 'Field 1'.
APPEND itab1.
itab1-f1 = 'Field 2'.
APPEND itab1.
itab1-f1 = 'Field 3'.
APPEND itab1.
itab1-f1 = 'Field 4'.
APPEND itab1.
itab1-f1 = 'Field 5'.
APPEND itab1.
 
CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    filename                = 'C:test.xls'
    filetype                = 'ASC'
    write_field_separator   = 'X'
  TABLES
    data_tab                = itab
    fieldnames              = itab1
  EXCEPTIONS
    file_write_error        = 1
    no_batch                = 2
    gui_refuse_filetransfer = 3
    invalid_type            = 4
    no_authority            = 5
    unknown_error           = 6
    header_not_allowed      = 7
    separator_not_allowed   = 8
    filesize_not_allowed    = 9
    header_too_long         = 10
    dp_error_create         = 11
    dp_error_send           = 12
    dp_error_write          = 13
    unknown_dp_error        = 14
    access_denied           = 15
    dp_out_of_memory        = 16
    disk_full               = 17
    dp_timeout              = 18
    file_not_found          = 19
    dataprovider_exception  = 20
    control_flush_error     = 21
    OTHERS                  = 22.

Regards,

Ferry Lianto

7 REPLIES 7

Former Member
0 Kudos

pass the header to the fieldnames in the tables.

Rewards if helpful

Viky

ferry_lianto
Active Contributor
0 Kudos

Hi Kajol,

Please check this sample code from other thread.


DATA: BEGIN OF itab1 OCCURS 0,
        f1(10),
      END   OF itab1.
 
itab1-f1 = 'Field 1'.
APPEND itab1.
itab1-f1 = 'Field 2'.
APPEND itab1.
itab1-f1 = 'Field 3'.
APPEND itab1.
itab1-f1 = 'Field 4'.
APPEND itab1.
itab1-f1 = 'Field 5'.
APPEND itab1.
 
CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    filename                = 'C:test.xls'
    filetype                = 'ASC'
    write_field_separator   = 'X'
  TABLES
    data_tab                = itab
    fieldnames              = itab1
  EXCEPTIONS
    file_write_error        = 1
    no_batch                = 2
    gui_refuse_filetransfer = 3
    invalid_type            = 4
    no_authority            = 5
    unknown_error           = 6
    header_not_allowed      = 7
    separator_not_allowed   = 8
    filesize_not_allowed    = 9
    header_too_long         = 10
    dp_error_create         = 11
    dp_error_send           = 12
    dp_error_write          = 13
    unknown_dp_error        = 14
    access_denied           = 15
    dp_out_of_memory        = 16
    disk_full               = 17
    dp_timeout              = 18
    file_not_found          = 19
    dataprovider_exception  = 20
    control_flush_error     = 21
    OTHERS                  = 22.

Regards,

Ferry Lianto

0 Kudos

Hi Ferry,

There are 2 problems with this

1) : fieldnames = itab1--this option is not available in gui_download when you call gui_download using pattern you don't see

the option of passing header field

2) it deletes the leading zeros

say if i have 001222 in my table i see 1222 in my excel sheet which is not i want

thanks

0 Kudos

awarded points to all

Former Member
0 Kudos

Hi,

I can show you my code which writes file with .xls suffix, but this file is NOT in .xls format. Excel will open it as expected, but this file contains just text with TAB - separated fields. When I try to open it by OpenOffice, it will be opened by OO Writer, not by OO Calc.

Example:

I want to export this table:


DATA: begin of itab occurs 0,
        date type D,
        number type i,
        description(20) type c,
      end of itab.

Step 1: Create pure text table from your data with structure you want to export and text table to be saved to file



TYPE-POOLS: truxs.

DATA: begin of texttab occurs 0,
        c_date(10) type c,
        c_number(8) type c,
        description(20) type c,
      end of texttab.

DATA:  datafile TYPE truxs_t_text_data.

Step 2: Convert itab values to texttab. See my cool trick with 1st line. Be sure that fields are as long as you need for both data and description.


  clear texttab.
  move 'Date' to texttab-c_date.
  move 'Value' to texttab-c_number.
  move 'Description' to texttab-description.
  append texttab.

  loop at itab.
*   Character fields:
    move-corresponding itab to texttab.
*   Other fields (just example, maybe you need better formating)
    write itab-date to texttab-c_date.
    write itab-number to texttab-number.
  endloop.

Step 3: Convert this table to text with separator TAB


  l_field_separator = cl_abap_char_utilities=>horizontal_tab.
  CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
    EXPORTING
      i_field_seperator          = l_field_separator
      i_line_header              = space
    TABLES
      i_tab_sap_data             = texttab
    CHANGING
      i_tab_converted_data       = datafile
    EXCEPTIONS
      OTHERS                     = 0.

Step 4: Well, what to do now? Download text file


  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename                        = g_filename
    TABLES
      data_tab                        = gt_file
     EXCEPTIONS
        .... 

Nothing more. It works fine for me. Write missing DATA declaration please. I think that it will help you.

Pavel

Former Member
0 Kudos

hi,

For that,

declare one more variable

DATA : FILENAME TYPE STRING.

filename = myrlgrap. (<--- ur previous variable of type rlfgrap-filename)

then pass this new variable in GUI_DOWNLOAD

2. For HEADINGS, use like this

Just copy paste

3.

report abc.

*----


data : itab like table of t001 with header line.

*----


select * from t001 into table itab.

perform mydownload tables itab using 'D:\t001.txt'.

*----


  • INDEPENDENT FORM

*----


form mydownload tables ptab using filename.

*----


DAta

DATA : components LIKE rstrucinfo OCCURS 0 WITH HEADER LINE.

DATA : allfields(300) TYPE c.

DATA : fld(100) TYPE c.

data : begin of htab occurs 0,

allfields(300) type c,

end of htab.

*----


Get component list

CALL FUNCTION 'GET_COMPONENT_LIST'

EXPORTING

program = sy-repid

fieldname = 'ITAB'

TABLES

components = components.

*----


construct

LOOP AT components.

CONCATENATE components-compname

CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO fld.

CONCATENATE allfields fld INTO allfields .

ENDLOOP.

htab-allfields = allfields.

append htab.

*----


download first field list

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = 'D:\t001.txt'

WRITE_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = htab

.

*----


then download file data

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = filename

APPEND = 'X'

WRITE_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = ptab

.

endform.

regards,

amit m.

sunilkumar sank...

Posts: 166

Questions: 4

Registered: 11/14/05

Forum points: 138

Re: how can i bring the column heading downloaded in excel sheet?

Posted: Oct 25, 2006 10:25 AM in response to: PRR R Reply E-mail this post

HI,

Go thru this code.

REPORT ZRMM0056 NO STANDARD PAGE HEADING

MESSAGE-ID ZZ

LINE-SIZE 300

LINE-COUNT 65.

************************************************************************

  • Program : ZRMM0056

  • Title : Non Inventory PO's

  • Description : Non Inventory Purchase Orders details with

  • Vendor and Invoice Receipts and Goods Receipts.

  • Input :

  • Select-options : 1. G/L Account No

*

  • Parameters : 1.File Paths for the Excel sheet

*

  • Others (Specify):

  • Output : Extract Files in the application server

  • Report :

*

  • Hear Ticket # : 113392

  • Created by : Srinivas Rao.M

  • Created on : 12/15/2005

  • Version : 1

  • Request : D10K944304

  • Transaction Code : Z420

************************************************************************

  • Change History *

  • Date Programmer Search String Description *

************************************************************************

  • 12/19/2005 Srinivas D10K944316 Removed Purchasing document

  • Company code and Plant from

  • Select-Options and Inculded

  • G/L Account No and changed

  • code accordingly.

************************************************************************

  • T A B L E S *

************************************************************************

TABLES: EKBE, " History of Purchasing Document

EKPO, " Purchasing Document Item

EKKO, " Purchasing Document Header

LFA1, " Vendor master (general section)

EKKN. " Account Assignment in Purchasing Doc

************************************************************************

  • INTERNAL TABLES

************************************************************************

*--Internal table to store Purchasing document header data

DATA : BEGIN OF IT_POHEADER OCCURS 0,

EBELN LIKE EKKO-EBELN, "Purchasing document

AEDAT LIKE EKKO-AEDAT, "Created on

ERNAM LIKE EKKO-ERNAM, "Created by

LIFNR LIKE EKKO-LIFNR, "Vendor

END OF IT_POHEADER.

*--Internal table to store Purchasing document Item data

DATA : BEGIN OF IT_POITEM OCCURS 0,

EBELN LIKE EKPO-EBELN, "Purchasing document

EBELP LIKE EKPO-EBELP, "Item Number

MATNR LIKE EKPO-MATNR, "Material number

BUKRS LIKE EKPO-BUKRS, "Company code

WERKS LIKE EKPO-WERKS, "Plant

MATKL LIKE EKPO-MATKL, "Material Group

MENGE LIKE EKPO-MENGE, "Order Quantity

NETPR LIKE EKPO-NETPR, "Net Price

PEINH LIKE EKPO-PEINH, "Price unit

NETWR LIKE EKPO-NETWR, "Net Value

END OF IT_POITEM.

*--Internal table to hold final display data.

DATA : BEGIN OF IT_FINAL OCCURS 0,

EBELN LIKE EKKO-EBELN, "Purchasing document

EBELP LIKE EKPO-EBELP, "Item Number

AEDAT LIKE EKKO-AEDAT, "Created on

ERNAM LIKE EKKO-ERNAM, "Created by

MATNR LIKE EKPO-MATNR, "Material number

BUKRS LIKE EKPO-BUKRS, "Company code

WERKS LIKE EKPO-WERKS, "Plant

MATKL LIKE EKPO-MATKL, "Material Group

MENGE LIKE EKPO-MENGE, "Order Quantity

NETPR LIKE EKPO-NETPR, "Net Price

PEINH LIKE EKPO-PEINH, "Price unit

NETWR LIKE EKPO-NETWR, "Net Value

LIFNR LIKE EKKO-LIFNR, "Vendor

NAME1 LIKE LFA1-NAME1, "Vendor Name

GSBER LIKE EKKN-GSBER, "Business area

*--IR details

IR_BELNR LIKE EKBE-BELNR, "IR-Number of Material Document

IR_BUZEI LIKE EKBE-BUZEI, "IR-Item in material Document

IR_BUDAT LIKE EKBE-BUDAT, "IR-Posting date

IR_MENGE LIKE EKBE-MENGE, "IR-Quantity

*--GR details

GR_BELNR LIKE EKBE-BELNR, "GR-Number of Material Document

GR_BUZEI LIKE EKBE-BUZEI, "GR-Item in material Document

GR_BUDAT LIKE EKBE-BUDAT, "GR-Posting date

GR_MENGE LIKE EKBE-MENGE, "GR-Quantity

END OF IT_FINAL.

*--Internal table to store History per Purchasing Document data

DATA : BEGIN OF IT_HISTORY OCCURS 0,

EBELN LIKE EKBE-EBELN, "Purchasing document

EBELP LIKE EKBE-EBELP, "Item

VGABE LIKE EKBE-VGABE, "Trans/Event type

BELNR LIKE EKBE-BELNR, "Number of Material Document

BUZEI LIKE EKBE-BUZEI, "Item in material Document

BUDAT LIKE EKBE-BUDAT, "Posting date

MENGE LIKE EKBE-MENGE, "Quantity

BEWTP LIKE EKBE-BEWTP, "Posting history category

END OF IT_HISTORY.

*--Internal table to store vendor name.

DATA : BEGIN OF IT_VENDOR OCCURS 0,

LIFNR LIKE LFA1-LIFNR, "Vendor Number

NAME1 LIKE LFA1-NAME1, "Vendor Name

END OF IT_VENDOR.

*--Internal table to store Business area for Purchasing document

DATA : BEGIN OF IT_BUSINESS OCCURS 0,

EBELN LIKE EKKN-EBELN, "Purchasing document

EBELP LIKE EKKN-EBELP, "Purchasing Item

SAKTO LIKE EKKN-SAKTO, "G/L Account No

GSBER LIKE EKKN-GSBER, "Business area

END OF IT_BUSINESS.

DATA : BEGIN OF FIELDNAMES OCCURS 0,

TEXT(40),

END OF FIELDNAMES.

************************************************************************

  • VARIABLES DECLARATION *

************************************************************************

DATA: V_FILE LIKE IBIPPARMS-PATH, "File path

V_FLD LIKE DYNPREAD-FIELDNAME, "Dynpread fieldname

V_FLAG(1) VALUE SPACE. "FLAG VARIABLE

************************************************************************

  • SELECTION-SCREEN *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK S1 WITH FRAME TITLE TEXT-001.

*--Begin of change D10K944316

SELECT-OPTIONS : S_SAKTO FOR EKKN-SAKTO. "G/L Accoun no.

*--End of change D10K944316

SELECTION-SCREEN END OF BLOCK S1.

SELECTION-SCREEN BEGIN OF BLOCK S2 WITH FRAME TITLE TEXT-002.

PARAMETERS : P_EXCEL AS CHECKBOX DEFAULT ' ' . " download to excel

PARAMETERS : C_FILE(128) DEFAULT : 'C:\ZRMM0056.xls'.

SELECTION-SCREEN END OF BLOCK S2.

************************************************************************

  • A T S E L E C T I O N - S C R E E N *

************************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR C_FILE.

*-Form to get file path for download of data

PERFORM GET_FILE_PATH.

AT SELECTION-SCREEN.

PERFORM SCREEN_VALIDATIONS.

************************************************************************

  • START-OF-SELECTION

************************************************************************

START-OF-SELECTION.

*--Extract Purchasing document header data.

PERFORM GET_PO_HEADER_DATA.

*--Extract Purchasing document Item data.

IF NOT IT_BUSINESS[] IS INITIAL.

PERFORM GET_PO_ITEM_DATA.

*--Get complete required data in final internal table

PERFORM GET_FINAL_DATA.

ENDIF.

************************************************************************

  • END-OF-SELECTION

************************************************************************

END-OF-SELECTION.

IF V_FLAG IS INITIAL.

*--Display Purchasing document details

IF NOT IT_FINAL[] IS INITIAL.

PERFORM DISPLAY_PODATA.

IF P_EXCEL = 'X'.

*--To down load data to excel sheet

PERFORM DOWN_LOAD_TO_EXCEL.

ENDIF.

ENDIF.

ELSE.

MESSAGE I001(ZZ) WITH 'No data found'(003).

ENDIF.

************************************************************************

  • TOP-OF-PAGE

************************************************************************

TOP-OF-PAGE.

*--To display page header

PERFORM PAGE_HEADER.

&----


*& Form GET_PO_HEADER_DATA

&----


  • To Get Purchasing header data

----


FORM GET_PO_HEADER_DATA .

*--To extract Business Area details

CLEAR IT_BUSINESS.

REFRESH IT_BUSINESS.

SELECT EBELN "Purchasing document

EBELP "Purchasing document item

SAKTO "G/L Account no

GSBER "Business area

FROM EKKN

INTO TABLE IT_BUSINESS

WHERE SAKTO IN S_SAKTO.

IF SY-SUBRC <> 0.

V_FLAG = 'X'.

MESSAGE I001(ZZ) WITH

'No data selected for the given selection criteria'(004).

STOP.

ELSE.

*--To extract Purchasing document details with respect

  • to G/L Account no

CLEAR IT_POHEADER.

REFRESH IT_POHEADER.

SELECT EBELN "Purchasing document

AEDAT "Created on

ERNAM "Created by

LIFNR "Vendor

FROM EKKO

INTO TABLE IT_POHEADER

FOR ALL ENTRIES IN IT_BUSINESS

WHERE EBELN = IT_BUSINESS-EBELN.

IF NOT IT_POHEADER[] IS INITIAL.

CLEAR IT_VENDOR.

REFRESH IT_VENDOR.

*--Extracting Vendor details

SELECT LIFNR "Vendor #

NAME1 "Name

FROM LFA1

INTO TABLE IT_VENDOR

FOR ALL ENTRIES IN IT_POHEADER

WHERE LIFNR = IT_POHEADER-LIFNR.

ENDIF.

ENDIF.

ENDFORM. " GET_PO_HEADER_DATA

&----


*& Form GET_PO_ITEM_DATA

&----


  • To extract Purchasing document item data

----


FORM GET_PO_ITEM_DATA .

CLEAR IT_POITEM.

REFRESH IT_POITEM.

SELECT EBELN "Purchasing document

EBELP "Item Number

MATNR "Material number

BUKRS "Company code

WERKS "Plant

MATKL "Material Group

MENGE "Order Quantity

NETPR "Net Price

PEINH "Price unit

NETWR "Net Value

FROM EKPO

INTO TABLE IT_POITEM

FOR ALL ENTRIES IN IT_BUSINESS

WHERE EBELN = IT_BUSINESS-EBELN

AND EBELP = IT_BUSINESS-EBELP.

IF NOT IT_POITEM[] IS INITIAL.

CLEAR IT_HISTORY.

REFRESH IT_HISTORY.

SELECT EBELN "Purchasing document

EBELP "Item

VGABE "Trans/Event type

BELNR "Number of Material Document

BUZEI "Item in material Document

BUDAT "Posting date

MENGE "Quantity

BEWTP "Posting history category

FROM EKBE

INTO TABLE IT_HISTORY

FOR ALL ENTRIES IN IT_POITEM

WHERE EBELN = IT_POITEM-EBELN

AND EBELP = IT_POITEM-EBELP

AND ( VGABE = '1' OR VGABE = '2' ) "1 = GR , 2 = IR

AND ( BEWTP = 'Q' OR BEWTP = 'E' ). "Q = GR , R = IR

IF SY-SUBRC = 0.

SORT IT_HISTORY BY EBELN EBELP.

ENDIF.

ENDIF.

ENDFORM. " GET_PO_ITEM_DATA

&----


*& Form GET_FILE_PATH

&----


  • Select file path

----


FORM GET_FILE_PATH .

CLEAR V_FILE.

MOVE 'p_flname' TO V_FLD.

MOVE C_FILE TO V_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = V_FLD

IMPORTING

FILE_NAME = V_FILE

EXCEPTIONS

OTHERS = 1.

MOVE V_FILE TO C_FILE.

ENDFORM. " GET_FILE_PATH

&----


*& Form PAGE_HEADER

&----


  • To Print page header and other details

----


FORM PAGE_HEADER .

*--Page Header

ULINE AT /1(300).

FORMAT COLOR 1.

WRITE:/ 'Run Date:'(005), SY-DATUM, 45 'Stanley Works'(006),

100 'Page No:'(007), SY-PAGNO LEFT-JUSTIFIED, 298 ''.

WRITE:/ 'Run Time:'(008), SY-UZEIT, 43 SY-TITLE, 100 SY-UNAME, 298 ''.

WRITE:/ 'Source :'(009), SY-SYSID, 100 SY-CPROG, 298 ''.

FORMAT COLOR OFF.

ULINE AT /1(300).

FORMAT COLOR 4.

WRITE : / SY-VLINE , (10) 'Purchasing Doc'(010),

SY-VLINE, (5) 'Item'(011),

SY-VLINE, (10) 'Created On'(012),

SY-VLINE, (7) 'Crea By'(013),

SY-VLINE, (10) 'Material'(014),

SY-VLINE, (6) 'Com cd'(015),

SY-VLINE, (5) 'Plant'(016),

SY-VLINE, (10) 'Mat Group'(017),

SY-VLINE, (13) 'Order Qty'(018),

SY-VLINE, (11) 'Net Price'(019),

SY-VLINE, (10) 'Price Unit'(020),

SY-VLINE, (13) 'Net Value'(021),

SY-VLINE, (8) 'Bus Area'(022),

SY-VLINE, (10) 'Vendor'(023),

SY-VLINE, (28) 'Vendor Name'(024),

*--IR details

SY-VLINE, (10) 'IR-Mat Doc'(025),

SY-VLINE, (5) 'IR-It'(026),

SY-VLINE, (9) 'IR-Post dt'(027),

SY-VLINE, (13) 'IR-Quantity'(028),

*--GR details

SY-VLINE, (10) 'GR-Mat Doc'(029),

SY-VLINE, (5) 'GR-It'(030),

SY-VLINE, (9) 'GR-Post dt'(031),

SY-VLINE, (13) 'GR-Quantity'(032), SY-VLINE.

FORMAT COLOR OFF.

ULINE AT /1(300).

ENDFORM. " PAGE_HEADER

&----


*& Form SCREEN_VALIDATIONS

&----


  • Selection screen validations

----


FORM SCREEN_VALIDATIONS .

*--Validation for G/L Account No

IF NOT S_SAKTO IS INITIAL.

SELECT SAKNR UP TO 1 ROWS

INTO EKKN-SAKTO

FROM SKA1 WHERE

SAKNR IN S_SAKTO.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ) with 'Please enter a valid G/L Account no'(048).

ENDIF.

ENDIF.

*--Validation for Excel file path

IF P_EXCEL = 'X'.

IF C_FILE = ' '.

MESSAGE E001(ZZ) with 'Please enter a valid Excle Path'(035).

ENDIF.

ENDIF.

ENDFORM. " SCREEN_VALIDATIONS

&----


*& Form DISPLAY_PODATA

&----


  • To Display Purchasing Document details

----


FORM DISPLAY_PODATA .

FORMAT COLOR 2.

SORT IT_FINAL BY EBELN EBELP AEDAT BUKRS WERKS.

LOOP AT IT_FINAL.

WRITE : / SY-VLINE ,(10) IT_FINAL-EBELN, "Purchasing Doc

SY-VLINE, (5) IT_FINAL-EBELP, "Item

SY-VLINE, (10) IT_FINAL-AEDAT, "Created On

SY-VLINE, (7) IT_FINAL-ERNAM, "Created By

SY-VLINE, (10) IT_FINAL-MATNR, "Material

SY-VLINE, (6) IT_FINAL-BUKRS, "Company code

SY-VLINE, (5) IT_FINAL-WERKS, "Plant

SY-VLINE, (10) IT_FINAL-MATKL, "Material Group

SY-VLINE, (13) IT_FINAL-MENGE, "#EC UOM_IN_MES

"Order Qty

SY-VLINE, (11) IT_FINAL-NETPR, "#EC UOM_IN_MES

"Net Price

SY-VLINE, (10) IT_FINAL-PEINH, "#EC UOM_IN_MES

"Price Unit

SY-VLINE, (13) IT_FINAL-NETWR, "#EC UOM_IN_MES

"Net Value

SY-VLINE, (8) IT_FINAL-GSBER, "Bus Area

SY-VLINE, (10) IT_FINAL-LIFNR, "Vendor

SY-VLINE, (28) IT_FINAL-NAME1, "Vendor name

*--IR details

SY-VLINE, (10) IT_FINAL-IR_BELNR, "IR-Mat Doc

SY-VLINE, (5) IT_FINAL-IR_BUZEI, "IR-It

SY-VLINE, (9) IT_FINAL-IR_BUDAT, "IR-Post dt

SY-VLINE, (13) IT_FINAL-IR_MENGE, "#EC UOM_IN_MES

"IR-Quantity

*--GR details

SY-VLINE, (10) IT_FINAL-GR_BELNR, "GR-Mat Doc

SY-VLINE, (5) IT_FINAL-GR_BUZEI, "GR-It

SY-VLINE, (9) IT_FINAL-GR_BUDAT, "GR-Post dt

SY-VLINE, (13) IT_FINAL-GR_MENGE, SY-VLINE.

"#EC UOM_IN_MES

"GR-Quantity

ENDLOOP.

FORMAT COLOR OFF.

ENDFORM. " DISPLAY_PODATA

&----


*& Form DOWN_LOAD_TO_EXCEL

&----


  • text

----


FORM DOWN_LOAD_TO_EXCEL .

REFRESH FIELDNAMES.

FIELDNAMES-TEXT = TEXT-010.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-011.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-012.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'Created By'(036).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-014.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'Company Code'(037).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-016.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'Material Group'(038).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'Order Quantity'(039).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-019.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-020.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-021.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'Business Area'(040).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-023.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-024.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'IR Material Doc'(041).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'IR Item'(042).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'IR Posting Date'(043).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-028.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'GR Material Doc'(044).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'GR Item'(045).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = 'GR Posting Date'(046).

APPEND FIELDNAMES.CLEAR FIELDNAMES.

FIELDNAMES-TEXT = TEXT-032.

APPEND FIELDNAMES.CLEAR FIELDNAMES.

*--FM to download data to Excel sheet

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = C_FILE

FILETYPE = 'DAT'

TABLES

DATA_TAB = IT_FINAL

FIELDNAMES = FIELDNAMES

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

GUI_REFUSE_FILETRANSFER = 8

OTHERS = 9.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ) WITH 'Data could not downloaded'(047).

ENDIF.ENDFORM. " DOWN_LOAD_TO_EXCEL

&----


*& Form GET_FINAL_DATA

&----


  • To Populate required data in final internal table

----


FORM GET_FINAL_DATA .

CLEAR IT_FINAL.

REFRESH IT_FINAL.

LOOP AT IT_POITEM.

CLEAR IT_POHEADER.

READ TABLE IT_POHEADER WITH KEY EBELN = IT_POITEM-EBELN.

IF SY-SUBRC = 0.

MOVE : IT_POHEADER-EBELN TO IT_FINAL-EBELN, "Purchasing Doc

IT_POITEM-EBELP TO IT_FINAL-EBELP, "Item

IT_POHEADER-AEDAT TO IT_FINAL-AEDAT, "Created On

IT_POHEADER-ERNAM TO IT_FINAL-ERNAM, "Created By

IT_POITEM-MATNR TO IT_FINAL-MATNR, "Material

IT_POITEM-BUKRS TO IT_FINAL-BUKRS, "Company code

IT_POITEM-WERKS TO IT_FINAL-WERKS, "Plant

IT_POITEM-MATKL TO IT_FINAL-MATKL, "Material Group

IT_POITEM-MENGE TO IT_FINAL-MENGE, "Order Qty

IT_POITEM-NETPR TO IT_FINAL-NETPR, "Net Price

IT_POITEM-PEINH TO IT_FINAL-PEINH, "Price Unit

IT_POITEM-NETWR TO IT_FINAL-NETWR, "Net Value

IT_POHEADER-LIFNR TO IT_FINAL-LIFNR. "Vendor

*--To Insert IR details

CLEAR IT_HISTORY.

READ TABLE IT_HISTORY WITH KEY EBELN = IT_POITEM-EBELN

EBELP = IT_POITEM-EBELP

VGABE = '2'

BEWTP = 'Q'.

IF SY-SUBRC = 0.

MOVE :

IT_HISTORY-BELNR TO IT_FINAL-IR_BELNR, "IR-Number of Mat Doc

IT_HISTORY-BUZEI TO IT_FINAL-IR_BUZEI, "IR-Item in mat Doc

IT_HISTORY-BUDAT TO IT_FINAL-IR_BUDAT, "IR-Posting date

IT_HISTORY-BUDAT TO IT_FINAL-IR_MENGE. "IR-Quantity

ENDIF.

*--To insert GR details

CLEAR IT_HISTORY.

READ TABLE IT_HISTORY WITH KEY EBELN = IT_POITEM-EBELN

EBELP = IT_POITEM-EBELP

VGABE = '1'

BEWTP = 'E'.

IF SY-SUBRC = 0.

MOVE :

IT_HISTORY-BELNR TO IT_FINAL-GR_BELNR, "IR-Number of Mat Doc

IT_HISTORY-BUZEI TO IT_FINAL-GR_BUZEI, "IR-Item in mat Doc

IT_HISTORY-BUDAT TO IT_FINAL-GR_BUDAT, "IR-Posting date

IT_HISTORY-BUDAT TO IT_FINAL-GR_MENGE. "IR-Quantity

ENDIF.

*--To insert Vendor details

CLEAR IT_VENDOR.

READ TABLE IT_VENDOR WITH KEY LIFNR = IT_POHEADER-LIFNR.

IF SY-SUBRC = 0.

MOVE : IT_VENDOR-NAME1 TO IT_FINAL-NAME1.

ENDIF.

*--To insert Business area

CLEAR IT_BUSINESS.

READ TABLE IT_BUSINESS WITH KEY EBELN = IT_POITEM-EBELN

EBELP = IT_POITEM-EBELP.

IF SY-SUBRC = 0.

MOVE : IT_BUSINESS-GSBER TO IT_FINAL-GSBER.

ENDIF.

APPEND IT_FINAL.

CLEAR IT_FINAL.

ENDIF.

ENDLOOP.

ENDFORM. " GET_FINAL_DATA