ALv to excel download problems

HI friends,
Probelm I'm facing while saving an ALV report to Excel Sheet by clicking
on the 'Save as File Icon' button on the ALV output.=0D
Here data is going into a new Line after 65 columns.I've used Function
Module 'RSAQ_ALV'.This function module is ultimately using
'REUSE_ALV_GRID_DISPLAY' and 'REUSE_ALV_LIST_DISPLAY' function
modules.ALV output I'm getting correctly but when I save this ALV output
to Excel,columns are getting wrapped and going into 2nd row after 65
columns.=0D
Could anybody tell me what could be the reason ?=0D
Thanks,
Sreekanth.G
Moderator message: duplicate post locked.
Edited by: Thomas Zloch on Jul 9, 2010 12:36 PM

ch_alv_layout-info_fieldname = 'COLOR'. "infofield for listoutput
  ch_alv_layout-colwidth_optimize = 'X'.
try commenting the above values.and also check the Fieldcatlog.
Check the issue similar issue was resolve by checking catalog and layout:
[ALV Issue solution|Re: Problem when export ALV.]
Regards,
Gurpreet

Similar Messages

  • ALV to Excel download problem

    Hi Experts,
       I display around 15 fields(columns) in ALV output. When I download it to Excel, it downloads exactly.
    Then dynamically, when I increase the  number of fields to be displayed in ALV it is displaying correctly. But when I download
    to excel, half of the fields are coming in one line of excel sheet and remaining fields are coming in the second line of excel.
    Why am I not getting all the fields in one line itself in the excel sheet?
    Is it a problem in standard ALV?
    I am using cl_gui_alv_grid class to display ALV output.
    Thanks and regards,
    Venkat.

    Hi!
    Which function module you are using for downloading?

  • ALV to excel download problem through standard tool bar

    I am downloading data into excel from ALV , When there are 128 column data in execl coming as 2 row for 1 row of data in alv. This problem is not there for 78 columns report.
    Kindly suggest some solution.

    i think there is a limit to the number of columns for ALV and which is i think 92 ..this can be the cause of the issue
    amit

  • Problem in ALV to Excel Download

    Good Morning Experts,
      I am facing one issue related ALV to excel Download.
    I Developed one custom report the output is correct displaying.
    the output is like for example i am taking 3 columns (plant, material, amt).
    plant material amt
    1001  aaa     1000
    1001  bbb     2000
    while downloading to excel
    it displaying like
    plant
    material
    amt
    1001
    aaa
    1000
    1001
    bbb
    2000
    I dont know why its coming like that.
    this is my code
    DEFINE field_cat.
    wa_field-row_pos = &1.
    wa_field-fieldname = &2.
    wa_field-tabname = &3.
    wa_field-seltext_m = &4.
    wa_field-outputlen = &5.
    wa_field-currency = &6.
    wa_field-ref_fieldname = &7.
    wa_field-ref_tabname = &8.
    APPEND wa_field to it_field.
    clear wa_field.
    END-OF-DEFINITION.
    field_cat '1' 'BUKRS' 'IT_FINAL' 'Company Code' '6' '' '' ''.
    field_cat '2' 'BUTXT' 'IT_FINAL' 'Comp Descrip' '25' '' '' ''.
    field_cat '3' 'LIFNR' 'IT_FINAL' 'Vendor No' '10' '' '' ''.
    field_cat '4' 'NAME1' 'IT_FINAL' 'Vendor Name' '35' '' '' ''.
    field_cat '5' 'STRAS' 'IT_FINAL' 'Vendor Addres' '35' '' '' ''.
    field_cat '6' 'FDGRV' 'IT_FINAL' 'Nature Of Work' '30' '' '' ''.
    field_cat '7' 'DMBTR' 'IT_FINAL' 'Net Amount' '16' 'X' 'WAERS' 'IT_FINAL'.
    field_cat '8' 'QBSHB' 'IT_FINAL' 'TDS Amount' '16' 'X' 'WAERS' 'IT_FINAL'.
    field_cat '9' 'TOTAL' 'IT_FINAL' 'Total Amount' '16' 'X' 'WAERS' 'IT_FINAL'.
    it_layout-zebra = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = sy-repid
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
       IS_LAYOUT                         = it_layout
       IT_FIELDCAT                       = it_field
       I_SAVE                            = 'X'
      TABLES
        t_outtab                          = it_final
    EXCEPTIONS
       PROGRAM_ERROR                     = 1
       OTHERS                            = 2.
    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.                    " DISPLAY_ALV
    FORM TOP_OF_PAGE.
    REFRESH it_head. CLEAR it_head.
    wa_head-typ = 'H'.
    wa_head-info = 'Vendorwise Expense Details'.
    APPEND wa_head to it_head.
    wa_head-typ = 'S'.
    IF NOT s_MONAT-high is INITIAL.
      CONCATENATE 'Period : ' p_gjahr '.' s_MONAT-low ' to ' p_gjahr '.' s_MONAT-high INTO wa_head-info.
    ELSE.
      CONCATENATE 'Period : ' p_gjahr '.' s_MONAT-low INTO wa_head-info.
    ENDIF.
    APPEND wa_head to it_head.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        it_list_commentary       = it_head.
    ENDFORM.
    Regards,
    Dhina..

    Hi,
    You can also try in this way
    in the output screen
      click List (in app tool bar) -> Export -> Spreadsheet
    and save at your desired location.
    (It will be save in .mhtml format , just rightclick on it and you can open it with excel )
    Then you will be able to view in your required format.
    Regards,
    koolspy.

  • ALV Excel Download problem ( Special Character)

    Hi,
    I am unable to download completely in XLS format from ALV grid. When i tried in couple of ways there is a special character( " ) in one of the filed. Due to the same Excel download has some problem. I tested by removing those and it worked fine, 
    Please suggest me to solve the issue.
    Thanks,
    Bhanu Gattu,

    Data strings with special characters can not be downloaded into XLS format from ALV grid. In my case, I replaced the special character " with space and I could download the data into excel.

  • ALV Excel download problem

    Hi,
    I am trying to download ALV report to excel but the columns in the o/p is appearing in two rows.
    THe ALV report has 82 columns in o/p.Is there any restriction on the no of columns that can be downloaded in excel.Please help.
    Thanks,
    Sutapa.

    Hi Sutapa,
    Kindly go through this link below for ALV Excel Download:
    Re: how to view alv grid output in excel format(not downloading to pc)
    Hope it helps
    Regrds
    Mansi

  • Excel Download problem - Urgent please

    Hi All,
    I am using 4.6C version.
    The user is downloading the ALV output to excel from the output menu
    List > Save > File > Spreadsheet >
    User tried saving a file to the Local drive and got a "Disk is full" error.
    User realized that the export didn't complete (Partial download)
    because there wasn't enough disk space to export the report.
    User stated that if he had received an error message of some sort, he might have realized the problem.
    He didn't receive any kind of errors.
    User would like some kind of error message to come up in those situations.
    Without an error message, he assumes the reports are acurate and trusts them.
    <b>I have analysied and found a exit EXIT_SAPLGRAP_001 which triggres after the popup asking the file path. However this exit doesnot give me the file path</b>.
    After this i think i can make use of the class CL_GUI_FRONTEND_SERVICES and method GET_FREE_SPACE_FOR_DRIVE and FILE_GET_SIZE to check for disk space full.
    Kindly let me know how to get the file path given in the popup to get it in the exit EXIT_SAPLGRAP_001. Also there was no parameter id for the field.
    Thanks for your help.
    Senthil

    Senthil,
    "However in this case the sap didnot uses GUI_DOWNLOAD to download instead it uses download FM. "
    What "download FM" is 4.6 using then?
    The GUI_DOWNLOAD does check for a disk_full situation... I find it hard to believe that SAP made an oversight here.
    I believe that the user is not telling the truth to you... or something else happened in that they have not conveyed to you.

  • Excel download problem.

    Hi,
    i have developed a report using Dynamic ALV, when i used to save the output to excel, data in the output is matched with the excel. while executing the report in SAP screen it works fine. i have used REUSE_ALV_GRID.for this.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_bypassing_buffer = 'X'
            i_buffer_active    = ' '
            i_callback_program = lv_repid
            is_layout          = gs_layout
            it_fieldcat        = gt_fieldcat
            it_sort            = gt_sort[]
            it_events          = gt_event
          TABLES
            t_outtab           = <dyn_table>
          EXCEPTIONS
            program_error      = 0
         OTHERS             = 0.
    is there any settings to be done in the excel or should we add any additional parameters for local file?
    pointers for this will be helpful.
    Regards,
    Dinesh

    Hi,
    What is your problem ?
    If you don't see anything in Excel after download :
    In Excel 
    first step
    - Menu : Tools ->Macros->scurity
    go to tab Trusted Publishers  and flag Trust acces to Visual Basic Project
    second step
    allow execution of macro
    - Menu : Tools ->Macros->scurity
    go to tab security Level and choise medium or Low
    Rgds

  • ALV to Excel sheet problems

    HI Friends,
    I have created an ALV report with 87 fields in it. Whenever I am trying to download that report into excel the number of column breaks into 2 rows. In this case, The downloaded file contains 57 Columns in 1 row and remaining 29 Columns in second row. Can anyone please help me in understanding why this is happening while downloading this report into excel file and what will be the solution to correct it.
    Sreekanth.G
    Moderator message: duplicate post locked.
    Edited by: Thomas Zloch on Jul 9, 2010 11:35 AM

    Hi,
    This is an FAQ. Please search in SCN before Posting and Please see the SCN Rules also.
    With Regards,
    Sumodh.P

  • ALV to Excel Format problem

    Hello Freinds,
    I am trying to download the o/p of ALV report into an excel sheet.But the o/p in excel sheet is distorted to some extent.Some of the headers appear in the next line even if there is no limit of rows in office 2007 which is there on my machine.This issue is not on all servers.In development and quality servers the format is correct but when the same report is downloaded from Production server,the o/p appears distorted.
    Please advice as to what could be the reason !

    Hi Jazz,
    You can very well do what our friend Avinash told the easier way . 
    But if you want it to be done programmaticlly,then plz revert with the following details
    1) Whether the file is excel (any specifications)
    2) Whether any special characters are present in the int table
    3) Whether the ALV has colour and other formats
    Thanks and Regards
    Srikanth.P

  • Material Number Truncated in ALV to Excel Download

    Hi Guru,
    I have a ALV program report. It has about 18 columns, but for some strange reason, when we download this report to an ALV the 3rd column which host the material number as the last digit missing/truncated.
    For example if we have a material number in SAP ALV Grid as 1234567, when we download this the excel, what we get in excel is 123456. with the last number missing.
    What is the best solution to fix this issue.
    Thanks for you help in advance.

    Hi Keshav,
    Previously I faced the same situation, like in ALV grid I was displaying the material nos with output length as 15. Since in the Grid display you can readjust the columns, So after displaying we just expanded in the grid and try to download the same in excel. But at that time the ALV was downloading with material number field length as 15 ( What I set in my field catalog). Even when I saw the print priview I saw only the length it is showing as 15.  After changing the output length as 18 in field cat  I got the correct download.
    (Here I am assuming that the question is raised for  ALV grid display since no where it is mentioned the type of ALV).
    Sorry it was mentioned in the question itself
    Regards
    Shiba
    Edited by: Shiba Prasad Dutta on Feb 22, 2010 2:41 PM

  • Alv to excel download

    Probelm I'm facing while saving an ALV report to Excel Sheet by clicking
    on the 'Save as File Icon' button on the ALV output.=0D
    Here data is going into a new Line after 65 columns.I've used Function
    Module 'RSAQ_ALV'.This function module is ultimately using
    'REUSE_ALV_GRID_DISPLAY' and 'REUSE_ALV_LIST_DISPLAY' function
    modules.ALV output I'm getting correctly but when I save this ALV output
    to Excel,columns are getting wrapped and going into 2nd row after 65
    columns.=0D
    Could anybody tell me what could be the reason ?=0D
    Moderator message: duplicate post locked.
    Edited by: Thomas Zloch on Jul 9, 2010 12:37 PM

    I do not have the answer but I have experienced the same issue.  I believe the issue arrises not as a limit of the number of columns, but based upon the length of the entire data structure, as I recall.  As a work around, we use the MS Excel icon versus the Save as Local file icon.

  • ALV to Excel Sheet Problem

    Hello all,
    I am transferring the ALV output from SAP to Excel sheet using the standard button i.e. To Local FIle.... but i am not getting the text of the last column in the excel sheet. the last column is being displayed empty where as its heading is being displayed....
    Regards.
    Sabah...

    Go through the code and Execute it on your system, I think this will do for you.
    In this code I used 3 radio buttons in my selection screen:
    If u selects the first radio button your out put shows into to the Excel sheet.
    If u selects the second radio button your out put shows the in the Editor screen.
    If u clicks the third radio button your output shows into the Excel as well as in the Editor.
    *& DATA DECLARATION *
    TABLES: MARA, "GENERAL MASTER DATA
    MARC, "PLANT DATA FOR MATERIAL
    MARD, "STORAGE LOCATION DATA FOR MATERIAL
    MBEW, "MATERIAL VALUATION
    MVKE, "SALES DATA FOR MATERIAL
    MAKT, "MATERIAL DESCRIPTION
    EKKO, "PURCHASING DOCUMENT HEADER
    EKPO, "PURCHASING DOCUMENT ITEM
    VBAK, "SALES DOCUMENT HEADER DATA
    VBAP. "SALES DOCUMENT ITEM DATA
    TYPE-POOLS : SLIS.
    DATA: VT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    V_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    V_LAYOUT TYPE SLIS_LAYOUT_ALV,
    BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    BEGIN OF I_MARA OCCURS 0,
    MATNR LIKE MARA-MATNR, "MATERIAL NUMBER
    MBRSH LIKE MARA-MBRSH, "INDUSTRY SECTOR
    MEINS LIKE MARA-MEINS, "BASE UNIT OF MEASURE
    MATKL LIKE MARA-MATKL, "MATERIAL GROUP
    END OF I_MARA,
    BEGIN OF I_MARC OCCURS 0,
    MATNR LIKE MARC-MATNR, "MATERIAL NUMBER
    WERKS LIKE MARC-WERKS, "PLANT
    LVORM LIKE MARC-LVORM, "FLAG MATERIAL FOR DELETION AT PLANT
    "LEVEL
    DISPO LIKE MARC-DISPO, "MRP CONTROLLER
    END OF I_MARC,
    BEGIN OF I_MAKT OCCURS 0,
    MATNR LIKE MAKT-MATNR, "MATERIAL NUMBER
    MAKTX LIKE MAKT-MAKTX, "MATERIAL DESCRIPTION
    SPRAS LIKE MAKT-SPRAS, "LANGUAGE KEY
    END OF I_MAKT,
    BEGIN OF I_MVKE OCCURS 0,
    MATNR LIKE MVKE-MATNR, "MATERIAL NUMBER
    VKORG LIKE MVKE-VKORG, "SALES ORGANIZATION
    VTWEG LIKE MVKE-VTWEG, "DISTRIBUTION CHANNEL
    END OF I_MVKE,
    BEGIN OF I_MARD OCCURS 0,
    MATNR LIKE MARD-MATNR, "MATERIAL NUMBER
    LGORT LIKE MARD-LGORT, "STORAGE LOCATION
    LABST LIKE MARD-LABST, "VALUATED STOCK WITH UNRESTRICTED USE
    END OF I_MARD,
    BEGIN OF I_EKPO OCCURS 0,
    EBELN LIKE EKPO-EBELN, "PURCHASING DOCUMENT NUMBER
    EBELP LIKE EKPO-EBELP, "ITEM NUMBER OF PURCHASING DOCUMENT
    MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
    END OF I_EKPO,
    BEGIN OF I_VBAP OCCURS 0,
    VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
    POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
    MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
    END OF I_VBAP,
    BEGIN OF I_OUT OCCURS 0,
    MATNR LIKE MARC-MATNR,
    WERKS LIKE MARC-WERKS,
    LVORM LIKE MARC-LVORM,
    DISPO LIKE MARC-DISPO,
    MBRSH LIKE MARA-MBRSH,
    MEINS LIKE MARA-MEINS,
    MATKL LIKE MARA-MATKL,
    VKORG LIKE MVKE-VKORG,
    VTWEG LIKE MVKE-VTWEG,
    SPRAS LIKE MAKT-SPRAS,
    MAKTX LIKE MAKT-MAKTX,
    LGORT LIKE MARD-LGORT,
    LABST LIKE MARD-LABST,
    EBELN LIKE EKPO-EBELN,
    EBELP LIKE EKPO-EBELP,
    VBELN LIKE VBAP-VBELN,
    POSNR LIKE VBAP-POSNR,
    END OF I_OUT,
    BEGIN OF I_HEADING OCCURS 0,
    TEXT1(20),
    TEXT2(20),
    TEXT3(20),
    TEXT4(20),
    TEXT5(20),
    TEXT6(20),
    TEXT7(20),
    TEXT8(20),
    TEXT9(20),
    TEXT10(20),
    TEXT11(40),
    TEXT12(20),
    TEXT13(20),
    TEXT14(20),
    TEXT15(20),
    TEXT16(20),
    TEXT17(20),
    END OF I_HEADING.
    *& S E L E C T I O N - S C R E E N *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. "OBLIGATORY.
    PARAMETERS: P_WERKS LIKE MARC-WERKS. "OBLIGATORY.
    SELECT-OPTIONS: S_LGORT FOR MARD-LGORT,
    S_DISPO FOR MARC-DISPO,
    S_EBELN FOR EKPO-EBELN .
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
    PARAMETERS : RB1 RADIOBUTTON GROUP G1,
    RB2 RADIOBUTTON GROUP G1,
    RB3 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK B2.
    *& S T A R T - O F - S E L E C T I O N *
    START-OF-SELECTION.
    SELECT MATNR WERKS LVORM DISPO FROM MARC
    INTO CORRESPONDING FIELDS OF TABLE I_MARC
    WHERE MATNR IN S_MATNR
    AND DISPO IN S_DISPO
    AND WERKS = P_WERKS.
    IF I_MARC[] IS INITIAL.
    WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARC'.
    EXIT.
    ENDIF.
    PERFORM PURCHASEDATA_VALIDATION.
    PERFORM SALESDATA_VALIDATION.
    SELECT MATNR LGORT LABST FROM MARD INTO TABLE I_MARD
    FOR ALL ENTRIES IN I_MARC
    WHERE MATNR = I_MARC-MATNR
    AND WERKS EQ P_WERKS
    AND LGORT IN S_LGORT.
    IF I_MARD[] IS INITIAL.
    WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARD'.
    EXIT.
    ENDIF.
    SELECT MATNR VKORG VTWEG FROM MVKE INTO TABLE I_MVKE
    FOR ALL ENTRIES IN I_MARC
    WHERE MATNR = I_MARC-MATNR.
    IF I_MVKE[] IS INITIAL.
    WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MVKE'.
    EXIT.
    ENDIF.
    LOOP AT I_MARC.
    MOVE-CORRESPONDING I_MARC TO I_OUT.
    CLEAR MARC.
    SELECT SINGLE MATNR MBRSH MEINS MATKL FROM MARA
    INTO CORRESPONDING FIELDS OF MARA
    WHERE MATNR = I_OUT-MATNR.
    IF SY-SUBRC = 0.
    MOVE: MARA-MBRSH TO I_OUT-MBRSH,
    MARA-MEINS TO I_OUT-MEINS,
    MARA-MATKL TO I_OUT-MATKL.
    ELSE.
    CONTINUE.
    ENDIF.
    SELECT SINGLE MATNR MAKTX SPRAS FROM MAKT
    INTO CORRESPONDING FIELDS OF MAKT
    WHERE MATNR = I_OUT-MATNR.
    IF SY-SUBRC = 0.
    MOVE: MAKT-MAKTX TO I_OUT-MAKTX,
    MAKT-SPRAS TO I_OUT-SPRAS.
    ELSE.
    CONTINUE.
    ENDIF.
    LOOP AT I_EKPO WHERE MATNR = I_MARC-MATNR.
    MOVE: I_EKPO-EBELN TO I_OUT-EBELN,
    I_EKPO-EBELP TO I_OUT-EBELP.
    ENDLOOP.
    LOOP AT I_VBAP WHERE MATNR = I_MARC-MATNR.
    MOVE: I_VBAP-VBELN TO I_OUT-VBELN,
    I_VBAP-POSNR TO I_OUT-POSNR.
    ENDLOOP.
    LOOP AT I_MARD WHERE MATNR = I_MARC-MATNR.
    MOVE: I_MARD-LABST TO I_OUT-LABST,
    I_MARD-LGORT TO I_OUT-LGORT.
    ENDLOOP.
    LOOP AT I_MVKE WHERE MATNR = I_MARC-MATNR.
    MOVE: I_MVKE-VKORG TO I_OUT-VKORG,
    I_MVKE-VTWEG TO I_OUT-VTWEG.
    APPEND I_OUT.
    ENDLOOP.
    CLEAR I_OUT.
    ENDLOOP.
    PERFORM OPTIONS.
    FORM OPTIONS *
    FORM OPTIONS.
    IF RB2 = 'X'.
    PERFORM FIELDCAT.
    PERFORM OUTPUT.
    ELSE.
    IF RB1 = 'X'.
    PERFORM HEADINGS.
    PERFORM DLOAD.
    ELSE.
    IF RB3 = 'X'.
    PERFORM HEADINGS.
    PERFORM DLOAD.
    PERFORM FIELDCAT.
    PERFORM OUTPUT.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM. "OPTIONS
    FORM HEADINGS *
    FORM HEADINGS.
    I_HEADING-TEXT1 = 'MATNR'.
    I_HEADING-TEXT2 = 'WERKS'.
    I_HEADING-TEXT3 = 'LVORM'.
    I_HEADING-TEXT4 = 'DISPO'.
    I_HEADING-TEXT5 = 'MBRSH'.
    I_HEADING-TEXT6 = 'MEINS'.
    I_HEADING-TEXT7 = 'MATKL'.
    I_HEADING-TEXT8 = 'VKORG'.
    I_HEADING-TEXT9 = 'VTWEG'.
    I_HEADING-TEXT10 = 'SPRAS'.
    I_HEADING-TEXT11 = 'MAKTX'.
    I_HEADING-TEXT12 = 'LGORT'.
    I_HEADING-TEXT13 = 'LABST'.
    I_HEADING-TEXT14 = 'EBELN'.
    I_HEADING-TEXT15 = 'EBELP'.
    I_HEADING-TEXT16 = 'VBELN'.
    I_HEADING-TEXT17 = 'POSNR'.
    APPEND I_HEADING.
    ENDFORM. "HEADINGS
    FORM DLOAD *
    FORM DLOAD.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    FILENAME = 'C:\MATSTK.XLS'
    FILETYPE = 'DAT'
    WRITE_FIELD_SEPARATOR = 'X'
    TABLES
    DATA_TAB = I_HEADING
    EXCEPTIONS
    FILE_WRITE_ERROR = 1.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    FILENAME = 'C:\MATSTK.XLS'
    FILETYPE = 'DAT'
    APPEND = 'X'
    WRITE_FIELD_SEPARATOR = 'X'
    TABLES
    DATA_TAB = I_OUT.
    ENDFORM. "DLOAD
    FORM FIELDCAT *
    FORM FIELDCAT.
    V_FIELDCAT-COL_POS = '1'.
    V_FIELDCAT-FIELDNAME = 'MATNR'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-HOTSPOT = 'X'.
    V_FIELDCAT-REF_FIELDNAME = 'MATNR'.
    V_FIELDCAT-REF_TABNAME = 'MARC'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '2'.
    V_FIELDCAT-FIELDNAME = 'WERKS'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'WERKS'.
    V_FIELDCAT-REF_TABNAME = 'MARC'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '3'.
    V_FIELDCAT-FIELDNAME = 'LVORM'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'LVORM'.
    V_FIELDCAT-REF_TABNAME = 'MARC'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '4'.
    V_FIELDCAT-FIELDNAME = 'DISPO'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'DISPO'.
    V_FIELDCAT-REF_TABNAME = 'MARC'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '5'.
    V_FIELDCAT-FIELDNAME = 'MBRSH'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'MBRSH'.
    V_FIELDCAT-REF_TABNAME = 'MARA'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '6'.
    V_FIELDCAT-FIELDNAME = 'MEINS'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'MEINS'.
    V_FIELDCAT-REF_TABNAME = 'MARA'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '7'.
    V_FIELDCAT-FIELDNAME = 'MATKL'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'MATKL'.
    V_FIELDCAT-REF_TABNAME = 'MARA'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '8'.
    V_FIELDCAT-FIELDNAME = 'VKORG'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'VKORG'.
    V_FIELDCAT-REF_TABNAME = 'MVKE'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '9'.
    V_FIELDCAT-FIELDNAME = 'VTWEG'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'VTWEG'.
    V_FIELDCAT-REF_TABNAME = 'MVKE'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '10'.
    V_FIELDCAT-FIELDNAME = 'SPRAS'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'SPRAS'.
    V_FIELDCAT-REF_TABNAME = 'MAKT'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '11'.
    V_FIELDCAT-FIELDNAME = 'MAKTX'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'MAKTX'.
    V_FIELDCAT-REF_TABNAME = 'MAKT'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '12'.
    V_FIELDCAT-FIELDNAME = 'LGORT'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'LGORT'.
    V_FIELDCAT-REF_TABNAME = 'MARD'.
    V_FIELDCAT-SELTEXT_L = 'STRG LOCT'.
    V_FIELDCAT-OUTPUTLEN = 10.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '13'.
    V_FIELDCAT-FIELDNAME = 'LABST'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-SELTEXT_M = 'STOCK'.
    V_FIELDCAT-OUTPUTLEN = 15.
    V_FIELDCAT-REF_FIELDNAME = 'LABST'.
    V_FIELDCAT-REF_TABNAME = 'MARD'.
    V_FIELDCAT-DO_SUM = 'X'.
    V_LAYOUT-TOTALS_TEXT = 'TOTAL STOCK:'.
    V_FIELDCAT-HOTSPOT = 'X'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '14'.
    V_FIELDCAT-FIELDNAME = 'EBELN'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-HOTSPOT = 'X'.
    V_FIELDCAT-REF_FIELDNAME = 'EBELN'.
    V_FIELDCAT-REF_TABNAME = 'EKPO'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '15'.
    V_FIELDCAT-FIELDNAME = 'EBELP'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'EBELP'.
    V_FIELDCAT-REF_TABNAME = 'EKPO'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '16'.
    V_FIELDCAT-FIELDNAME = 'VBELN'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-HOTSPOT = 'X'.
    V_FIELDCAT-REF_FIELDNAME = 'VBELN'.
    V_FIELDCAT-REF_TABNAME = 'VBAP'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    V_FIELDCAT-COL_POS = '17'.
    V_FIELDCAT-FIELDNAME = 'POSNR'.
    V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'POSNR'.
    V_FIELDCAT-REF_TABNAME = 'VBAP'.
    APPEND V_FIELDCAT TO VT_FIELDCAT1.
    CLEAR V_FIELDCAT.
    ENDFORM. "FIELDCAT
    FORM OUTPUT *
    FORM OUTPUT.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
    I_GRID_TITLE = 'CLICK ON MATERIAL/PURDOC/SALESDOC FOR DETAILS'
    I_CALLBACK_USER_COMMAND = 'DISPLAYDETAILS'
    IS_LAYOUT = V_LAYOUT
    IT_FIELDCAT = VT_FIELDCAT1
    TABLES
    T_OUTTAB = I_OUT.
    IF SY-SUBRC 0.
    ENDIF.
    ENDFORM. "OUTPUT
    FORM TOP-OF-PAGE *
    FORM TOP-OF-PAGE.
    DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
    WA_HEADER TYPE SLIS_LISTHEADER.
    WA_HEADER-TYP = 'H'.
    WA_HEADER-INFO = 'REPORT FOR : '.
    APPEND WA_HEADER TO T_HEADER.
    CLEAR WA_HEADER.
    WA_HEADER-TYP = 'S'.
    WA_HEADER-INFO = 'MATERIAL DETAILS'.
    APPEND WA_HEADER TO T_HEADER.
    CLEAR WA_HEADER.
    WA_HEADER-TYP = 'S'.
    WA_HEADER-INFO = 'PURCHASE ORDER DETAILS'.
    APPEND WA_HEADER TO T_HEADER.
    CLEAR WA_HEADER.
    WA_HEADER-TYP = 'S'.
    WA_HEADER-INFO = 'SALES ORDER DETAILS'.
    APPEND WA_HEADER TO T_HEADER.
    CLEAR WA_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    I_LOGO = 'GEAR'
    IT_LIST_COMMENTARY = T_HEADER.
    ENDFORM. "TOP-OF-PAGE
    *& FORM PURCHASEDATA_VALIDATION *
    FORM PURCHASEDATA_VALIDATION.
    SELECT EBELN EBELP MATNR
    FROM EKPO
    INTO TABLE I_EKPO
    FOR ALL ENTRIES IN I_MARC
    WHERE MATNR = I_MARC-MATNR
    AND EBELN IN S_EBELN
    AND WERKS EQ P_WERKS.
    IF I_EKPO[] IS INITIAL.
    WRITE:/ 'NO MATCHING DATA IS SELECTED FROM TABLE EKPO'.
    EXIT.
    ENDIF.
    DATA: T_EKPO LIKE I_EKPO OCCURS 0 WITH HEADER LINE.
    T_EKPO] = I_EKPO[.
    REFRESH I_EKPO.
    FREE I_EKPO.
    LOOP AT T_EKPO.
    SELECT SINGLE EBELN FROM EKKO INTO EKPO-EBELN
    WHERE EBELN = T_EKPO-EBELN.
    IF SY-SUBRC = 0.
    MOVE-CORRESPONDING T_EKPO TO I_EKPO.
    APPEND I_EKPO.
    CLEAR I_EKPO.
    ELSE.
    CONTINUE.
    ENDIF.
    ENDLOOP.
    SORT I_EKPO.
    ENDFORM. "PURCHASEDATA_VALIDATION
    *& FORM SALESDATA_VALIDATION *
    FORM SALESDATA_VALIDATION.
    SELECT VBELN POSNR MATNR
    FROM VBAP
    INTO CORRESPONDING FIELDS OF TABLE
    I_VBAP FOR ALL ENTRIES IN I_MARC
    WHERE MATNR = I_MARC-MATNR.
    DATA: T_VBAP LIKE I_VBAP OCCURS 0 WITH HEADER LINE.
    T_VBAP] = I_VBAP[.
    REFRESH I_VBAP.
    FREE I_VBAP.
    LOOP AT T_VBAP.
    SELECT SINGLE VBELN FROM VBAK INTO VBAK-VBELN
    WHERE VBELN = T_VBAP-VBELN.
    IF SY-SUBRC = 0.
    MOVE-CORRESPONDING T_VBAP TO I_VBAP.
    APPEND I_VBAP.
    CLEAR I_VBAP.
    ELSE.
    CONTINUE.
    ENDIF.
    ENDLOOP.
    SORT I_VBAP.
    ENDFORM. "SALESDATA_VALIDATION

  • Excel download problem :--- Header data duplicating in unexpected  columns

    Guys, 
       I   am  able  to  download  the  data onto  Excel  with   Header  data  but  the Header data duplicating in unexpected  columns RHS  upto  all  the  line item columns  below....Below  is  partial   excerpt... 
    Please help....
    DATA:
           BEGIN OF excel_wa,
                posnr               TYPE  vbap-posnr,           "Line Item
                matnr               TYPE  vbap-matnr,           "Mat#
                pmatn               TYPE  vbap-pmatn,           "Pric Mat
                zansicat            TYPE  zmarall-zansicat,     "AnsiCat#
                zansigrd            TYPE  zmarall-zansigrd,     "Grade
                zcurrvaltnarea      TYPE  zco002-zcurrvaltnarea,"Val Area
                zcurrcstusd         TYPE  zco002-zcurrcstusd,   "Cost$
                zzbrndnm            TYPE  mara-zzbrndnm,        "Brand
                zqedscgrp           TYPE  zglbprc-zqedscgrp, "QE Disc Grp
                mstav               TYPE  mara-mstav,        "Status
                prodh               TYPE  vbap-prodh,        "Prod Heir
                kwmeng              TYPE  vbap-kwmeng,       "Qty
                lprc                TYPE  konv-kbetr,  "List Price ZBP1
                sprc                TYPE  konv-kbetr,  "Std Pric ZNAA,ZNAX
                netpr               TYPE  vbap-netpr,  "Quot price
                mrgn                TYPE  konv-kbetr,  "margin%
           END   OF excel_wa,
           BEGIN OF sema_wa,
            posnr            LIKE ws-xxlt VALUE 'STRDFT',
            matnr            LIKE ws-xxlt VALUE 'STRDFT',
            pmatn            LIKE ws-xxlt VALUE 'STRDFT',
            zansicat         LIKE ws-xxlt VALUE 'STRDFT',
            zansigrd         LIKE ws-xxlt VALUE 'STRDFT',
            zcurrvaltnarea   LIKE ws-xxlt VALUE 'STRDFT',
            zcurrcstusd      LIKE ws-xxlt VALUE 'STRDFT',
            zzbrndnm         LIKE ws-xxlt VALUE 'STRDFT',
            zqedscgrp        LIKE ws-xxlt VALUE 'STRDFT',
            mstav            LIKE ws-xxlt VALUE 'STRDFT',
            prodh            LIKE ws-xxlt VALUE 'STRDFT',
            kwmeng           LIKE ws-xxlt VALUE 'N00ADD',
            lprc             LIKE ws-xxlt VALUE 'N02ADD',
            sprc             LIKE ws-xxlt VALUE 'N03ADD',
            netpr            LIKE ws-xxlt VALUE 'N02ADD',
            mrgn             LIKE ws-xxlt VALUE 'N00ADD',
          END OF sema_wa,
          BEGIN OF clhd_wa,
            posnr            LIKE ws-xxlt VALUE 'LineItem#',
            matnr            LIKE ws-xxlt VALUE 'Mat#',
            pmatn            LIKE ws-xxlt VALUE 'VC Mat#',
            zansicat         LIKE ws-xxlt VALUE 'AnsiCat',
            zansigrd         LIKE ws-xxlt VALUE 'Grade',
            zcurrvaltnarea   LIKE ws-xxlt VALUE 'ValnArea',
            zcurrcstusd      LIKE ws-xxlt VALUE 'Currency',
            zzbrndnm         LIKE ws-xxlt VALUE 'Brand',
            zqedscgrp        LIKE ws-xxlt VALUE 'QE disc',
            mstav            LIKE ws-xxlt VALUE 'Status',
            prodh            LIKE ws-xxlt VALUE 'Prod Heir',
            kwmeng           LIKE ws-xxlt VALUE 'Qty',
            lprc             LIKE ws-xxlt VALUE 'List Pric',
            sprc             LIKE ws-xxlt VALUE 'St.Disc',
            netpr            LIKE ws-xxlt VALUE 'Quote Price',
            mrgn             LIKE ws-xxlt VALUE 'Margin%',
         END OF clhd_wa,
         BEGIN OF hdtxt1_wa,
            vbeln      LIKE ws-xxlt VALUE 'Quotation#',
            kunnr      LIKE ws-xxlt VALUE 'Quote Date',
            kvgr3      LIKE ws-xxlt VALUE 'Rep Date',
            pltyp      LIKE ws-xxlt VALUE 'Pric List Typ & Currency',
            waers      LIKE ws-xxlt VALUE 'Sold To',
            knuma      LIKE ws-xxlt VALUE 'Ship To',
            datab      LIKE ws-xxlt VALUE 'Top Parent',
            datbi      LIKE ws-xxlt VALUE 'Sales Org/Sales Dist/CPA',
            note       LIKE ws-xxlt VALUE 'Net Sales',
         END OF hdtxt1_wa,
         BEGIN OF hdtxt2_wa,
            vbeln      LIKE ws-xxlt VALUE '',"Quotation#',
            kunnr      LIKE ws-xxlt VALUE '',"Quote Date',
            kvgr3      LIKE ws-xxlt VALUE '',"Rep Date',
            pltyp      LIKE ws-xxlt VALUE '',"Pric List Typ & Currency',
            waers      LIKE ws-xxlt VALUE '',"Sold To',
            knuma      LIKE ws-xxlt VALUE '',"Ship To',
            datab      LIKE ws-xxlt VALUE '',"Top Parent',
            datbi      LIKE ws-xxlt VALUE '',"Sales Org/Sales Dist/CPA',
            note       LIKE ws-xxlt VALUE '',"Net Sales',
         END OF hdtxt2_wa.
    DATA:
          ivbap      LIKE  STANDARD TABLE OF ivbap_wa,
          imat       LIKE  STANDARD TABLE OF mat_wa,
          icurr      LIKE  STANDARD TABLE OF curr_wa,
          ikonv      LIKE  STANDARD TABLE OF konv_wa,
          ivbpa      LIKE  STANDARD TABLE OF ivbpa_wa,
          ikna1      LIKE  STANDARD TABLE OF kna1_wa,
          iresult    LIKE  STANDARD TABLE OF result_wa,
    *Excel tables
          iexcel     LIKE  STANDARD TABLE OF excel_wa,
          isema_wa   LIKE  gxxlt_s,
          it_sema    LIKE  STANDARD TABLE OF gxxlt_s,
          ihkey_wa   LIKE  gxxlt_h,
          it_hkey    LIKE  STANDARD TABLE OF gxxlt_h,
          iotxt_wa   LIKE  gxxlt_o,
          it_otext   LIKE  STANDARD TABLE OF gxxlt_o,
          iptxt_wa   LIKE  gxxlt_p,
          it_ptext   LIKE  STANDARD TABLE OF gxxlt_p,
          ivkey_wa   LIKE  gxxlt_v,
          it_vkey    LIKE  STANDARD TABLE OF gxxlt_v.
    *Field-Symbols
    FIELD-SYMBOLS:
          <vbap>  LIKE   ivbap_wa,
          <vbpa>  LIKE   ivbpa_wa,
          <mat>   LIKE   mat_wa,
          <sema_wa>,
          <clhd_wa>,
          <hdtxt1_wa>,
          <hdtxt2_wa>.
    *Constants
    CONSTANTS:
          c_auart   TYPE  vbak-auart  VALUE  'AG', "AG = Quotn
          c_parvw1  TYPE  vbpa-parvw  VALUE  'AG',
          c_parvw2  TYPE  vbpa-parvw  VALUE  'WE',
          c_parvw3  TYPE  vbpa-parvw  VALUE  'ZT',
          c_kappl   TYPE  konv-kappl  VALUE  'V',
          c_kschl1  TYPE  konv-kschl  VALUE  'ZBP1',
          c_kschl2  TYPE  konv-kschl  VALUE  'ZNAX',
          c_kschl3  TYPE  konv-kschl  VALUE  'ZNAA',
          c_psize   TYPE  i           VALUE  65535.
    *&      SELECTION-SCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE  text-001.
    SELECT-OPTIONS:
        s_vbeln  FOR  ws-vbeln NO INTERVALS NO-EXTENSION OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK a.
    *&      AT SELECTION-SCREEN.
    AT SELECTION-SCREEN.
      PERFORM validate_screen_entries.
    START-OF-SELECTION.
      PERFORM gather_quot_data.
      PERFORM gather_mat_data.
      PERFORM gather_ansi_data.
      PERFORM gather_customer_data.
      PERFORM gather_price_data.
      PERFORM process_consolidate_data.
    TOP-OF-PAGE.
      PERFORM write_header_data.
      PERFORM write_column_heading.
    END-OF-SELECTION.
      SET PF-STATUS 'XLS'.
      PERFORM display_output.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'XLS'.
          LOOP AT iresult INTO result_wa.
            CLEAR excel_wa.
            excel_wa-posnr       = result_wa-posnr.
            excel_wa-matnr       = result_wa-matnr.
            excel_wa-pmatn       = result_wa-pmatn.
            excel_wa-zansicat    = result_wa-zansicat.
            excel_wa-zansigrd    = result_wa-zansigrd.
            excel_wa-zcurrvaltnarea = result_wa-zcurrvaltnarea.
            excel_wa-zcurrcstusd = result_wa-zcurrcstusd.
            excel_wa-zzbrndnm    = result_wa-zzbrndnm.
            excel_wa-zqedscgrp   = result_wa-zqedscgrp.
            excel_wa-mstav       = result_wa-mstav.
            excel_wa-prodh       = result_wa-prodh.
            excel_wa-kwmeng      = result_wa-kwmeng.
            excel_wa-lprc        = result_wa-lprc.
            excel_wa-sprc        = result_wa-sprc.
            excel_wa-netpr       = result_wa-netpr.
            excel_wa-mrgn        = result_wa-mrgn.
            APPEND excel_wa TO iexcel.
          ENDLOOP.
          PERFORM set_up_xxl_structures.
          PERFORM download_xxl.
        WHEN OTHERS.
      ENDCASE.
      FREE: ivbpa, imat, ikna1, ivbap, ikonv, iresult, ws.
    *&      Form  set_up_xxl_structures
          text
    FORM set_up_xxl_structures.
      REFRESH: it_otext, it_sema, it_hkey, it_vkey.
      CLEAR:   result_wa, ivbpa_wa, it_otext, ws.
      MOVE  sy-repid  TO ws-title-repid.
      MOVE 'Section'  TO ws-title-reppart.
      WRITE sy-uzeit  TO ws-title-uzeit USING EDIT MASK '__:__'.
      MOVE  ws-title  TO ws-xxl-title.
      READ TABLE iresult INTO result_wa
                         WITH KEY vbeln = s_vbeln-low.
      READ  TABLE  ivbpa INTO ivbpa_wa
                         WITH KEY vbeln = s_vbeln-low
                                  parvw = 'AG'.
      CONCATENATE ivbpa_wa-kunnr '/'
                  ivbpa_wa-name1 INTO ws-soldto.
      CLEAR ivbpa_wa.
      READ  TABLE  ivbpa INTO ivbpa_wa
                         WITH KEY vbeln = s_vbeln-low
                                  parvw = 'WE'.
      CONCATENATE ivbpa_wa-kunnr '/'
                  ivbpa_wa-name1 INTO ws-shipto.
      CLEAR ivbpa_wa.
      READ  TABLE  ivbpa INTO ivbpa_wa
                         WITH KEY vbeln = s_vbeln-low
                                  parvw = 'ZT'.
      IF   ivbpa_wa-kunnr EQ space.
        CLEAR ivbpa_wa.
        READ  TABLE  ivbpa INTO ivbpa_wa
                           WITH KEY vbeln = s_vbeln-low
                                    parvw = 'AG'.
      ENDIF.
      CONCATENATE ivbpa_wa-kunnr '/'
                  ivbpa_wa-name1 INTO ws-tparent.
      DO.
        CLEAR: isema_wa, ihkey_wa, iotxt_wa, iptxt_wa, ivkey_wa.
        ASSIGN COMPONENT sy-index OF STRUCTURE hdtxt1_wa TO <hdtxt1_wa>.
        ASSIGN COMPONENT sy-index OF STRUCTURE hdtxt2_wa TO <hdtxt2_wa>.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
        CASE <hdtxt1_wa>.
          WHEN 'Quotation#'.
            <hdtxt2_wa> = 'Quotation#'.
          WHEN 'Quote Date'.
            <hdtxt2_wa> = 'Quote Date'.
          WHEN 'Rep Date'.
            <hdtxt2_wa> = 'Rep Date'.
          WHEN 'Pric List Typ & Currency'.
            <hdtxt2_wa> = 'Pric List Typ & Currency'.
          WHEN 'Sold To'.
            <hdtxt2_wa> = 'Sold To'.
          WHEN 'Ship To'.
            <hdtxt2_wa> = 'Ship To'.
          WHEN 'Top Parent'.
            <hdtxt2_wa> = 'Top Parent'.
          WHEN 'Sales Org/Sales Dist/CPA'.
            <hdtxt2_wa> = 'Sales Org/Sales Dist/CPA'.
          WHEN 'Net Sales'.
            <hdtxt2_wa> = 'Net Sales'.
        ENDCASE.
        MOVE : 1           TO ihkey_wa-col_no,
               sy-index    TO ihkey_wa-row_no,
               <hdtxt2_wa> TO ihkey_wa-col_name.
        APPEND ihkey_wa TO it_hkey.
        CLEAR ihkey_wa.
        CASE <hdtxt1_wa>.
          WHEN 'Quotation#'.
            <hdtxt2_wa> = result_wa-vbeln.
          WHEN 'Quote Date'.
            WRITE result_wa-erdat TO ws-dat1.
            <hdtxt2_wa> = ws-dat1.
          WHEN 'Rep Date'.
            WRITE result_wa-repdt TO ws-dat2.
            <hdtxt2_wa> = ws-dat2.
          WHEN 'Pric List Typ & Currency'.
            CONCATENATE result_wa-pltyp '/'
                        result_wa-waers INTO <hdtxt2_wa>.
          WHEN 'Sold To'.
            <hdtxt2_wa> = ws-soldto.
          WHEN 'Ship To'.
            <hdtxt2_wa> = ws-shipto.
          WHEN 'Top Parent'.
            <hdtxt2_wa> = ws-tparent.
          WHEN 'Sales Org/Sales Dist/CPA'.
            CONCATENATE result_wa-vkorg  '/'
                        result_wa-bzirk  '/'
                        ivbpa_wa-kvgr3
                        INTO <hdtxt2_wa>.
          WHEN 'Net Sales'.
            <hdtxt2_wa> = result_wa-netwr.
        ENDCASE.
        MOVE : 2           TO ihkey_wa-col_no,
               sy-index    TO ihkey_wa-row_no,
               <hdtxt2_wa> TO ihkey_wa-col_name.
        APPEND ihkey_wa TO it_hkey.
      ENDDO.
      DO.
        CLEAR: isema_wa, ihkey_wa, iotxt_wa, iptxt_wa, ivkey_wa.
        ASSIGN COMPONENT sy-index OF STRUCTURE sema_wa TO <sema_wa>.
        IF sy-subrc NE 0.
          ASSIGN COMPONENT sy-index OF STRUCTURE clhd_wa TO <clhd_wa>.
          IF sy-subrc EQ 0.
            MESSAGE e193 WITH 'OFIL Structures out of synch-Contact IT'.
          ENDIF.
          EXIT.
        ENDIF.
        ASSIGN COMPONENT sy-index OF STRUCTURE clhd_wa TO <clhd_wa>.
        IF NOT <sema_wa> EQ 'NOSHOW'.
          ADD 1 TO ws-xxl-tabix.
          MOVE: ws-xxl-tabix   TO isema_wa-col_no,
                <sema_wa>(3)   TO isema_wa-col_typ,
                <sema_wa>+3(3) TO isema_wa-col_ops,
                ws-xxl-tabix   TO isema_wa-col_src.
          APPEND isema_wa TO it_sema.
          IF ws-xxl-tabix LE ws-xxl-vrtkeys.
            MOVE: ws-xxl-tabix TO ivkey_wa-col_no,
                  <clhd_wa>    TO ivkey_wa-col_name.
            APPEND ivkey_wa TO it_vkey.
          ELSE.
            ADD 1 TO ws-xxl-attcols.
            MOVE: ws-xxl-attcols TO ihkey_wa-col_no,
                  10             TO ihkey_wa-row_no,
                  <clhd_wa>      TO ihkey_wa-col_name.
            APPEND ihkey_wa TO it_hkey.
          ENDIF.
        ENDIF.
      ENDDO.
    ENDFORM.                    " set_up_xxl_structures
    *&      Form  download_xxl
          text
         -->P_IHQEXCEL  text
    FORM download_xxl.  "TABLES  iexcel STRUCTURE excel_wa.
      DESCRIBE TABLE iexcel LINES ws-xxl-count.
      ws-xxl-from = 1.
      ws-xxl-to = c_psize.
      DO.
        IF ws-xxl-from GT ws-xxl-count.
          EXIT.
        ENDIF.
        IF ws-xxl-to GT ws-xxl-count.
          MOVE ws-xxl-count TO ws-xxl-to.
        ENDIF.
        ADD 1 TO ws-xxl-suffix.
        MOVE ws-xxl-suffix TO: ws-xxl-name+6(2),
                               ws-xxl-title+36(2).
        CALL FUNCTION 'XXL_FULL_API'
             EXPORTING
                  n_vrt_keys       = ws-xxl-vrtkeys
                  n_att_cols       = ws-xxl-attcols
                  n_hrz_keys       = ws-xxl-hrzkeys
                  data_starting_at = ws-xxl-from
                  data_ending_at   = ws-xxl-to
                  filename         = ws-xxl-name
                  header_1         = space
                  sema_type        = 'X'
                  so_title         = ws-xxl-title
             TABLES
                  data             = iexcel
                  hkey             = it_hkey
                  online_text      = it_otext
                  print_text       = it_ptext
                  sema             = it_sema
                  vkey             = it_vkey
             EXCEPTIONS
                  data_too_big     = 1
                  file_open_error  = 2
                  file_write_error = 3
                  inv_winsys       = 4
                  inv_xxl          = 5.
        CASE sy-subrc.
          WHEN 1.
            MESSAGE e193 WITH 'dim_mismatch_data'.
          WHEN 2.
            MESSAGE e193 WITH 'file_open_error'.
          WHEN 3.
            MESSAGE e193 WITH 'file_write_error'.
          WHEN 4.
            MESSAGE e193 WITH 'inv_winsys'.
          WHEN 5.
            MESSAGE e193 WITH 'inv_xxl'.
        ENDCASE.
        ADD c_psize TO: ws-xxl-from,
                                ws-xxl-to.
      ENDDO.
    ENDFORM.                    " download_xxl

    Hello Friend,
    You can use GUI_DOWNLOAD FM to get the excel header if that's the only specific requirement.
    [Download Excel including header |Download Excel including header;
    Hope this helps.
    BR,
    Suhas

  • SAP to excel download problem

    hi,
    i am trying to download my report'soutput to excel sheet which is not usual Microsoft excel buit it is OPEN OFFICE.the date format in report is DDMMYY but when downloading to OPEN OFFICE its taking as MMDDYY.so what can be done to retain the date format?
    Thanks in advance.

    hi,
    before coming to output change the date format in program dd.mm.yy, so you can down load that.
    Regards,
    Arjun.

Maybe you are looking for

  • I can not install iTunes on my Win 64 OS; it keeps getting an error

    Hello, I just got my new laptop and was trying to install iTunes 10.x (the newest version). I keep getting error any suggestions?

  • MackBook Air 13" and Samsung SyncMaster TA550 Monitor

    I have MacBook Air 13" and I try to set up Samsung TA550 27" monitor to work with it. Now my MacBook does not want to use the requested (by Samsung) resolution 1920 x 1080 but only pushes lower resolutions. How can get this solved? I connect it with

  • Memory leak on application undeploy.

    We're creating a Spring-based web app that is using a Tomcat 7.0.33 managed Oracle database pool. We're using the ojdbc6.jar to connect (Oracle 10g but migrating to 11g later). When our application is undeployed in Tomcat we get probable memory leak

  • Language Selection on winxp

    Hi! I have made 2 Frames . The frame1 have the main method and contain one textfield and a button. The frame2 contains only a textfied. In my windowsOS i use 2 languages english(default) and greek. When i am on frame1 and i write in english on textfi

  • Cannot access servlet in tomcat4

    I'm a newbie to server side java. Please guide me. Installed Apache2 and Tomcat4 in Win2K. The installation seems OK because the index pages of both apache and tomcat appear when accessed as localhost on browser. I wrote (in fact, copied from a tutor