Download Hierarchial List ALV  to excel

Hi all,
Please provide me the solution on using download button in Hierarchial List ALV to download to excel.The output of excel need to be exacted as the output of ALV (All header and items details).
Please suggest the solution and sample code ASAP.
Thanks and Regards.

Hello,
Find the code where method set_table_for_first_display of tree object (CL_GUI_ALV_TREE) used in your program,
and learn  table of tree from there :
CALL METHOD g_tree->set_table_for_first_display
EXPORTING
  i_structure_name    = g_structname
  is_hierarchy_header = g_hierarchy_header
CHANGING
  it_fieldcatalog     = g_fieldcat
  it_outtab           = it_result .   "<-- this table contains hierarchical data
And than download this table using class CL_GUI_FRONTEND_SERVICES
and methods FILE_SAVE_DIALOG and GUI_DOWNLOAD or function GUI_DOWNLOAD
you can find too many of examples in forum.

Similar Messages

  • Download data from ALV to excel issue

    Hi All,
    Could you please tell me if there has any restriction on ALV grid data download to excel? I've a report contains 68 columns and about 500 rows, I want to download the data using the standard menu list->export->save to local file. but after I download them, I found the first 65 columns display in one line and the rest columns display in next line, just like ALV do not allow too many characters in one row and have to switch to new line. I can hide some columns but it's very strange that even after i hide 3 columns to fit the 500 rows download, then if the rows increase, the same problem occurs.
    I searched the forum and in the thread Re: Export ALV in EXCEL Issue Mr. Suvajit provided a solution by using menu List->export->spreadsheet, it looks very good. But I still want to know how this happen and is there a standard way to download data with more than 65 columns to local file with extension .xls so that user can open it directly?
    PS: I'm using FM REUSE_ALV_GRID_DISPLAY and the SAP version is SAP ECC6 with kernal package SAPKB70103.
    Thank you very much.
    Best Regards,
    Jeff
    Edited by: Jeff_liu_2010 on Mar 10, 2011 7:21 AM

    Hi Jeff,
    Please check if following analysis is helpful to you.
    Analysis/Solution:
    When we export ALV data to excel worksheet, as sap notes say the maximum lenght allowed is 1023 charaters and the max no of columns supported is 90.
    (I never faced any issue related to no of columns as it worked fine for columns >90 too)
    Issue occured when row size of exported data gets more than 1023 character.
    Therefore the row data must not exceed 1023 character, otherwise column splits and moves to next row.
    One additional aspect generally missed is that:
    When data in any particular column changes it's length, alv header also changes its lengh (short text, medium text, long text; depending on the length of of the longest cell in the column)
    therefore even if you have total length of row less than 1023 character, there might be cases when your ALV header size exceeds this length.
    Reducing the header size (by forcing to use short text or specifying own header names) should resolve the issue.
    Regards,
    Parveen

  • To download a list output to excel sheet

    Hi All,
    I am running the transaction MD47 for Product Group Planning.
    I get a list output with as many as 90 columns.
    When I try to download the output into an excel (System > List > Save > Local File ) only the columns which appear on the screen are being downloaded. Does any one have pointers on how can I download the whole list into an excel?
    Regards,
    Karthik

    Hey Gabriel,
    I am doing good. How are you today?
    How do I do that?
    This is a list output not an ALV. I dint find any option to choose an ALV layout.
    Regards,
    Karthik

  • How to include a Header in Hierarchy List (ALV)?

    Hi Gurus,
    If we need to include any header in ALV Grid, then we generate an event and pass that header to TOP_OF_PAGE event. We do have I_CALLBACK_TOP_OF_PAGE parameter for the REUSE_ALV_GRID_DISPLAY function module.
    But how do I generate a Header for a Hierarchy List? I do not find any parameter for TOP_OF_PAGE event. Please help with inputs.
    Regards,
    Kiran

    Hi Kiran,
                The  following codes are very useful to you...
    If any problem let me know...
    REPORT  zxxxxxxxxxxxxxx    LINE-SIZE 220
                               LINE-COUNT 50(5).
    *&                       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  DISPLAYDETAILS                          *
    FORM DISPLAYDETAILS USING UCOMM LIKE SY-UCOMM
          SELFIELD TYPE SLIS_SELFIELD.
      IF SELFIELD-FIELDNAME = 'EBELN'.
        IF UCOMM = '&IC1'.
          READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
          PERFORM PORECDNG.
          CLEAR BDCDATA[].
        ENDIF.
      ELSE.
        IF SELFIELD-FIELDNAME = 'MATNR'.
          IF UCOMM = '&IC1'.
            READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
            PERFORM MMRECDNG.
            CLEAR BDCDATA[].
          ENDIF.
        ELSE.
          IF SELFIELD-FIELDNAME = 'VBELN'.
            IF UCOMM = '&IC1'.
              READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
              PERFORM SALESRECDNG.
              CLEAR BDCDATA[].
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    "DISPLAYDETAILS
                        FORM PORECDNG                                   *
    FORM PORECDNG.
    perform bdc_dynpro      using 'SAPMM06E' '0105'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RM06E-BSTNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RM06E-BSTNR'
                                  I_OUT-EBELN.
    perform bdc_dynpro      using 'SAPMM06E' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RM06E-BSTPO(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=AH'.
    perform bdc_field       using 'RM06E-EBELP'
                                  I_OUT-EBELP.
    perform bdc_field       using 'RM06E-TCSELFLAG(01)'
                                  'X'.
    perform bdc_transaction using 'ME23'.
    ENDFORM.                    "PORECDNG
                        FORM MMRECDNG                                   *
    FORM MMRECDNG.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RMMG1-MATNR'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                    I_OUT-MATNR.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MSICHTAUSW-DYTXT(01)'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=ENTR'.
      PERFORM BDC_FIELD       USING 'MSICHTAUSW-KZSEL(01)'
                                    'X'.
      PERFORM BDC_TRANSACTION USING 'MM03'.
    ENDFORM.                    "MMRECDNG
                        FORM SALESRECDNG                                *
    FORM SALESRECDNG.
      PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'VBAK-VBELN'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                                    I_OUT-VBELN.
      PERFORM BDC_TRANSACTION USING 'VA03'.
    ENDFORM.                    "SALESRECDNG
                     FORM BDC_TRANSACTION                               *
    FORM BDC_TRANSACTION USING TCODE.
      CALL TRANSACTION TCODE USING BDCDATA MODE 'E'.
    ENDFORM.                    "BDC_TRANSACTION
                           FORM BDC_DYNPRO                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM = PROGRAM.
      BDCDATA-DYNPRO = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_DYNPRO
                           INSERT FIELD                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDCDATA.
      BDCDATA-FNAM = FNAM.
      BDCDATA-FVAL = FVAL.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_FIELD
    *&                  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
    ..........................FOr Hierarchy List...................
    REPORT  Zxxxxxxxxxx NO STANDARD PAGE HEADING.
    **********DECLARING TABLES********************************************
    TYPE-POOLS: slis.
    TABLES: EKKO, "PO HEADER
            EKPO. "PO ITEM
    **********DECLARING DATA**********************************************
    DATA: ET_EKKO TYPE EKKO OCCURS 0 WITH HEADER LINE,
          ET_EKPO TYPE EKPO OCCURS 0 WITH HEADER LINE,
          ET_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
          ET_LAYOUT TYPE SLIS_LAYOUT_ALV,
          ET_KEYINFO TYPE SLIS_KEYINFO_ALV,
          ET_REPID LIKE SY-REPID.
    DATA: ET_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    DATA: ET_EVENTS TYPE SLIS_T_EVENT.
    **********SELECTION CRITERIA****************************************
    SELECTION-SCREEN BEGIN OF BLOCK RAD1 WITH FRAME TITLE TEXT-003.
    SELECT-OPTIONS: S_EBELN FOR ET_EKPO-EBELN OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK RAD1.
    INITIALIZATION.
      ET_KEYINFO-HEADER01 = 'EBELN'.
      ET_KEYINFO-ITEM01   = 'EBELN'.
      ET_SORT-FIELDNAME = 'EBELN'.
      ET_SORT-TABNAME     = '2'.
      ET_SORT-SPOS        = 1.
      ET_SORT-UP         = 'X'.
      ET_SORT-SUBTOT     = 'X'.
      APPEND ET_SORT.
      ET_SORT-FIELDNAME = 'EBELP'.
      ET_SORT-TABNAME     = '2'.
      ET_SORT-SPOS        = 1.
    APPEND ET_SORT.
      ET_FIELDCAT-FIELDNAME   = 'NETWR'.
      ET_FIELDCAT-TABNAME       = '2'.
      ET_FIELDCAT-OUTPUTLEN = 8.
      ET_FIELDCAT-DO_SUM       = 'X'.
      ET_FIELDCAT-HOTSPOT       = 'X'.
      APPEND ET_FIELDCAT.
    START-OF-SELECTION.
      SELECT EBELN BUKRS AEDAT ERNAM FROM EKKO INTO CORRESPONDING
             FIELDS OF TABLE ET_EKKO
             WHERE EBELN IN S_EBELN.
      SELECT * FROM EKPO INTO CORRESPONDING FIELDS
               OF TABLE ET_EKPO FOR ALL ENTRIES IN
               ET_EKKO WHERE EBELN = ET_EKKO-EBELN.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          I_STRUCTURE_NAME_HEADER = 'EKKO'
          I_STRUCTURE_NAME_ITEM   = 'EKPO'
          IS_KEYINFO              = ET_KEYINFO " The structure contains the
                                               " header and item table
                                               " field names which links the
                                               " the two tables(shared key)
          IS_LAYOUT               = ET_LAYOUT
          IT_FIELDCAT             = ET_FIELDCAT[]
          I_TABNAME_HEADER        = '1' " Name of the internal table in the
                                        " program containing the output data
                                        " of the highest hierarchy level
          I_TABNAME_ITEM          = '2' " Name of the internal table in the
                                        " program containing the output data
                                        " of the highest hierarchy level
          IT_EVENTS               = ET_EVENTS[]
          IT_SORT                 = ET_SORT[]
        TABLES
          T_OUTTAB_HEADER         = ET_EKKO " Header table with data to be
                                             " output
          T_OUTTAB_ITEM           = ET_EKPO. " Name of the internal table in
                                             " the program containing the
                                             " output data of the lowest
                                             "hierarchy level.
    Regards,,
    Satya Kumar..

  • Download ICONS from ALV to EXCEL

    Dear Friends,
    IS there a way of downloading the ICON image exactly
    from alv to EXCEL,right now,when the icon is downloaded
    from alv to the excel,i can only see ascii characters in
    the icon column in the excel.
    kind regards
    kaushik hegde

    Hi Jeff,
    Please check if following analysis is helpful to you.
    Analysis/Solution:
    When we export ALV data to excel worksheet, as sap notes say the maximum lenght allowed is 1023 charaters and the max no of columns supported is 90.
    (I never faced any issue related to no of columns as it worked fine for columns >90 too)
    Issue occured when row size of exported data gets more than 1023 character.
    Therefore the row data must not exceed 1023 character, otherwise column splits and moves to next row.
    One additional aspect generally missed is that:
    When data in any particular column changes it's length, alv header also changes its lengh (short text, medium text, long text; depending on the length of of the longest cell in the column)
    therefore even if you have total length of row less than 1023 character, there might be cases when your ALV header size exceeds this length.
    Reducing the header size (by forcing to use short text or specifying own header names) should resolve the issue.
    Regards,
    Parveen

  • One field is not downloading properly from ALV to EXCEL

    Hi,
    while downloading ALV out put to EXCEL sheet one field(CSTCTR) is not displaying properly it's truncating left and right side digits,
    I have used function REUE_ALV_GRID_DISPLAY
    FORM SUMMARY_REPORT .
      PERFORM BUILD_FIELDCATLOG.
      IF I_FINAL[] IS INITIAL.
        MESSAGE I000 WITH 'NO DATA EXIST'.
        EXIT.
      ENDIF.
      ST_SETTINGS-EDT_CLL_CB = 'X'.
      V_REPID = SY-REPID.
      SORT I_FINAL BY WERKS GEBNR PERNR.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM       = V_REPID
                I_GRID_SETTINGS          = ST_SETTINGS
               I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
               I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
                IT_SORT                 = IT_SORT[]
                IT_FIELDCAT              = IT_FLDCAT[]
                IT_EVENTS                = IT_EVENTS[]
           TABLES
                T_OUTTAB                 = I_FINAL[]
           EXCEPTIONS
                PROGRAM_ERROR            = 1
                OTHERS                   = 2.
    ENDFORM.           " alv_display  summary_report
    *&      Form  build_fieldcatlog
          text
    FORM BUILD_FIELDCATLOG.
    WA_FLDCAT-FIELDNAME = 'WERKS'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'PA'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '1'.
      WA_FLDCAT-KEY     = 'X'.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'GEBNR'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'LOC'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '2'.
      WA_FLDCAT-KEY     = 'X'.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'PERNR'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'SAP #'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '3'.
      WA_FLDCAT-KEY     = 'X'.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'ADPFN'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'ADP #'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '4'.
      WA_FLDCAT-KEY     = 'X'.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'PERID'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'SSN'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '5'.
      WA_FLDCAT-KEY     = 'X'.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'KOSTL'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'CSTCTR'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '6'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'NACHN'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'LAST NAME'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '7'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'VORNA'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'FORST NAME'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '8'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'HIREDATE'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'HAL DATE'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '9'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'VACDATE'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'VAC DATE'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '10'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'GBDAT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'BIRTHDT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '11'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'SENDAT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'SRDATE'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '12'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'SERADJDAT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'SVCADJDT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '13'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'TERMDATE'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'TERMDT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '14'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'MGTXT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'TERM REASON'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '15'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'GESCH'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = '***'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '16'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'RACKY'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'RACE'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '17'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'VTEXT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'VET STAT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '18'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'EXPAT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'EXPAT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '19'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'DISAB'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'DISAB'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '20'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'PTEXT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'STAT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '21'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'STELL'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'JOB'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '22'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'STLTX'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'JOB TITLE'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '23'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'PLANS'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'POSITION'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '24'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'PLSTX'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'POSITION T'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '25'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'AAPCT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'JOBGP'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '26'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'EEOCT'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'EEO'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '27'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'ZBAND'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'BAND'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '28'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'EEOEX'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'FLSA'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '29'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
    *WHEN DIVG
      WA_FLDCAT-FIELDNAME = 'BETRG'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'BW/HR'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '30'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'ANSAL'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'ANNSAL'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '31'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'WOSTD'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'HRS'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '32'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'ZBONPLAN'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'PLAN'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '33'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
      WA_FLDCAT-FIELDNAME = 'ZTARGET'.
      WA_FLDCAT-OUTPUTLEN   = '10'.
      WA_FLDCAT-SELTEXT_M = 'TGT'.
      WA_FLDCAT-TABNAME = 'I_FINAL'.
      WA_FLDCAT-COL_POS = '34'.
      WA_FLDCAT-KEY     = ' '.
      APPEND WA_FLDCAT TO IT_FLDCAT.
      CLEAR   WA_FLDCAT.
    ENDFORM.                    " BUILD_FIELD CATLOG

    Also make sure if the reference field name and reference table name in the field cat .
    There will be some fields where in when dropped to excel will not hold the field properties and may not download properly,In such cases pass the reference fileds to the field cat .
    In the field cat u r using,  pass this and check .
    WA_FLDCAT-FIELDNAME = ' '. "
    WA_FLDCAT-OUTPUTLEN = 'XX'.
    WA_FLDCAT-SELTEXT_M = 'XXXXXXXXXXXXXXXXXXx'.
    WA_FLDCAT-TABNAME = 'I_FINAL'.
    wa_fldcat- -
    >reference field name,   
    wa_fldcat----
    >reference table name
    WA_FLDCAT-COL_POS = '25'.
    WA_FLDCAT-KEY = ' '.
    APPEND WA_FLDCAT TO IT_FLDCAT.
    CLEAR WA_FLDCAT.
    Br,
    Vijay.

  • Using download button in ALV to download to excel

    Hi,
    Please provide me the solution on using download button in Hierarchial List ALV to download to excel.I need to download the Header and Item details in a single line (in one line)in the Excel sheet.
    Please suggest the solution and sample code ASAP.
    Thanks and Regards,
    Latha.

    Hi Rames,
    my mail id : [email protected]
    Thanks and Regards,
    Vidyullatha.

  • ALV TO EXCEL PROBLEM? ( 90 COLUMNS ALV CAN'T EXPORT TO EXCEL NORMALLY)

    HI ABAPERS,
    anyone have a alv that have over 90 columns and want to export to excel have experienced abnormal formating (like the header row show only up to 60 column and the rest show up in next row) and the data show in separate line.
    anyway can have a better format?
    also after 90 columns show up on alv, it can't show anymore except modify the layout in run time.
    can we do something before that?
    thanks & regards,
    HOWARD

    Hi HOWARD,
    My Report ouput having more than 90 columns in ALV, while downloading data from ALV to Excel sheet am facing alignment problem. (ie) the output column > 66 are appearing in next line of the excel sheet leads to improper alignment.
    Pls give me a solution as u had already come across this issue..
    Thank & Regards,
    Paramesh.

  • Problrn when downloas from ALV to excel

    Hi All.
    I am trying to download data from ALV to excel file, but only last pages are downloaded and not from frist pages?
    Can anyone tell me wht it is happening and what is the solution?
    Thanks.

    Hi PKB,
    My initial analysis of your query is as follows.
    You can test the same by debugging the report after pressing the send to excel report.  See the internal table is gettting deleted anywhere in between.  If yes analyse it is happening and correct it if possible.
    Let me know if any further help is required by providing further details.
    Regards,
    Gowri

  • Regarding Excel Download in Block list ALV

    Hi Abaper's,
    I am facing with one problem during downloading of the BlockList ALV.
    <b>If I click on the standart toolbar  'local file button '( ctrl + shift + F9) it is downloading the ALV data into the excel file but the ALV header information starts from column 1 and ALV data information starts from the 2nd column.</b>
    Please suggest me is it the expected functionality of the Block List ALV or I have written wrong code. Please suggest me.

    I think there is something wrong with the output...maybe you should check your fieldcatalog wheter it matches to the structure of your internal table of data you want to show.
    Normally you should get an output per column with the fieldnames in the first line starting with 1st column and the data starting in 2nd line starting with 1st col.
    hope that helps you off, please award if useful!
    Clemens

  • 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.

  • Missing data while download from ALV to Excel

    Hi Experts,
    After a report is generated to ALV list, I'm trying to download the report into an Excel file.
    Let's say there are 50 records, but in the Excel file only have 6 records, and the last record only have 1st 3 fields out of 14 containing the data and the rest is empty.
    I'm using MS Excel 2010, and my system is 4.6C. Not sure what has really gone wrong.
    Is there any solutions? Much appreciated for any suggestion and comments
    Thanks.

    Hi,
    You'll need to verify your excel data for special characters. These special characters cause inconsistencies in the downloaded data.
    Regards,
    Pranav.

  • How to download ALV  to Excel

    Hi all!
    Any body can guide me how to download records from ALV output to Excel,i have tried to downlowad using the Excel button which is coming as default in ALV display, but when i m clicking that Excel button ,i m getting the empty sheet with out data, what should i do?
    Thanks & Regards,
    palani

    Hello Raja,
    The standard icon should work!! Which icon are you using? there's one with the tool-tip text <b>Export</b>. That is the one to be used.
    If you are still not able to get that, then display the grid as a list and then use the standard menu option <i>System>List>Save-->Local File</i>.
    Hope that helps,
    Regards,
    Anand Mandalika.

  • ALV List output to Excel file

    Hi Friends,
      I want to save the ALV output as a excel file on local drive.
    From the ALV output, I am using menu path :  Views  --> Microsoft Excel (Ctrl + Shift + F7) to switch  from ALV to Excel mode.
    It is switched to excel mode but not showing any data in the columns?
    If I use the Path: List --> Export  --> Local File --> Spread Sheet --> Gave excel file name.
    Here, I am not able get data for all columns. Some columns are not being displayed.
    What is the problem in this? Is this coding error? Do we need to apply any OSS notes?
    Thanks in advance,
    Sreeni

    Hi soumya,
    I want to download from standard functionality only, that means I want to download using standard menu paths only.
    I have tried giving .csv file also, but not able to download all fields. It is missing first 4 fields and downloading all the remaining
    fields.
    Please try to through some light on it.
    Thanks in advance,
    Sreenivas reddy

  • Download from ALV to excel sheet.

    When i am downloading the Alv to excel sheet. I want to get the field descritption also in the excel sheet.

    Refer:
    https://forums.sdn.sap.com/click.jspa?searchID=14433981&messageID=3603627

Maybe you are looking for