Application Development and Automation 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: 
Read only

excel header output

Former Member
0 Likes
352

hi..

i want to download the output file of my alv report to excel with header

i.e

sales doc no sales org order type net value.......

001467789 1010 zjr 76356.00

the heading that is the names like sales doc sales org.....

here is my report...

&----


*& Report ZJE

*&

&----


*&

*&

&----


REPORT ZJE NO STANDARD PAGE HEADING

LINE-SIZE 425

LINE-COUNT 225

MESSAGE-ID ZZ.

.

*----


TYPE-POOLS: SLIS.

*----


TABLES : VBAK,ZBLRV.

INCLUDE : ZZIDWNLD.

*--


ALV DECLERATION--


DATA: W_CONTAINER TYPE SCRFNAME VALUE 'CL_GRID',

W_CPROG TYPE LVC_S_LAYO,

G_REPID LIKE SY-REPID,

W_SAVE TYPE C,

W_EXIT TYPE C,

CL_GRID TYPE REF TO CL_GUI_ALV_GRID,

CL_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

IT_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV,

WA_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE .

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

DATA : LAYOUT TYPE SLIS_LAYOUT_ALV ,

KK TYPE SLIS_PRINT_ALV ,

T_M TYPE P .

DATA : COL_POS LIKE SY-CUCOL .

DATA : ALVFC TYPE SLIS_T_FIELDCAT_ALV.

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

DATA: BEGIN OF IT_OUTTAB OCCURS 0,

VBELN LIKE VBAK-VBELN, " Sales Document No

VKORG LIKE VBAK-VKORG, " Sales Organisation

AUART LIKE VBAK-AUART, " Order Type

NETWR LIKE VBAK-NETWR, " Net Value

WAERK LIKE VBAK-WAERK, " Currency

FORECAST LIKE TLINE-TDLINE," Forecast ID

END OF IT_OUTTAB.

DATA : BEGIN OF IT_OUTTAB1 OCCURS 0,

REVTC LIKE ZBLRV-REVTC, " Revenue Amount

END OF IT_OUTTAB1.

DATA: T_TLINE LIKE TLINE OCCURS 0 WITH HEADER LINE.

DATA V_OBJECT LIKE THEAD-TDNAME.

DATA : IT_LINE(180) TYPE C.

DATA: L_FLENGTH TYPE I,

V_FILENAME LIKE RLGRAP-FILENAME.

DATA : WA_IT_OUTTAB LIKE IT_OUTTAB.

************SELECTION-SCREEN************************

SELECTION-SCREEN: BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-011.

PARAMETER: SALESORG LIKE VBAK-VKORG.

SELECT-OPTIONS : S_DOC_NO FOR VBAK-VBELN.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) TEXT-100.

PARAMETERS:

P_PERIO1 LIKE T009B-POPER OBLIGATORY,

P_YEAR1 LIKE T009B-BDATJ OBLIGATORY.

SELECTION-SCREEN COMMENT 52(5) TEXT-101.

PARAMETERS:

P_PERIO2 LIKE T009B-POPER OBLIGATORY,

P_YEAR2 LIKE T009B-BDATJ OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK BLK.

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

PARAMETER: PRINT RADIOBUTTON GROUP G1,

DOWNLOAD RADIOBUTTON GROUP G1.

PARAMETERS : FILENAME LIKE RLGRAP-FILENAME

DEFAULT 'C:\TEMP\ZJE.xls'. "Filename "

"FILENAMELIKE RLGRAP-FILENAME

. " File Name

SELECTION-SCREEN END OF BLOCK BLK1.

----


INITIALIZATION. "Logic for "intelligent" defaults

----


----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.

----


  • This function module is used to check the file name used for excel

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = FILENAME

EXCEPTIONS

OTHERS = 1.

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

START-OF-SELECTION.

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

PERFORM FILL_CATALOG1 USING:

'VBELN' 'IT_OUTTAB' 'SALES DOC NO',

'VKORG' 'IT_OUTTAB' 'SALES ORG',

'AUART' 'IT_OUTTAB' 'ORDER TYPE',

'NETWR' 'IT_OUTTAB' 'NETVALUE',

'WAERK' 'IT_OUTTAB' 'CURRENCY',

'FORECAST' 'IT_OUTTAB' 'FORECAST'.

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

*--start of logic to get data.

DATA: START_DATE LIKE SY-DATUM,

END_DATE LIKE SY-DATUM.

*Call the functions to get the first and last dates of the period

*entered in the selection screen

CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'

EXPORTING

I_GJAHR = P_YEAR1

I_PERIV = 'Z1'

I_POPER = P_PERIO1

IMPORTING

E_DATE = START_DATE

EXCEPTIONS

INPUT_FALSE = 1

T009_NOTFOUND = 2

T009B_NOTFOUND = 3

OTHERS = 4.

  • WRITE:/ START_DATE.

CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'

EXPORTING

I_GJAHR = P_YEAR2

I_PERIV = 'Z1'

I_POPER = P_PERIO2

IMPORTING

E_DATE = END_DATE

EXCEPTIONS

INPUT_FALSE = 1

T009_NOTFOUND = 2

T009B_NOTFOUND = 3

OTHERS = 4.

*WRITE:/ END_DATE.

SELECT VKORG VBELN WAERK NETWR AUART FROM VBAK INTO CORRESPONDING

FIELDS OF IT_OUTTAB

WHERE AUART IN ('ZJE' , 'ZJR')

AND

AUDAT BETWEEN START_DATE AND END_DATE

AND VKORG = SALESORG

AND VBELN IN S_DOC_NO.

V_OBJECT = IT_OUTTAB-VBELN.

CALL FUNCTION 'READ_TEXT'

EXPORTING

CLIENT = SY-MANDT

ID = 'Z001'

LANGUAGE = SY-LANGU

NAME = V_OBJECT

OBJECT = 'VBBK'

  • ARCHIVE_HANDLE = 0

  • LOCAL_CAT = ' '

  • IMPORTING

  • HEADER =

TABLES

LINES = T_TLINE

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 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.

ENDIF.

READ TABLE T_TLINE INDEX 1.

IF SY-SUBRC = 0.

IT_OUTTAB-FORECAST = T_TLINE-TDLINE.

ENDIF.

IF VBAK-AUART = 'ZJE'.

IT_OUTTAB-NETWR = IT_OUTTAB1-REVTC.

  • WRITE 😕 IT_OUTTAB-NETWR.

ENDIF.

APPEND IT_OUTTAB TO IT_OUTTAB.

CLEAR: IT_OUTTAB.

ENDSELECT.

*--end of logic to get data.

IF PRINT = 'X'.

PERFORM DISPLAY_OUTPUT.

ENDIF.

IF DOWNLOAD = 'X'.

PERFORM DOWNLOAD_TO_EXCEL.

ENDIF.

&----


*& Form Display_output

&----


  • text

----


FORM DISPLAY_OUTPUT.

G_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND =

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE =

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = IT_FLD_CATALOG

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

  • IT_EVENTS = V_EVENTS

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_OUTTAB.

ENDFORM. "Display_output

*

**&----


**

**& Form download_to_excel

**&----


**

    • text

**----


**

    • --> p1 text

    • <-- p2 text

**----


**

FORM DOWNLOAD_TO_EXCEL .

DATA: PFILE TYPE STRING.

PFILE = FILENAME.

DATA: I_LINE TYPE STANDARD TABLE OF T_ZZIDWNLD_DATA,

I_ELINE TYPE STANDARD TABLE OF T_ZZIDWNLD_DATA,

WA_LINE TYPE T_ZZIDWNLD_DATA.

  • DATA: IT_OUTTAB TYPE T_ZZIDWNLD_DATA OCCURS 0 WITH HEADER LINE,

  • L_FLENGTH TYPE I.

CONSTANTS: C_DELIM TYPE C VALUE

CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

*DATA : IT_LINE TYPE T_ZZIDWNLD_DATA.

*DATA: WA_LINE TYPE T_ZZIDWNLD_DATA.

*

*

  • DATA : VBELN(15) , VKORG(15) , AUART(15) , NETWR(15) , WAERKS,

*

  • FORECAST(15).

*

*

CONCATENATE

'sales doc no'

'sales org'

'order type'

'net value'

'currency'

'forecast id'

INTO WA_LINE

SEPARATED BY C_DELIM.

*

APPEND WA_LINE TO I_LINE.

CLEAR : WA_LINE.

LOOP AT IT_OUTTAB.

CONCATENATE IT_OUTTAB-VBELN

IT_OUTTAB-VKORG

IT_OUTTAB-AUART

IT_OUTTAB-NETWR

IT_OUTTAB-WAERK

IT_OUTTAB-FORECAST

INTO WA_LINE

SEPARATED BY C_DELIM.

APPEND WA_LINE TO I_LINE.

ENDLOOP.

  • PFILE = FILENAME.

  • LOOP AT IT_OUTTAB INTO WA_IT_OUTTAB.

  • VBELN = WA_IT_OUTTAB-VBELN.

  • VKORG = WA_IT_OUTTAB-VKORG.

  • AUART = WA_IT_OUTTAB-AUART.

  • NETWR = WA_IT_OUTTAB-NETWR.

  • WAERKS = WA_IT_OUTTAB-WAERK.

  • FORECAST = WA_IT_OUTTAB-FORECAST.

  • CONCATENATE

  • WA_IT_OUTTAB-VBELN

  • WA_IT_OUTTAB-VKORG

  • WA_IT_OUTTAB-AUART

  • WA_IT_OUTTAB-NETWR

  • WA_IT_OUTTAB-WAERK

  • WA_IT_OUTTAB-FORECAST

  • INTO IT_LINE

  • SEPARATED BY C_DELIM.

  • APPEND IT_LINE.

  • ENDLOOP.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = PFILE

FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = '#'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = I_LINE

  • FIELDNAMES =

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

.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'Transfer Unsuccessful'(001).

ELSE.

MESSAGE S000 WITH 'Transfer Successful'(002).

ENDIF.

*ENDIF.

ENDFORM. "DOWNLOAD_TO_EXCEL

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,

W_HEADER TYPE SLIS_LISTHEADER.

W_HEADER-TYP = 'H'.

W_HEADER-INFO = 'Cadence Design System.Inc'(050).

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'REPORT:'.

W_HEADER-INFO = SY-REPID.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'DATE:'.

CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO

W_HEADER-INFO.

APPEND W_HEADER TO T_HEADER.

CLEAR W_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM. "TOP_OF_PAGE

*&----


*

*& Form fill_catalog1

*&----


*

  • text

*----


*

  • -->P_FIELDNAME text

  • -->P_REF_TABLE text

  • -->P_SCRTEXT text

*----


*

FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY

P_REF_TABLE TYPE ANY

P_SCRTEXT TYPE ANY.

CLEAR : WA_FLD_CATALOG.

WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.

WA_FLD_CATALOG-TABNAME = P_REF_TABLE.

WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.

WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.

WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.

  • wa_fld_catalog-do_sum = 'X'.

APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.

ENDFORM. " fill_catalog1

*================================================

  • END OF THE PROGRAM

*=================================================

but its showing error only for netwr..

(it_outtab-netwr must bge character type data object (data type c,n,d,t or string)..

plz help me out as ita very urgent!!

1 REPLY 1
Read only

naimesh_patel
Active Contributor
0 Likes
308

You need to pass one more internal table to FIELDNAMES in the GUI_DOWNLOAD FM.

YOu can fill it like:



data: begin of it_fld occurs 0,
name type char30,
end of it_fld.


it_fld-name = 'Field1'.
append it_fld.
it_fld-name ='FIeld2'.
append it_fld.


....

CALL FUNCTION 'GUI_DOWNLOAD'
...
tables
FIELDNAMES = it_fld

Regards,

Naimesh Patel