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: 

Heading for excel sheet

Former Member
0 Kudos

Hi everyone,

I am downloading an internal table into an excel sheet using function module using GUI_DOWNLOAD . Now i need to have a heading line in the excel sheet. How should i do this? I kindly request you to help me in this issue. Thanks in advance.

1 ACCEPTED SOLUTION

former_member705122
Active Contributor
0 Kudos

Hi,

Check this sample code:

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
*   BIN_FILESIZE                    = BIN_FILESIZE
    filename  = 'C:Documents and Settings	estDesktop	est5.xls'
   FILETYPE                        = 'DAT'
*   APPEND                         = 'X'
   WRITE_FIELD_SEPARATOR           = 'X'
  TABLES
    data_tab                       = t_sflight
   FIELDNAMES                      = t_header.

For more info check this link:

Regards

Adil

25 REPLIES 25

Former Member
0 Kudos

Have u tried the HEADER parameter in import section.

It may help.

0 Kudos

If i try the header parameter. with some value like HEADER = 'SALES ORDER' it is giving type mismatch error. If this is not the right way then how should i use this header parameter to give one line of heading in my output excel sheet.

Former Member
0 Kudos

hi,

in function module:

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = p_file

FILETYPE = 'ASC'

WRITE_FIELD_SEPARATOR = 'X'

tables

data_tab = IT_FINAL[]

FIELDNAMES = F1

use this. In F1 you need to give:

MOVE 'INVOICE' TO f1-f1. APPEND f1. CLEAR f1.

MOVE 'Payment Terms' TO f1-f1. APPEND f1. CLEAR f1.

MOVE 'Invoice Date' TO f1-f1. APPEND f1. CLEAR f1.

MOVE 'Inv Amount' TO f1-f1. APPEND f1. CLEAR f1.

MOVE 'paydue1' TO f1-f1. APPEND f1. CLEAR f1.

MOVE 'Doc cleared' TO f1-f1. APPEND f1. CLEAR f1.

write such berfore the function module.

DATA: BEGIN OF f1 OCCURS 0,

f1(10) TYPE c,

END OF f1.

this sholud be your definition.

0 Kudos

When i try this code and execute. It says that GUI_DOWNLOAD is not having a parameter called FIELDNAMES. So how should i proceed.

0 Kudos

Mhmd,

0 Kudos

i think you need to decomment it.

post the function module what you have written.

0 Kudos

hi i am attaching the function module

call function 'GUI_DOWNLOAD'

exporting

  • CHECK_FILE_EXIST = 'X'

DEFAULT_FILE_NAME = 'product.csv'

initial_directory = 'D:\'

  • BIN_FILESIZE =

FILETYPE = 'ASC'

  • APPEND = 'X'

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = ''

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = 'X'

  • REPLACEMENT = '#'

IMPORTING

  • RETURNCODE =

  • FILELENGTH =

FULLPATH = filename

tables

data_tab = i_final

FIELDNAMES = F1

.

0 Kudos

can you not use SAP functionality?

list>export>spreed sheet.

0 Kudos

hi,

just check the table name you have not given brackets.

correct it.

0 Kudos

i hav eused in 4.7 only and its working fine.

so check it.

0 Kudos

Hi poonam,

Thank you very much. But when i call the function GUI_DOWNLOAD it is not having a parameter called FIELDNAMES.

0 Kudos

hi,

please check this:

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = 'D:\Documents and settings\p.dattatraya.naik\Desktop\FILE.xls'

  • FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • 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 = ' '

  • WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

  • SHOW_TRANSFER_STATUS = ABAP_TRUE

  • IMPORTING

  • FILELENGTH =

tables

data_tab = IT_FINAL[]

FIELDNAMES = F1

  • 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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

i am usibg 4.7 only.

former_member705122
Active Contributor
0 Kudos

Hi,

Check this sample code:

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
*   BIN_FILESIZE                    = BIN_FILESIZE
    filename  = 'C:Documents and Settings	estDesktop	est5.xls'
   FILETYPE                        = 'DAT'
*   APPEND                         = 'X'
   WRITE_FIELD_SEPARATOR           = 'X'
  TABLES
    data_tab                       = t_sflight
   FIELDNAMES                      = t_header.

For more info check this link:

Regards

Adil

0 Kudos

If i try the above code it is saying the parameter FIELDNAMES is not expected. What should I do?

0 Kudos

Hi,

Refer to the sample program which is there in link what i send you.

Run that program and check.

Regards

Adil

Former Member
0 Kudos

hiii

pass following FM

TYPES:
  BEGIN OF type_final1,
    string(50) TYPE c,                 " String Value for Title
  END OF type_final1.

data:

wa_final   TYPE type_final.       " Work Area to hold Title Data
*"--------------------------------------------------------------------*
* Internal table to hold Title Data                                   *
*"--------------------------------------------------------------------*
DATA:
  i_final    TYPE STANDARD TABLE OF type_final.              "#EC NEEDED 


*&--------------------------------------------------------------------*
*&      Form  header
*---------------------------------------------------------------------*
*  This Subroutine gets data for displaying title                     *
*---------------------------------------------------------------------*
*  There are no interface parameters to be passed to this subroutine. *
*---------------------------------------------------------------------*
FORM header .
  wa_final-string = text-021.
  APPEND wa_final TO i_final.
  wa_final-string = text-022.
  APPEND wa_final TO i_final.
  wa_final-string = text-023.
  APPEND wa_final TO i_final.
  wa_final-string = text-024.
  APPEND wa_final TO i_final.
  wa_final-string = text-025.
  APPEND wa_final TO i_final.
  wa_final-string = text-026.
  APPEND wa_final TO i_final.

ENDFORM.                               " header

CALL FUNCTION 'GUI_DOWNLOAD'


    EXPORTING
*   BIN_FILESIZE                    = BIN_FILESIZE
      filename                        = lw_file
      filetype                        = 'DBF'
*   APPEND                          = ' '
   write_field_separator           = 'X'
*   HEADER                          = '00'
*   TRUNC_TRAILING_BLANKS           = 'X'
*   WRITE_LF                        = 'X'
*   COL_SELECT                      = 'X'
*   COL_SELECT_MASK                 = p_col_sel
*   DAT_MODE                        = ' '
*   CONFIRM_OVERWRITE               = ' '
*   NO_AUTH_CHECK                   = ' '
*   CODEPAGE                        = ' '
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = '#'
*   WRITE_BOM                       = ' '
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'
*   WK1_N_FORMAT                    = '0'
*   WK1_N_SIZE                      = ' '
*   WK1_T_FORMAT                    = ' '
*   WK1_T_SIZE                      = ' '
* IMPORTING
*   FILELENGTH                      = FILELENGTH
    TABLES
      data_tab                        = i_output
      fieldnames                      = i_final
    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
            .

regards

twinkal

0 Kudos

hi,

TYPES:

BEGIN OF type_final1,

string(50) TYPE c, " String Value for Title

END OF type_final1.

this is wat u have defined.

but check the code u r writing it as type_final and not type_final1.

0 Kudos

hii poonam,

thanks for telling me that mistake..actually i have to download data in 5 different files with header so i used that..but paste code here only for 1 file so did that mistake as it was to be understood..but thanks.

TYPES:
  BEGIN OF type_final,
    string(50) TYPE c,                 " String Value for Title
  END OF type_final.
 
data:
 
wa_final   TYPE type_final.       " Work Area to hold Title Data
*"--------------------------------------------------------------------*
* Internal table to hold Title Data                                   *
*"--------------------------------------------------------------------*
DATA:
  i_final    TYPE STANDARD TABLE OF type_final.              "#EC NEEDED 
 
 
*&--------------------------------------------------------------------*
*&      Form  header
*---------------------------------------------------------------------*
*  This Subroutine gets data for displaying title                     *
*---------------------------------------------------------------------*
*  There are no interface parameters to be passed to this subroutine. *
*---------------------------------------------------------------------*
FORM header .
  wa_final-string = text-021.
  APPEND wa_final TO i_final.
  wa_final-string = text-022.
  APPEND wa_final TO i_final.
  wa_final-string = text-023.
  APPEND wa_final TO i_final.
  wa_final-string = text-024.
  APPEND wa_final TO i_final.
  wa_final-string = text-025.
  APPEND wa_final TO i_final.
  wa_final-string = text-026.
  APPEND wa_final TO i_final.
 
ENDFORM.                               " header
 
CALL FUNCTION 'GUI_DOWNLOAD'
 
 
    EXPORTING
*   BIN_FILESIZE                    = BIN_FILESIZE
      filename                        = lw_file
      filetype                        = 'DBF'
*   APPEND                          = ' '
   write_field_separator           = 'X'
*   HEADER                          = '00'
*   TRUNC_TRAILING_BLANKS           = 'X'
*   WRITE_LF                        = 'X'
*   COL_SELECT                      = 'X'
*   COL_SELECT_MASK                 = p_col_sel
*   DAT_MODE                        = ' '
*   CONFIRM_OVERWRITE               = ' '
*   NO_AUTH_CHECK                   = ' '
*   CODEPAGE                        = ' '
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = '#'
*   WRITE_BOM                       = ' '
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'
*   WK1_N_FORMAT                    = '0'
*   WK1_N_SIZE                      = ' '
*   WK1_T_FORMAT                    = ' '
*   WK1_T_SIZE                      = ' '
* IMPORTING
*   FILELENGTH                      = FILELENGTH
    TABLES
      data_tab                        = i_output
      fieldnames                      = i_final
    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
            .

regards

twinkal

0 Kudos

I am using the following FM. When i compile it says parameter FIELDNAMES is not defined.what should be done?

call function 'GUI_DOWNLOAD'

exporting

CHECK_FILE_EXIST = 'X'

DEFAULT_FILE_NAME = 'product.csv'

initial_directory = 'D:\'

BIN_FILESIZE =

FILETYPE = 'ASC'

APPEND = 'X'

WRITE_FIELD_SEPARATOR = 'X'

HEADER = ''

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = 'X'

REPLACEMENT = '#'

IMPORTING

RETURNCODE =

FILELENGTH =

FULLPATH = filename

tables

data_tab = i_final

FIELDNAMES = F1

0 Kudos

I am using the following FM. When i compile it says parameter FIELDNAMES is not defined.what should be done?

reposting with comments which was not present in the previous post.

call function 'GUI_DOWNLOAD'

exporting

  • CHECK_FILE_EXIST = 'X'

DEFAULT_FILE_NAME = 'product.csv'

initial_directory = 'D:\'

  • BIN_FILESIZE =

FILETYPE = 'ASC'

  • APPEND = 'X'

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = ''

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = 'X'

  • REPLACEMENT = '#'

IMPORTING

  • RETURNCODE =

  • FILELENGTH =

FULLPATH = filename

tables

data_tab = i_final

FIELDNAMES = F1

.

former_member705122
Active Contributor
0 Kudos

Hi Aslam,

Check this code and change according to your requirement.

TABLES: sflight.
DATA:
  BEGIN OF t_sflight OCCURS 0,
    carrid    TYPE sflight-carrid,
    connid    TYPE SFLIGHT-CONNID ,
    seatsmax  TYPE sflight-seatsmax,
    seatsocc  TYPE sflight-seatsocc,
  END OF t_sflight.

DATA:
  BEGIN OF F1 OCCURS 0,      
    header(50) TYPE c,
  END OF F1.

PARAMETERS: p_carr TYPE sflight-carrid.

SELECT carrid connid seatsmax seatsocc
  FROM sflight
  INTO TABLE t_sflight
 WHERE carrid EQ p_carr.

F1-header = 'Carrid'.
APPEND F1.
F1-header = 'Connid'.
APPEND F1.
F1-header = 'Max'.
APPEND F1.
F1-header = 'Min'.
APPEND F1.

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    filename  = 'C:\Documents and Settings\test\Desktop\test2.CSV'
     filetype                        = 'DBF'
   write_field_separator             = 'X'
  TABLES
    data_tab                         = t_sflight
    fieldnames                       = F1.

Regards

Adil

0 Kudos

Hi everyone,

Thanks to everyone. This solution is fine with ECC 6.0. But for my requirement i have to develop code in SAP R/3 4.7. So the GUI_DOWNLOAD function module in SAP R/3 4.7 is not having the parameter FIELDNAMES. So is there any othere solution for this. Thank you everyone in advance.

0 Kudos

hiii

yes you right..that is the only problem you are having..without using FIELDNAMES you can get header like following program..just check follwoing program it will solve your problem...as that parameter is not used in FM gui_download

TABLES:
  mara.


*----------------------------------------------------------------------*
*                        T Y P E S                                     *
*----------------------------------------------------------------------*

TYPES:
  BEGIN OF type_a090,
    kschl TYPE a090-kschl,             " Condition type
    vbeln TYPE a090-vbeln,             " Sales document number
    posnr TYPE a090-posnr,             " Item number
    matnr TYPE a090-matnr,             " Material number
    datbi TYPE a090-datbi,             " Valid from
    datab TYPE a090-datab,             " Valid to
  END OF type_a090.

TYPES:
  BEGIN OF type_mara,
    matkl TYPE mara-matkl,             " Material group
    matnr TYPE mara-matnr,             " Material number
  END OF type_mara.

TYPES:
  BEGIN OF type_makt,
    maktx TYPE makt-maktx,             " Material description
    matnr TYPE makt-matnr,             " Material number
  END OF type_makt.

TYPES:
  BEGIN OF type_output,
    kschl TYPE a090-kschl,             " Condition type
    vbeln TYPE a090-vbeln,             " Sales document number
    posnr TYPE a090-posnr,             " Item number
    matnr TYPE a090-matnr,             " Material number
    datbi(10) TYPE c,                  " Valid from
    datab(10) TYPE c,                  " Valid to
    matkl TYPE mara-matkl,             " Material group
    maktx TYPE makt-maktx,             " Material description
  END OF type_output.

TYPES:
  BEGIN OF type_final,
    string TYPE string,
  END OF type_final.

*----------------------------------------------------------------------*
*                            D A T A                                   *
*----------------------------------------------------------------------*

DATA:wa_a090 TYPE type_a090,
     i_a090  TYPE STANDARD TABLE OF type_a090,

     wa_mara TYPE type_mara,
     i_mara  TYPE STANDARD TABLE OF type_mara,

     wa_makt TYPE type_makt,
     i_makt  TYPE STANDARD TABLE OF type_makt,

     wa_output TYPE type_output,
     i_output  TYPE TABLE OF type_output,

     wa_final TYPE type_final,
     i_final  TYPE STANDARD TABLE OF type_final.            "#EC NEEDED


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

SELECTION-SCREEN BEGIN OF BLOCK sel1 WITH FRAME TITLE text-se1.
SELECT-OPTIONS:
  s_matnr          FOR mara-matnr,     " Material Number
  s_mtart          FOR mara-mtart.     " Material Type

PARAMETERS p_kschl TYPE konp-kschl  DEFAULT text-000.
" Condition Type
SELECTION-SCREEN END   OF BLOCK sel1.

SELECTION-SCREEN BEGIN OF BLOCK sel2 WITH FRAME TITLE text-se2.
SELECTION-SCREEN BEGIN OF BLOCK sel3 WITH FRAME TITLE text-se3.
PARAMETERS:
  p_app_a          RADIOBUTTON GROUP file,
  p_filea          type rlgrap-filename,
                                       " Local file for upload/download
  p_app_p          RADIOBUTTON GROUP file,
  p_filep          type rlgrap-filename.
" Local file for upload/download
SELECTION-SCREEN END   OF BLOCK sel3.
SELECTION-SCREEN BEGIN OF BLOCK sel4 WITH FRAME TITLE text-se4.
PARAMETERS:
  p_price          type rlgrap-filename OBLIGATORY
    DEFAULT text-001.
SELECTION-SCREEN END   OF BLOCK sel4.

SELECTION-SCREEN END   OF BLOCK sel2.

* Selection screen processing
AT SELECTION-SCREEN ON p_filea.
  IF NOT p_app_a IS INITIAL.
    IF p_filea IS INITIAL.
      MESSAGE e398
        WITH text-002 '' '' ''.
    ENDIF.                             " IF p_filea IS INITIAL
  ENDIF.                               " IF NOT p_app_a IS INITIAL

AT SELECTION-SCREEN ON p_filep.
  IF NOT p_app_p IS INITIAL.
    IF p_filep IS INITIAL.
      MESSAGE e398
        WITH text-003 '' '' ''.
    ENDIF.                             " IF p_filep IS INITIAL
  ENDIF.                               " IF NOT p_app_p

START-OF-SELECTION.
  PERFORM get_data.
  PERFORM output_data.
  PERFORM header.

*&---------------------------------------------------------------------*
*&      Form  get_data                                                 *
*&---------------------------------------------------------------------*
* Fetching data from the tables.
*----------------------------------------------------------------------*
*  There are no interface parameters to be passed.                     *
*----------------------------------------------------------------------*
FORM get_data .
  SELECT   kschl                       " Condition type
           vbeln                       " Sales document number
           posnr                       " Item number
           matnr                       " Material number
           datbi                       " Valid from
           datab                       " Valid to
           FROM a090
           INTO TABLE i_a090
           WHERE matnr IN  s_matnr AND
           kschl EQ p_kschl
           AND datab LE syst-datum
           AND datbi GE syst-datum.


  IF sy-subrc EQ 0.

    SELECT matkl                         " Material group
           matnr                         " Material number
           FROM mara
           INTO TABLE i_mara
           FOR ALL ENTRIES IN i_a090
           WHERE matnr = i_a090-matnr.
  ENDIF.
  IF sy-subrc EQ 0.
    SELECT maktx                         " Material description
           matnr                         " Material number
           FROM makt
           INTO TABLE i_makt
           FOR ALL ENTRIES IN i_mara
           WHERE matnr = i_mara-matnr
           AND spras = 'EN'.
  ENDIF.


ENDFORM.                               " get_data
*&---------------------------------------------------------------------*
*&      Form  output_data                                              *
*&---------------------------------------------------------------------*
*  Populating the final output table.
*----------------------------------------------------------------------*
* There are no interface parameters to be passed.                      *
*----------------------------------------------------------------------*
FORM output_data .

  DATA:
    w_date2(10) TYPE c,                " For date formate
    w_date1(10) TYPE c.                " For date formate

  LOOP AT i_a090 INTO wa_a090.

    CONCATENATE wa_a090-datbi+6(2) wa_a090-datbi+4(2) wa_a090-datbi+0(4)
    INTO w_date1 SEPARATED BY '/'.

    CONCATENATE wa_a090-datab+6(2) wa_a090-datab+4(2) wa_a090-datab+0(4)
    INTO w_date2 SEPARATED BY '/'.

    wa_output-kschl = wa_a090-kschl.
    wa_output-vbeln = wa_a090-vbeln.
    wa_output-posnr = wa_a090-posnr.
    wa_output-matnr = wa_a090-matnr.
    wa_output-datbi = w_date1.
    wa_output-datab = w_date2.

    READ TABLE i_mara INTO wa_mara WITH KEY matnr = wa_a090-matnr.
    IF sy-subrc EQ 0.
      wa_output-matkl = wa_mara-matkl.
    ENDIF.

    READ TABLE i_makt INTO wa_makt WITH KEY matnr = wa_a090-matnr.
    IF sy-subrc EQ 0.

      wa_output-maktx = wa_makt-maktx.
    ENDIF.

    APPEND wa_output TO i_output.

    CLEAR wa_output.
  ENDLOOP.                             " LOOP AT i_a090
  DELETE ADJACENT DUPLICATES FROM i_output COMPARING ALL FIELDS.

  LOOP AT i_output INTO wa_output.

    CONCATENATE wa_output-kschl
                wa_output-vbeln
                wa_output-posnr
                wa_output-matnr
                wa_output-datbi
                wa_output-datab
                wa_output-matkl
                wa_output-maktx
           INTO wa_final-string
           SEPARATED BY ','.

    APPEND wa_final TO i_final.
  ENDLOOP.                             " LOOP AT i_output...


ENDFORM.                               " output_data
*&---------------------------------------------------------------------*
*&      Form  header                                                   *
*&---------------------------------------------------------------------*
*  Formating the header.                                               *
*----------------------------------------------------------------------*
*  There are no interface parameters to be passed.                     *
*----------------------------------------------------------------------*
FORM header .

  CONCATENATE text-004
              text-005
              text-006
              text-007
              text-008
              text-009
              text-010
              text-011
         INTO wa_final-string
         SEPARATED BY ','.
  INSERT wa_final
  INTO i_final INDEX 1.

  PERFORM f901_output.

ENDFORM.                               " header
*&---------------------------------------------------------------------*
*&      Form  f901_output                                              *
*&---------------------------------------------------------------------*
*  Downloading the final output table to the presentation server or    *
*  application server.                                                 *
*----------------------------------------------------------------------*
*      -->P_I_OUTPUT  text                                             *
*      -->P_P_PRICE  text                                              *
*----------------------------------------------------------------------*
FORM f901_output .


  IF p_app_p = 'X'.
    PERFORM f903_file_to_presentation
      USING p_price.
  ELSE.
    PERFORM f904_file_to_application
      USING p_price.
  ENDIF.                               " IF p_app_p


ENDFORM.                               " f901_output
*&---------------------------------------------------------------------*
*&      Form  f903_file_to_presentation                                *
*&---------------------------------------------------------------------*
*  Dowload the file to the presentation server.                        *
*----------------------------------------------------------------------*
*      -->P_P_PRICE  text                                              *
*----------------------------------------------------------------------*
FORM f903_file_to_presentation  USING    p_p_price.
  DATA:
    lwa_file            TYPE string.  "#EC NEEDED     "rlgrap-filename.
  CONCATENATE p_filep p_p_price INTO lwa_file.
*      Download the file
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
*   BIN_FILESIZE                    = BIN_FILESIZE
      filename                        = lwa_file
      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                      = FILELENGTH
    TABLES
      data_tab                        = i_final
*   FIELDNAMES                      = 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
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM. " f903_file_to_presentation

regards

twinkal

Former Member
0 Kudos

hii

DATA: BEGIN OF T_HEADER OCCURS 0,

LINE(60) TYPE C,

END OF T_HEADER.

*Append Header

T_HEADER-LINE = 'Personal number'.

APPEND T_HEADER.

CLEAR T_HEADER.

T_HEADER-LINE = 'Name'.

APPEND T_HEADER.

CLEAR T_HEADER.

T_HEADER-LINE = 'Interviewer Name'.

APPEND T_HEADER.

CLEAR T_HEADER.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = P_FILE

FILETYPE = 'DAT'

TABLES

DATA_TAB = T_OUTPUT_FORM_B_NEW

FIELDNAMES = T_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

NO_AUTHORITY = 10

OTHERS = 11.

former_member705122
Active Contributor
0 Kudos

Hi Aslam,

Run this sample code in 4.7 and check.

TYPES:
  BEGIN OF type_itab1,
    string TYPE string,
  END OF type_itab1.

DATA:
  BEGIN OF itab OCCURS 0,
    vbeln  LIKE vbap-vbeln,
    posnr  LIKE vbap-posnr,
  END OF itab.

DATA:
   wa_itab TYPE type_itab1,
   itab1   TYPE STANDARD TABLE OF type_itab1.

SELECT vbeln
       posnr
    UP TO 5 ROWS
  FROM vbap
  INTO TABLE itab.

SORT itab.

DELETE ADJACENT DUPLICATES FROM itab COMPARING ALL FIELDS.

LOOP AT itab.
  CONCATENATE itab-vbeln
              itab-posnr
         INTO wa_itab-string
         SEPARATED BY ','.
  APPEND wa_itab TO itab1.
ENDLOOP.

CONCATENATE 'vbeln'
            'posnr'
       INTO wa_itab-string
       SEPARATED BY ','.
INSERT wa_itab
INTO itab1 INDEX 1.

CHECK sy-subrc EQ 0.

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    filename = 'C:\Documents and Settings\test\Desktop\test2.csv'
    filetype = 'ASC'
  TABLES
    data_tab = itab1
  EXCEPTIONS
    OTHERS   = 1.

This will work, check once.

Regards

Adil