Adding Headings to excel sheet

Hi all,
I'm using a .CSV format file for the import process in FDM. I want to give some headings to my sheet which should not cause any problem during import process. Now, I'm not using any kind of Headings in my .CSV format file except column names and my data. Please help me :)
Thanks in adv !

Hi put whatever headings you want in your file, it shouldn't be a problem. My sugesstion would be to make the first character of the first field a unique character like a '!' which isn't used as the starting character for other data rows. You can then do a check for this in the import format and Skip all lines that match that criteria.
Edited by: SH on Nov 17, 2011 11:33 AM

Similar Messages

  • Reg:Headings in Excel sheet

    Hi all,
    How to place headings in Excel sheet when we are downloading
    the item details. Can any one help me to resolve this problem.

    Hi Radhika ,
    Try like this
    PARAMETERS : p_dload TYPE rlgrap-filename.
    DATA : w_dload TYPE string.
    TYPES : BEGIN OF ty_kna1,      " structure
            kunnr TYPE kna1-kunnr,
            name1 TYPE kna1-name1,
            ort01 TYPE kna1-ort01,
            land1 TYPE kna1-land1,
            END OF ty_kna1.
    TYPES : BEGIN OF ty_head,      " structure
            kunnr(20),
            name1(20),
            ort01(20),
            land1(20),
            END OF ty_head.
    DATA :  it_kna1 TYPE TABLE OF ty_kna1.  "table to download records
    DATA : wa_hedtab TYPE ty_head,
           it_hedtab TYPE TABLE OF ty_head. " table for heading
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dload.
      PERFORM f_dload.
    START-OF-SELECTION.
      PERFORM f_header.
      PERFORM f_extract.
      PERFORM f_download.  " download file to presentation server
    *&      Form  f_dload
    FORM f_dload .
      CALL FUNCTION 'F4_FILENAME'
    * EXPORTING
    *   PROGRAM_NAME        = SYST-CPROG
    *   DYNPRO_NUMBER       = SYST-DYNNR
    *   FIELD_NAME          = ' '
        IMPORTING
          file_name           = p_dload
    ENDFORM.                    " f_dload
    *&      Form  f_extract
    FORM f_extract .
      SELECT kunnr
              name1
              ort01
              land1 FROM kna1 INTO TABLE it_kna1 .
    ENDFORM.                    " f_extract
    *&      Form  f_download
    FORM f_download .
      w_dload = p_dload.
      CALL FUNCTION 'GUI_DOWNLOAD'           " downloading header here
          EXPORTING
    *   BIN_FILESIZE                    =
            filename                        = w_dload
         filetype                        = 'ASC'
    *   APPEND                          = ' '
         write_field_separator           = 'X'
    *   HEADER                          = '00'
    *   TRUNC_TRAILING_BLANKS           = ' '
    *   WRITE_LF                        = 'X'
    *   COL_SELECT                      = ' '
    *   COL_SELECT_MASK                 = ' '
    *   DAT_MODE                        = ' '
    *   CONFIRM_OVERWRITE               = ' '
    *   NO_AUTH_CHECK                   = ' '
    *   CODEPAGE                        = ' '
    *   IGNORE_CERR                     = ABAP_TRUE
    *   REPLACEMENT                     = '#'
    *   WRITE_BOM                       = ' '
    *   TRUNC_TRAILING_BLANKS_EOL       = 'X'
    *   WK1_N_FORMAT                    = ' '
    *   WK1_N_SIZE                      = ' '
    *   WK1_T_FORMAT                    = ' '
    *   WK1_T_SIZE                      = ' '
    * IMPORTING
    *   FILELENGTH                      =
          TABLES
            data_tab                        = it_hedtab
    *   FIELDNAMES                      =
       EXCEPTIONS
         file_write_error                = 1
         no_batch                        = 2
         gui_refuse_filetransfer         = 3
         invalid_type                    = 4
         no_authority                    = 5
         unknown_error                   = 6
         header_not_allowed              = 7
         separator_not_allowed           = 8
         filesize_not_allowed            = 9
         header_too_long                 = 10
         dp_error_create                 = 11
         dp_error_send                   = 12
         dp_error_write                  = 13
         unknown_dp_error                = 14
         access_denied                   = 15
         dp_out_of_memory                = 16
         disk_full                       = 17
         dp_timeout                      = 18
         file_not_found                  = 19
         dataprovider_exception          = 20
         control_flush_error             = 21
         OTHERS                          = 22
      IF sy-subrc  NE 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'     "-----> downloading data here
        EXPORTING
    *   BIN_FILESIZE                    =
          filename                        = w_dload
       filetype                        = 'ASC'
       append                          = 'X'
       write_field_separator           = 'X'
    *   HEADER                          = '00'
    *   TRUNC_TRAILING_BLANKS           = ' '
    *   WRITE_LF                        = 'X'
    *   COL_SELECT                      = ' '
    *   COL_SELECT_MASK                 = ' '
    *   DAT_MODE                        = ' '
    *   CONFIRM_OVERWRITE               = ' '
    *   NO_AUTH_CHECK                   = ' '
    *   CODEPAGE                        = ' '
    *   IGNORE_CERR                     = ABAP_TRUE
    *   REPLACEMENT                     = '#'
    *   WRITE_BOM                       = ' '
    *   TRUNC_TRAILING_BLANKS_EOL       = 'X'
    *   WK1_N_FORMAT                    = ' '
    *   WK1_N_SIZE                      = ' '
    *   WK1_T_FORMAT                    = ' '
    *   WK1_T_SIZE                      = ' '
    * IMPORTING
    *   FILELENGTH                      =
        TABLES
          data_tab                        = it_kna1
    *   FIELDNAMES                      =
    EXCEPTIONS
       file_write_error                = 1
       no_batch                        = 2
       gui_refuse_filetransfer         = 3
       invalid_type                    = 4
       no_authority                    = 5
       unknown_error                   = 6
       header_not_allowed              = 7
       separator_not_allowed           = 8
       filesize_not_allowed            = 9
       header_too_long                 = 10
       dp_error_create                 = 11
       dp_error_send                   = 12
       dp_error_write                  = 13
       unknown_dp_error                = 14
       access_denied                   = 15
       dp_out_of_memory                = 16
       disk_full                       = 17
       dp_timeout                      = 18
       file_not_found                  = 19
       dataprovider_exception          = 20
       control_flush_error             = 21
       OTHERS                          = 22
      IF sy-subrc  NE 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " f_download
    *&      Form  f_header
    FORM f_header .
      wa_hedtab-kunnr = 'Customer No'.
      wa_hedtab-name1 = 'Name'.
      wa_hedtab-ort01 = 'city'.
      wa_hedtab-land1 = 'Country'.
      APPEND wa_hedtab TO it_hedtab.
    ENDFORM.                    " f_header
    Thanks & Regards

  • Change Headings in Excell sheet in BSP Layout

    Hi,
    How to Change Headings in Excell sheet in BSP Layout?
    Thanks
    Srinivas

    Hi Anhubav,
    R/3 data sent to BW report -> excell sheet displaying in Bps layout in BSP Layout using Java script code Excell sheet layout headings are how to find out
    Thanks
    Srinivas

  • Add dynamic fields to excel sheet

    i need to o/p the data onto a excel sheet.But some of the fields are added at runtime.ie some of the fields cannot be known until runtime,For ex. for every bill_no there may exist one or more materials which r known at runtime and these if exist has to be added to the excel sheet on one line(one row).kindly let me know the procedure.Bill no is given in selection screen for data selection.

    i need to o/p the data onto a excel sheet.But some of the fields are added at runtime.ie some of the fields cannot be known until runtime,For ex. for every bill_no there may exist one or more materials which r known at runtime and these if exist has to be added to the excel sheet on one line(one row).kindly let me know the procedure.Bill no is given in selection screen for data selection.

  • Adding Multiple excel sheets

    Hi Experts,
    How i want to add multiple excel sheet in Xcelsius using liveoffice in single canvas.Hope i will expect good from you
    Regards,
    surigs

    Hi Surigs,
    Could you clarify what exactly you need? Do you mean adding multiple sheet? If yes, you can insert multiple sheet in the excel and add live office document.
    Thanks,
    Amit

  • To Mak the headings Bold in Excel sheet.

    Hi All,
         I am sending a mail to SAP inbox with an excel Sheet as an attachment.
         I am creating the Excel sheet Dynamically from the internal table,
         Now the Problem is the Headings i am putting in each colum are mixed with the data of the colums,
         So I have to make the headings<b> BOLD</b> or atleast I have to Differentiate them with the rest of the Data,
         Please Help me out in this,
    Thanx,   Girish.

    Hi Girish,
                 Check out the example.gs_font is marked in bold
    Code Part B.1 Data declarations
    REPORT zole_tutor_example_ms_word .
    *--Include for OLE-enabling definitions
    INCLUDE ole2incl .
    *--Global variables
    *--Variables to hold OLE object and entity handles
    DATA gs_word TYPE ole2_object . "OLE object handle
    DATA gs_documents TYPE ole2_object . "Documents
    DATA gs_actdoc TYPE ole2_object . "Active document
    DATA gs_application TYPE ole2_object . "Application
    DATA gs_options TYPE ole2_object . "Application options
    DATA gs_actwin TYPE ole2_object . "Active window
    DATA gs_actpan TYPE ole2_object . "Active pane
    DATA gs_view TYPE ole2_object . "View
    DATA gs_selection TYPE ole2_object . "Selection
    <b>DATA gs_font TYPE ole2_object . "Font</b>
    DATA gs_parformat TYPE ole2_object . "Paragraph format
    DATA gs_tables TYPE ole2_object . "Tables
    DATA gs_range TYPE ole2_object . "Range handle for various ranges
    DATA gs_table TYPE ole2_object . "One table
    DATA gs_table_border TYPE ole2_object . "Table border
    DATA gs_cell TYPE ole2_object . "One cell of a table
    DATA gs_paragraph TYPE ole2_object . "Paragraph
    DATA gv_pos(5) TYPE n . "Position information for table
    Step 2   Creating the OLE object and get main entities to handle variables.
    START-OF-SELECTION .
    *--Creating OLE object handle variable
    CREATE OBJECT gs_word 'WORD.APPLICATION' .
    IF sy-subrc NE 0 .
    MESSAGE s000(su) WITH 'Error while creating OLE object!'.
    LEAVE PROGRAM .
    ENDIF .
    *--Setting object's visibility property
    SET PROPERTY OF gs_word 'Visible' = '1' .
    *--Opening a new document
    GET PROPERTY OF gs_word 'Documents' = gs_documents .
    CALL METHOD OF gs_documents 'Add' .
    *--Getting active document handle
    GET PROPERTY OF gs_word 'ActiveDocument' = gs_actdoc .
    *--Getting applications handle
    GET PROPERTY OF gs_actdoc 'Application' = gs_application .
    Code Part B.2 Creating the OLE object
    Step 3   Setting the measurement unit to ‘CM.’
    Code Part B.3 Setting measurement unit
    *--Setting the measurement unit
    GET PROPERTY OF gs_application 'Options' = gs_options .
    SET PROPERTY OF gs_options 'MeasurementUnit' = '1' . "CM
    Step 4   Some header text.
    Code Part B.4 Setting header content
    *--Getting handle for the selection which is here the character at the
    *--cursor position
    GET PROPERTY OF gs_application 'Selection' = gs_selection .
    GET PROPERTY OF gs_selection 'Font' = gs_font .
    GET PROPERTY OF gs_selection 'ParagraphFormat' = gs_parformat .
    *--Setting font attributes
    SET PROPERTY OF gs_font 'Name' = 'Arial' .
    SET PROPERTY OF gs_font 'Size' = '10' .
    SET PROPERTY OF gs_font 'Bold' = '0' . "Not bold
    SET PROPERTY OF gs_font 'Italic' = '1' . "Italic
    SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined
    *--Setting paragraph format attribute
    SET PROPERTY OF gs_parformat 'Alignment' = '2' . "Right-justified
    CALL METHOD OF gs_selection 'TypeText'
    EXPORTING
    #1 = 'This is an OLE example!'.
    *--Setting the view to the main document again
    SET PROPERTY OF gs_view 'SeekView' = '0' . "Main document view
    Step 5   Writing the title.
    Code Part B.5 Writing the title
    *--Reseting font attributes for the title
    SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .
    SET PROPERTY OF gs_font 'Size' = '16' .
    SET PROPERTY OF gs_font 'Bold' = '1' . "Bold
    SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic
    SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined
    *--Setting paragraph format attribute
    SET PROPERTY OF gs_parformat 'Alignment' = '1' . "Centered
    CALL METHOD OF gs_selection 'TypeText'
    EXPORTING
    #1 = text-000.
    *--Advancing cursor to the new line
    CALL METHOD OF gs_selection 'TypeParagraph' .
    Step 6   Writing some text.
    Code Part B.6 Writing some text
    *--Reseting font attributes for ordinary text
    SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .
    SET PROPERTY OF gs_font 'Size' = '12' .
    SET PROPERTY OF gs_font 'Bold' = '0' . "Not bold
    SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic
    SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined
    Please reward if useful.

  • Downloading a file to excel sheet

    To all forum people 
    While I download an internal table into an excel-sheet I would like to place a field name in the excel-sheet corresponding to each field in my internal table so how could this be done are there any function modules pertaining to this issue or is there any other method to do this.....
    murali

    Hi 
    The following is a sample code download to EXCEL file
    REPORT Sample
    NO STANDARD PAGE HEADING
    LINE-SIZE 180
           LINE-
            COUNT 90                                             0001-
            LINE-COUNT 65                                             "0001+
            MESSAGE-ID z1.
    TABLES: MARC.
    DATA : BEGIN OF i_marc OCCURS 0,
           matnr LIKE marc-matnr,            "Material
           werks LIKE marc-werks,            "Plant     
           mmsta LIKE marc-mmsta,            "MM/PP Status
           ekgrp LIKE marc-ekgrp,            "Purchasing Group
           dispo LIKE marc-dispo,            "MRP Controller
           plifz LIKE marc-plifz,            "PDT (Planned Dlv Time)
           webaz LIKE marc-webaz,            "GRT (Goods Receipt Time)
           fevor LIKE marc-fevor,            "Production Scheduler
           insmk LIKE marc-insmk,            "Post to Inspection Stock
           ladgr LIKE marc-ladgr,            "Loading Group
           kautb LIKE marc-kautb,            "Automatic PO     Allowed
           kordb LIKE marc-kordb,            "Source List
           prctr LIKE marc-prctr,            "Profit Center
           lgpro LIKE marc-lgpro,            "Issue Storage Location
           abcin LIKE marc-abcin,            "Cycle Count Phys Inventory Ind
           sernp LIKE marc-sernp,            "Serial Number Profile
           lgfsb LIKE marc-lgfsb,            "Stor Loc for External Procure
           END OF i_marc.
    STRUCTURES DECLARATION
    DATA: BEGIN OF wf_msg.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF wf_msg.
    DATA : BEGIN OF rec_marc,
           matnr(18),
           z_delim1(1),
           werks(4),
           z_delim2(1),
           mmsta(2),
           z_delim3(1),
           ekgrp(3),
           z_delim4(1),
           dispo(3),
           z_delim5(1),
           plifz(3),
           z_delim6(1),
           webaz(3),
           z_delim7(1),
           fevor(3),
           z_delim8(1),
           insmk(1),
           z_delim9(1),
           ladgr(4),
           z_delim10(1),
           kautb(1),
           z_delim11(1),
           kordb(1),
           z_delim12(1),
           prctr(10),
           z_delim13(1),
           lgpro(4),
           z_delim14(1),
           abcin(1),
           z_delim15(1),
           sernp(4),
           z_delim16(1),
           lgfsb(4),
           z_delim17(1),
           END OF rec_marc.
    VARIABLES DECLARATION
      DATA: w_lines   like sy-tabix,
            w_records like sy-tabix.
    ****DELIMETERS DECLARATION
      DATA: p_del  type c  value ',',        "delimeter
            p_del1 type c  value ';'.        "delimeter
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:
      s_matnr FOR marc-matnr,
      s_werks FOR marc-werks,
      s_mmsta FOR marc-mmsta,
      s_ekgrp FOR marc-ekgrp,
      s_dispo FOR marc-dispo,
      s_plifz FOR marc-plifz,
      s_webaz FOR marc-webaz,
      s_fevor FOR marc-fevor,
      s_insmk FOR marc-insmk,
      s_ladgr FOR marc-ladgr,
      s_kautb FOR marc-kautb,
      s_kordb FOR marc-kordb,
      s_prctr FOR marc-prctr,
      s_lgpro FOR marc-lgpro,
      s_abcin FOR marc-abcin,
      s_sernp FOR marc-sernp,
      s_lgfsb FOR marc-lgfsb.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION SCREEN FOR DOWN LOAD OPTION
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    PARAMETERS:
      r_list  radiobutton group a1,
    p_del   default ',',                  "delimeter
    DATA: p_filePC TYPE rlgrap-filename value 'C:\zmarc.xls',
          typ TYPE rlgrap-filetype value 'DAT',
          fname TYPE rlgrap-filename,
          ftype TYPE rlgrap-filetype,
          fsize TYPE i.
    SELECTION-SCREEN END OF BLOCK blk2.
    START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM get_data.
    END-OF-SELECTION
    END-OF-SELECTION.
    if r_list = 'X'.
        PERFORM output_list.
      elseif r_dldPC = 'X'.
        PERFORM download_file_PC.
      endif.
    *&      Form  get_data
          Get data from table MARC
    FORM get_data.
    CLEAR: i_marc. REFRESH: i_marc.
      SELECT matnr
             werks
             mmsta
             ekgrp
             dispo
             plifz
             webaz
             fevor
             insmk
             ladgr
             kautb
             kordb
             prctr
             lgpro
             abcin
             sernp
             lgfsb
        INTO TABLE i_marc
           FROM marc
             WHERE matnr IN s_matnr
             AND werks IN s_werks
             AND mmsta IN s_mmsta
             AND ekgrp IN s_ekgrp
             AND dispo IN s_dispo
             AND plifz IN s_plifz
             AND webaz IN s_webaz
             AND fevor IN s_fevor
             AND insmk IN s_insmk
             AND ladgr IN s_ladgr
             AND kautb IN s_kautb
             AND kordb IN s_kordb
             AND prctr IN s_prctr
             AND lgpro IN s_lgpro
             AND abcin IN s_abcin
             AND sernp IN s_sernp
             AND lgfsb IN s_lgfsb.
    ENDFORM.                    " get_data
    *&      Form  output_list
          Output List with Column Headings
    FORM output_list.
      CLEAR: w_lines.
      DESCRIBE TABLE i_marc LINES w_lines.
      if w_lines gt 0.
        ULINE.
        WRITE:/28  'MM/PP',
              38  'MRP',
              48  'Prod',
              58  'Purch',
              68  'Profit',
              80  'Planned',
              92  'GR',
              100 'Post to',
              114 'Auto',
              122 'Source',
              132 'Issue',
              140 'CC Phys',
              150 'Loading',
              160 'Serial No',
              172 'SLoc'.
        WRITE:/1  'Material',
              20  'Plant',
              28  'Status',
              38  'Ctrlr',
              48  'Sched',
              58  'Grp',
              68  'Ctr',
              80  'Dlv. Time',
              92  'Time',
              100 'Insp. Stock',
              114 'PO',
              122 'List',
              132 'SLoc',
              140 'Indicator',
              150 'Group',
              160 'Profile',
              172 'for EP'.
        ULINE.
        LOOP AT i_marc.
          WRITE:/   i_marc-matnr,
                20  i_marc-werks.
          set left scroll-boundary." Added to keep the left 2 columns fixed
                                   while viewing the list online
          WRITE:28  i_marc-mmsta,
                38  i_marc-dispo,
                48  i_marc-fevor,
                58  i_marc-ekgrp,
                68  i_marc-prctr,
                80  i_marc-plifz,
                92  i_marc-webaz,
                100 i_marc-insmk,
                114 i_marc-kautb,
                122 i_marc-kordb,
                132 i_marc-lgpro,
                140 i_marc-abcin,
                150 i_marc-ladgr,
                160 i_marc-sernp,
                172 i_marc-lgfsb.
        ENDLOOP.
        ULINE.
      endif.
    ENDFORM.                    " output_list
    *&      Form  download_file_PC
          Download file to Local directory on PC
    FORM download_file_PC.
    CLEAR: w_lines, w_records.
      DESCRIBE TABLE i_marc LINES w_lines.
      if w_lines gt 0.
    Download file
        PERFORM open_file using p_filePC.
        PERFORM output_file_PC.
        PERFORM close_file using p_filePC.
        PERFORM write_summary.
      endif.
    ENDFORM.                    " download_file_PC
    *&      Form  write_summary
    FORM write_summary.
      write : / '******************************************************'.
    write : / '****     PROGRAM IS ENDED SUCCESSFULLY           **'.0001-
      write : / '****   PROGRAM HAS ENDED SUCCESSFULLY         *****'."0001+
      write : / '******************************************************'.
      skip.
      write : /  'No. of recds written  :', 38 w_records.
      skip.
      if r_dldUx = 'X'.
        write : /  'Output file name : ' , p_fileUX.
      elseif r_dldPC = 'X'.
        write : /  'Output file name : ' , p_filePC.
      endif.
      skip.
      write : / '******************************************************'.
    ENDFORM.                    " write_summary
    *&      Form  open_file
          text
         -->P_P_FILEUX  text
    FORM open_file USING output_file.
      OPEN DATASET output_file FOR OUTPUT IN TEXT MODE.
      if sy-subrc <> 0.
    Send technical message
        CLEAR wf_msg.
        wf_msg-msgid  = 'ZB'.
        wf_msg-msgnr  = '003'.
        wf_msg-msgtyp = 'E'.
        wf_msg-msgv1  = output_file.
        CALL FUNCTION 'Z_ERROR'
             EXPORTING
                  msg    = wf_msg
                  pid    = sy-cprog
             EXCEPTIONS
                  others = 1.
      endif.
    ENDFORM.                    " open_file
    *&      Form  close_file
          Close File
    FORM close_file USING    output_file.
      close dataset output_file.
      if sy-subrc <> 0.
    Send technical message
        clear wf_msg.
        wf_msg-msgid  = 'Z3'.
        wf_msg-msgnr  = '003'.
        wf_msg-msgtyp = 'E'.
        wf_msg-msgv1  = output_file.
        call function 'Z_ERROR'
             EXPORTING
                  msg    = wf_msg
                  pid    = sy-cprog
             EXCEPTIONS
                  others = 1.
      endif.
    ENDFORM.                    " close_file
    *&      Form  output_file_PC
          Write Data to Local PC File
    FORM output_file_PC.
    DATA: BEGIN OF i_PCFile OCCURS 0,
              rec(2000) TYPE C,
          END OF i_PCFile.
      data: dload_record(1000).
      DATA: flength TYPE i.
    Transfer Header Line
      clear: dload_record.
      concatenate 'Material' 'Plant' 'MM/PP Status' 'Purch Grp.' 'MRP Ctrl.'
                  'Planned Dlv. Time' 'GR Time' 'Prod Sched'
                  'Post to Insp. Stock''Loading Group''Auto PO'
                  'Source List''Profit Ctr.' 'Issue SLoc''CC Phys Indicator'
                  'Serial No Profile' 'SLoc for EP'
                   into dload_record
                   separated by p_del.
      condense dload_record no-gaps.
      i_PCFile-rec = dload_record.
      append i_PCFile.
      clear i_PCFile.
    Transfer Data
      loop at i_marc.
        w_records = w_records + 1.
        clear: rec_marc, dload_record.
        move-corresponding i_marc to rec_marc.
        move p_del to:  rec_marc-z_delim1, rec_marc-z_delim2,
                        rec_marc-z_delim3, rec_marc-z_delim4,
                        rec_marc-z_delim5, rec_marc-z_delim6,
                        rec_marc-z_delim7, rec_marc-z_delim8,
                        rec_marc-z_delim9, rec_marc-z_delim10,
                        rec_marc-z_delim11,rec_marc-z_delim12,
                        rec_marc-z_delim13,rec_marc-z_delim14,
                        rec_marc-z_delim15,rec_marc-z_delim16,
                        rec_marc-z_delim17.
        move rec_marc to dload_record.
        condense dload_record no-gaps.
        i_PCFile-rec = dload_record.
        append i_PCFile.
        clear i_PCFile.
      endloop.
      IF p_filePC NE SPACE.
        CALL FUNCTION 'DOWNLOAD'
             EXPORTING
                  filename            = p_filePC
                  filetype            = typ
             IMPORTING
                  act_filename        = fname
                  act_filetype        = ftype
                  filesize            = fsize
             TABLES
                  data_tab            = i_PCFile
             EXCEPTIONS
                  invalid_filesize    = 1
                  invalid_table_width = 2.
        IF SY-SUBRC NE 0.
          WRITE 'File can not be opened'.
        ENDIF.
    Begin 0001+
      Set PC Filename to whatever is returned from the Function Module, to
      display later
        p_filePC = fname.
    End 0001+
      ELSE.
        WRITE:/ 'Please Enter File Name'.
      ENDIF.
    ENDFORM.                    " output_file_PC
    if it helps please reward points
    Regards
    Prabhakar

  • Can we generate output of a report in an Excel Sheet?

    Hi All,
      Can anyone tell me how to generate output of a report in an Excel Sheet format?
    Thanks in advance,
    Jasmine.

    hi,
    try this sample...
    data: begin of itab occurs 0,
          vbeln like vbak-vbeln,
          posnr like vbap-posnr,
          end of itab.
    select vbeln
           posnr
           from vbap
           up to 20 rows
           into table itab.
    * EXCEL sheet using OLE automation.
    INCLUDE OLE2INCL.
    * handles for OLE objects
    DATA: H_EXCEL TYPE OLE2_OBJECT,        " Excel object
          H_WORK  TYPE OLE2_OBJECT,
          H_SHEET TYPE OLE2_OBJECT,
          H_CELL  TYPE OLE2_OBJECT,
          V_COL   LIKE SY-TABIX.     " column number of the cell
    DATA:
      V_STEP(30),
      V_FILE LIKE RLGRAP-FILENAME.
    * tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
    *           PERCENTAGE = 0
               TEXT       = 'Creating Excel...'
           EXCEPTIONS
                OTHERS     = 1.
    * start Excel
      V_STEP = 'Starting Excel'.
      CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
      PERFORM ERR_HDL.
      SET PROPERTY OF H_EXCEL  'Visible' = 1.
      CALL METHOD OF H_EXCEL 'APPEND'
        EXPORTING  #1 = 'D:SappdfABAP Trainingsheettr.xls'.
    *  PERFORM ERR_HDL.
    * tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
    *           PERCENTAGE = 0
               TEXT       = 'Adding Data to Excel...'
           EXCEPTIONS
                OTHERS     = 1.
    * Get the list of workbooks
      V_STEP = 'Preaparing Excel'.
      CALL METHOD OF H_EXCEL 'WORKBOOKS' = H_WORK.
      PERFORM ERR_HDL.
    ** Add new workbook (create a file)
      CALL METHOD OF H_WORK 'ADD'.
      PERFORM ERR_HDL.
    * Get the created worksheet
    ************************Sheet Number
      CALL METHOD OF H_EXCEL 'WORKSHEETS' = H_SHEET EXPORTING #1 = 3.
    ************************Sheet Number
      PERFORM ERR_HDL.
    * Activate (select) the first sheet
      CALL METHOD OF H_SHEET 'ACTIVATE'.
      PERFORM ERR_HDL.
    * tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
    *           PERCENTAGE = 0
               TEXT       = 'Adding Data to Excel...'
           EXCEPTIONS
                OTHERS     = 1.
    * output column headings to active Excel sheet
      V_STEP = 'Adding data to Excel'.
      LOOP AT ITAB.
        V_COL = SY-TABIX.
        PERFORM FILL_CELL USING 1 V_COL ITAB-vbeln.
        PERFORM FILL_CELL USING 2 V_COL ITAB-posnr.
      ENDLOOP.
      V_STEP = 'Releasing Excel'.
      FREE OBJECT H_EXCEL.
      PERFORM ERR_HDL.
      H_EXCEL-HANDLE = -1.
    *&      Form  ERR_HDL
    *       text
    *  -->  p1        text
    FORM ERR_HDL.
      IF SY-SUBRC <> 0.
        WRITE: / 'Error in processing Excel File:', V_STEP.
        STOP.
      ENDIF.
    ENDFORM.                    " ERR_HDL
    *&      Form  FILL_CELL
    *       text
    *      -->P_1      text
    *      -->P_1      text
    *      -->P_1      text
    FORM FILL_CELL USING  ROW COL VAL.
      CALL METHOD OF H_EXCEL 'Cells' = H_CELL
                     EXPORTING #1 = ROW #2 = COL.
      PERFORM ERR_HDL.
      SET PROPERTY OF H_CELL 'Value' = VAL .
      PERFORM ERR_HDL.
    ENDFORM.                    " FILL_CELL
    regards
    satesh

  • Excel sheet with tabs

    Hi all,
    I have an excel sheet with 2 spread sheets. 1 hidden and other visible.
    1) How to read the excel so that the hidden fields dont come into the internal table in which the data is read?
    2) when the data is read from the visible tab of the excel sheet, data from hidden tab is also getting added in the internal table.
    How to avoid it?
    Useful answers will be rewarded with points.
    please help!!!

    Hi,
    If you have 2 tabs in your excel sheet. Open one tab which you want to process save it. Now it should be process active tab only.
    thanks,
    Sriram.

  • In excel sheet tab name is not coming-urgent

    hi all,
    one small rewquirement. if u run this test program it opens a excel sheet which contains signle tab. here tab name is not coming. i dont no hot to display tabname here.anybody can  make the changes and send me the code.
    i am sending my code below.
    thanks,
    maheedhar.t
    REPORT  ytestvij MESSAGE-ID zv.
    TABLES sscrfields.
    TYPE-POOLS: icon.
    TYPES : BEGIN OF zfnames_ds,
            reptext TYPE reptext,
            END OF zfnames_ds.
    TYPE-POOLS ole2 .
    DATA: wa_fntxt TYPE smp_dyntxt.
    DATA : wa_t75_booking TYPE zvt75_booking_h,
            t_t75_booking TYPE STANDARD TABLE OF zvt75_booking_h.
    DATA : wa_fields TYPE dfies,
            t_fields TYPE STANDARD TABLE OF dfies.
    DATA : wa_fnames TYPE zfnames_ds,
            t_fnames TYPE STANDARD TABLE OF zfnames_ds.
    handles for OLE objects
    DATA: h_excel TYPE ole2_object,        " Excel object
          h_mapl TYPE ole2_object,         " list of workbooks
          h_map TYPE ole2_object,          " workbook
          h_zl TYPE ole2_object,           " cell
          h_f TYPE ole2_object.            " font
    DATA  h TYPE i.
    DATA : lin TYPE i.
    data: excel       type ole2_object,
          application type ole2_object,
          books       type ole2_object,
          book        type ole2_object,
          sheet       type ole2_object,
          cell        type ole2_object,
          column      type ole2_object.
    PARAMETERS : p_input TYPE localfile.
    Add button to application toolbar
    SELECTION-SCREEN FUNCTION KEY 1.  "Will have a function code of 'FC01'
    INITIALIZATION.
    Add displayed text string to buttons
      wa_fntxt-icon_id = icon_xls.
      wa_fntxt-icon_text = 'Input File template'.
      wa_fntxt-quickinfo = 'T75 Header Data'.
      sscrfields-functxt_01 = wa_fntxt.
    AT SELECTION-SCREEN.
      IF sscrfields-ucomm = 'FC01'.
    do nothing
        PERFORM open_excel.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_input.
      PERFORM get_filename USING p_input.
    START-OF-SELECTION.
    *set pf-status 'ONE'.
    END-OF-SELECTION.
      WRITE : lin.
    *&      Form  GET_FILENAME
          text
    -->  p1        text
    <--  p2        text
    FORM get_filename USING p_file TYPE rlgrap-filename . "localfile.
      DATA : w_rc TYPE i.
      DATA : wa_file_table TYPE file_table ,
              t_file_table TYPE STANDARD TABLE OF file_table.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
       EXPORTING
         WINDOW_TITLE            =
         DEFAULT_EXTENSION       =
         DEFAULT_FILENAME        =
         FILE_FILTER             =
         INITIAL_DIRECTORY       =
         MULTISELECTION          =
        CHANGING
          file_table              = t_file_table[]
          rc                      = w_rc
         USER_ACTION             =
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          error_no_gui            = 3
          OTHERS                  = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT t_file_table INTO wa_file_table.
        p_file = wa_file_table-filename.
      ENDLOOP.
    ENDFORM.                    " GET_FILENAME
    *&      Form  open_excel
          text
    -->  p1        text
    <--  p2        text
    FORM open_excel.
    SELECT * FROM ZVT75_BOOKING_H
              INTO TABLE t_t75_booking
              UP TO 10 ROWS.
    start Excel
      CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
      PERFORM err_hdl.
      SET PROPERTY OF h_excel  'Visible' = 1.
      PERFORM err_hdl.
    get list of workbooks, initially empty
      CALL METHOD OF h_excel 'Workbooks' = h_mapl.
      PERFORM err_hdl.
    add a new workbook
      CALL METHOD OF h_mapl 'Add' = h_map.
      PERFORM err_hdl.
    output column headings to active Excel sheet
      PERFORM fill_cell USING 1 1 1 'Financial year'.
      PERFORM fill_cell USING 1 2 1 'Financial quarter'.
      PERFORM fill_cell USING 1 3 1 'Customer number'.
      PERFORM fill_cell USING 1 4 1 'Booking Year'.
      PERFORM fill_cell USING 1 5 1 'Financial quarter'.
      PERFORM fill_cell USING 1 6 1 'Contract type'.
      PERFORM fill_cell USING 1 7 1 'Sub Contract type'.
      PERFORM fill_cell USING 1 8 1 'Customer purchase order number'.
      PERFORM fill_cell USING 1 9 1 'Booking Amount'.
      PERFORM fill_cell USING 1 10 1 'Currency Key'.
    LOOP AT t_t75_booking into wa_t75_booking.
    copy items to active EXCEL sheet
       H = SY-TABIX + 1.
       PERFORM FILL_CELL USING H 1 0 wa_t75_booking-BOOKYEAR.
       PERFORM FILL_CELL USING H 2 0 wa_t75_booking-BOOKQTR.
       PERFORM FILL_CELL USING H 3 0 wa_t75_booking-.
       PERFORM FILL_CELL USING H 4 0 wa_t75_booking-BOOKYEAR.
       PERFORM FILL_CELL USING H 5 0 wa_t75_booking-BOOKQTR.
    ENDLOOP.
    disconnect from Excel
      FREE OBJECT h_excel.
      PERFORM err_hdl.
    ENDFORM.                    " open_excel
    *&      Form  ERR_HDL
          outputs OLE error if any                                       *
    -->  p1        text
    <--  p2        text
    FORM err_hdl.
    data test type sy-subrc.
    test = sy-subrc.
      IF test <> 0.
         Message e000(ZV) with 'Error in OLE-Automation:'.
        STOP.
      ENDIF.
    ENDFORM.                    " ERR_HDL
          FORM FILL_CELL                                                *
          sets cell at coordinates i,j to value val boldtype bold       *
    FORM fill_cell USING i j bold val.
      CALL METHOD OF h_excel 'Cells' = h_zl EXPORTING #1 = i #2 = j.
      set property of sheet 'Name'  = 'T75'.
      PERFORM err_hdl.
      SET PROPERTY OF h_zl 'Value' = val .
      PERFORM err_hdl.
      GET PROPERTY OF h_zl 'Font' = h_f.
      PERFORM err_hdl.
      SET PROPERTY OF h_f 'Bold' = bold .
      PERFORM err_hdl.
    ENDFORM.

    Hi,
    Look at the below thread, i posted complete code in this one, just copy that Program and past in your SAP and run the Program, it will create 3 sheets with the names also, then look at the Sheet name in the code, you will understand where to add the code
    Re: format an excel
    Regards
    Sudheer

  • How to open and read Excel Sheet from SharePoint 2013 Document Library using C# Visual Studio 2012

    Hi,
    To achieve these are the steps that I had followed :
    1. Add the document Library path into Central Admin -> Application Mgmt -> Manage Service App -> Excel Service App -> Trusted File Locations
    2. Add Documnet Library link to Trusted Connection Proivder
    3. Open Visual Studio as Run as Administrator
    4.Create an SharePoint 2013 Empty Project.
    5.Add Service Reference : http:\\<server>\_vti_bin/excelservice.asmx
    6.Service added successfully
    7.Create a class file and add the Service Reference namespace
    There is no such class as ExcelService to call. 
    Please let me know if somebody knows how to open the Excel file into C#(2012)  either using ExcelService or any other way to open. I tried old methods of Sharepoint 2010 server but it's not able to access classes.
    Requirement is :
    Need to read the excel sheet  from Document Library and transfer all data into DataTable.
    Please help asap. 

    Hi,
    This is the forum to discuss questions and feedback for Microsoft Office, I'll move your question to the SharePoint 2013 development forum
    http://social.msdn.microsoft.com/Forums/sharepoint/en-US/home?forum=sharepointdevelopment
    The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share their knowledge or learn from your interaction with us. Thank you for your understanding.
    George Zhao
    TechNet Community Support

  • Identifying text file names and importing on single Excel sheet

    Hey!
    Does anybody can help me with Excel VBA macro code in order to import data from text files into single Excel spread sheet? I want to create User Form where user can select start and end date of interest and macro code will import
    bunch of text files depending on user demands...
    My text files are named: 20130619004948DataLog.txt (meaning: yyyy mm dd hh mm ss). Text file contains recordings for each 15 seconds... It would be great to omit time tail (meaning that user can only specify date). Text files for one day of interest (I have
    text files covering whole year):
    20130619004948DataLog.txt
    20130619014948DataLog.txt
    20130619024948DataLog.txt
    20130619034948DataLog.txt
    20130619044948DataLog.txt
    20130619054948DataLog.txt
    20130619064948DataLog.txt
    20130619074948DataLog.txt
    20130619084948DataLog.txt
    20130619094948DataLog.txt
    20130619104948DataLog.txt
    20130619114948DataLog.txt
    20130619124948DataLog.txt
    20130619134948DataLog.txt
    20130619144948DataLog.txt
    20130619154948DataLog.txt
    20130619164948DataLog.txt
    20130619174948DataLog.txt
    20130619184948DataLog.txt
    20130619194948DataLog.txt
    20130619204948DataLog.txt
    20130619214948DataLog.txt
    20130619224948DataLog.txt
    20130619234948DataLog.txt
    Option Explicit
    Sub SearchFiles()
    Dim file As Variant
    Dim x As Integer
    Dim myWB As Workbook
    Dim WB As Workbook
    Dim newWS As Worksheet
    Dim L As Long, t As Long, i As Long
    Dim StartDateL As String
    Dim EndDateL As String
    Dim bool As Boolean
    bool = False ' to check if other versions are present
    StartDateL = Format(Calendar1, "yyyymmdd")
    EndDateL = Format(Calendar2, "yyyymmdd")
    ' I am using Userform asking user to select the date and time range of interet,
    ' However, I want to use only the date to filter the files having the name with that particular date
    file = Dir("c:\myfolder\") ' folder with all text files
    ' I need assistance with the following part:
    '1) How to filter and select the files between StartDateL and EndDateL_
    '(including files with that dates as well)?
    While (file <> "")
    If InStr(file, StartDateL) > 0 Then 'Not sure if the statements inside parenthesis is correct
    bool = True
    GoTo Line1:
    End If
    file = Dir
    Wend
    Line1:
    If Not bool Then
    file = "c:\myfolder\20130115033100DataLog.txt" 'Just for a test that the code works as intended
    End If
    'This part for the selected text files to be loaded on a single Excel Sheet.
    Set myWB = ThisWorkbook
    Set newWS = Sheets(1)
    L = myWB.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
    t = 1
    For x = 1 To UBound(file)
    Workbooks.OpenText Filename:=file(x), DataType:=xlDelimited, Tab:=True, Semicolon:=True, Space:=False, Comma:=False
    Set WB = ActiveWorkbook
    WB.Sheets(1).UsedRange.Copy newWS.Cells(t, 2)
    t = myWB.Sheets(1).Cells(Rows.Count, "B").End(xlUp).Row + 1
    WB.Close False
    Next
    myWB.Sheets(1).Columns(1).Delete
    Application.ScreenUpdating = False
    Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End Sub

    - Make a new Excel file
    - Open the VBA editor
    - Add a Userform
    - Place 2 text boxes and 1 command button on that form
    - Paste all code below into the code module of the form
    - Download this file:
    https://dl.dropboxusercontent.com/u/35239054/FileSearch.cls
    - In the VBA editor press CTRL-M and import that file
    - Save the Excel file in the directory that contain your text files
    - Run the form
    You can format the columns of the sheet as you like, e.g. column E:H should be a number with 5 decimal places. The top row can contain some headings. My code did not affect the formatting or the headings.
    Andreas.
    Option Explicit
    Private Sub UserForm_Initialize()
    'Just a sample
    Me.TextBox1.Value = FormatDateTime(Now, vbGeneralDate)
    Me.TextBox2.Value = FormatDateTime(Now, vbShortDate)
    End Sub
    Private Sub CommandButton1_Click()
    Dim StartDate As Date, EndDate As Date
    Dim FS As New FileSearch
    Dim R As Range
    Dim ThisFile As Variant
    Dim ThisDate As Date
    Dim Data As Variant
    Dim Count As Long
    'Be sure we have 2 dates
    If Not IsDate(Me.TextBox1.Value) Then
    Me.TextBox1.SetFocus
    MsgBox "No start date"
    Exit Sub
    End If
    If Not IsDate(Me.TextBox2.Value) Then
    Me.TextBox2.SetFocus
    MsgBox "No end date"
    Exit Sub
    End If
    'Convert to real dates
    StartDate = CDate(Me.TextBox1.Value)
    EndDate = CDate(Me.TextBox2.Value)
    'Time part given?
    If Fix(EndDate) = EndDate Then
    'No include all files for this day
    EndDate = EndDate + TimeSerial(23, 59, 59)
    End If
    'Correct order?
    If StartDate > EndDate Then
    ThisDate = EndDate
    EndDate = StartDate
    StartDate = ThisDate
    End If
    With FS
    'Same path as our file
    .LookIn = ThisWorkbook.Path
    .FileName = "*DataLog.txt"
    'Search all files sort by file name
    If .Execute(msoSortByFileName, msoSortOrderAscending) = 0 Then
    MsgBox "No data files found in " & .LookIn
    Exit Sub
    End If
    'Clear previous data
    Set R = Range("A2").CurrentRegion
    If R.Row < 2 Then Set R = R.Offset(1)
    R.ClearContents
    'Show the user that we are working
    Application.Cursor = xlWait
    DoEvents
    For Each ThisFile In .FoundFiles
    'Get the date from the file name
    ThisDate = Filename2Date(ThisFile)
    'Between our dates?
    If (ThisDate >= StartDate) And (ThisDate <= EndDate) Then
    'Import at the end of the data
    Set R = Range("A" & Rows.Count).End(xlUp).Offset(1)
    Data = ReadCSV(ThisFile)
    R.Resize(UBound(Data) + 1, UBound(Data, 2) + 1) = Data
    Count = Count + 1
    End If
    Next
    End With
    'Done
    Application.Cursor = xlDefault
    If Count = 0 Then
    MsgBox "No files match your dates"
    Else
    MsgBox Count & " files imported"
    'Hide the form
    Me.Hide
    End If
    End Sub
    Private Function Filename2Date(ByVal Fullname As String) As Date
    'Convert e.g "C:\20130601142648DataLog.txt" to the date "01.06.2013 14:26:48"
    Dim i As Long, j As Long
    i = InStrRev(Fullname, "\")
    If i > 0 Then Fullname = Mid(Fullname, i + 1)
    Fullname = JustNumbers(Fullname)
    If Len(Fullname) <> 14 Then Exit Function
    Filename2Date = _
    DateSerial(Mid(Fullname, 1, 4), Mid(Fullname, 5, 2), Mid(Fullname, 7, 2)) + _
    TimeSerial(Mid(Fullname, 9, 2), Mid(Fullname, 11, 2), Mid(Fullname, 13, 2))
    End Function
    Private Function JustNumbers(ByVal What As String) As String
    'Return only numbers from What (by Rick Rothstein)
    Dim i As Long, j As Long, Digit As String
    For i = 1 To Len(What)
    Digit = Mid$(What, i, 1)
    If Digit Like "#" Then
    j = j + 1
    Mid$(What, j, 1) = Digit
    End If
    Next
    JustNumbers = Left$(What, j)
    End Function
    Private Function ReadCSV(ByVal Fullname As String) As Variant
    'Read a CSV file into an array
    Const LDelim = vbCrLf 'Line delimiter
    Const FDelim = ";" 'Field delimiter
    Dim hFile As Integer
    Dim Buffer As String
    Dim Lines, Line, Data
    Dim i As Long, j As Long
    'Be sure the file exists
    If Dir(Fullname) = "" Then Exit Function
    'Open and read all data
    hFile = FreeFile
    Open Fullname For Binary Access Read As #hFile
    Buffer = Space(LOF(hFile))
    Get #hFile, , Buffer
    Close #hFile
    'Split into lines
    Lines = Split(Buffer, LDelim)
    'Split the first line and prepare the output
    'Note: I assume that all lines have the same number of fields
    Line = Split(Lines(0), FDelim)
    ReDim Data(0 To UBound(Lines), 0 To UBound(Line))
    For i = 0 To UBound(Lines)
    Line = Split(Lines(i), FDelim)
    For j = 0 To UBound(Line)
    'Parse the fields
    If IsDate(Line(j)) Then
    Data(i, j) = CDate(Line(j))
    ElseIf IsNumeric(Line(j)) Then
    Data(i, j) = CDbl(Line(j))
    Else
    Data(i, j) = Line(j)
    End If
    Next
    Next
    ReadCSV = Data
    End Function

  • How to set the Data types of the Excel sheet while exporting details to it.

    Hi All,
    We are trying to export some order details to the excel sheet from a jsp. It is working fine when the local system language is set to English.
    But when i change it to Russian. the details like Line Numbers(e.g: 1.1, 1.2, 1.3 and so on... ) are getting changed into some other data type(e.g: 01.янв, 02.янв, 03.янв and so on....).
    i guess this is mainly due to some data type mismatch, so i tried setting all the possible charset for response in the jsp, but could not succeeded.
    This is only for the details which or of decimal format, working fine for the details which are in String type. like Description, Item name etc...
    As it is high preference issue for our client, Please help me in this regard ASAP.
    Thanks & Regards,
    Praveen Reddy B

    hi Shiv..
    Its not an OAF page but it is from Apps only (i.e.Oracle iStore).
    we tried writing this:
    <%response.setContentType("application/vnd.ms-excel; charset=UTF-8");%>
    <%response.setHeader("Content-Disposition", "attachment; filename=downloadOrders.xls" );%>
    <head>
              <title>Logitech_iStore</title>
    <style>
    table {
    border-style: solid;
    table th.mainHeader {
                                            border-style: solid;
    background-color:#000099;
    border-color:#000000;
    color:#FFFFFF;
    font-family:Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:13pt;
    table th {
                                            border-style: solid;
    background-color:#6687C4;
    border-color:#000000;
    color:#FFFFFF;
    font-family:Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:12pt;
    table td.color1 {
                                            border-style: solid;
    background-color:#FFFFFF;
    border-color:#000000;
    color:#000000;
    font-family:"Times New Roman", Times, serif;
    font-weight:normal;
    font-size:12pt;
    table td.color2 {
                                            border-style: solid;
    background-color:#C0C0C0;
    border-color:#000000;
    color:#000000;
    font-family:"Times New Roman", Times, serif;
    font-weight:normal;
    font-size:12pt;
                                  table td {
                                            border-style: solid;
    background-color:#FFFFFF;
    border-color:#000000;
    color:#000000;
    font-family:"Times New Roman", Times, serif;
    font-weight:normal;
    font-size:12pt;
    </style>
    </head>
              <body>
              <%
                        /*BigDecimal resp_id=RequestCtx.getResponsibilityId();
                        String respIdParam="";
                        String respkey="";
                        if(resp_id!=null)
                        respIdParam=resp_id.toString();
                        out.println("respIdParam"+respIdParam);
                        logi.oracle.apps.ibe.util.LogiDAOImpl dao=new logi.oracle.apps.ibe.util.LogiDAOImpl();
                        respkey=dao.getRespKey(respIdParam);
                        out.println("respkey"+respkey);
              logi.oracle.apps.ibe.util.LogiOrderDetailsBean orderDetailsBean = new logi.oracle.apps.ibe.util.LogiOrderDetailsBean();
                        java.util.ArrayList ls = new java.util.ArrayList();
                        String resp_key=request.getParameter("respkey");
                        System.out.println(resp_key);
                        String noofDays=request.getParameter("noOfDays");
                        String qCustAcctId=request.getParameter("qCustAcctId");
                        logi.oracle.apps.ibe.util.LogiDAOImpl daoimpl=new logi.oracle.apps.ibe.util.LogiDAOImpl();
                        String decideTab=request.getParameter("decideTab");
                        String startDate=request.getParameter("startDate");
                        String endDate=request.getParameter("endDate");
                        String queryCondition=request.getParameter("queryCondition");
                        String queryOperator=request.getParameter("queryOperator");
                        String queryValue=request.getParameter("queryValue");
                        String queryDateValue=request.getParameter("queryDate");
                        System.out.println("queryDateValue"+queryDateValue);
    %>
                        <table cellspacing="1" cellpadding="1" width="100%" border="0" class="OraBGAccentDark">
    <tr>
    <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_ORD_NUM")%></th>
                                       <th>Customer Name</th>
                                       <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_ORD_DATE")%></th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_BOOKED_DATE")%></th>
                                  <th>Request Date</th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_ORD_STATUS")%></th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_ORD_PO")%></th>
                                  <th>Currency</th>                                                                 
                                            <th>Payment Terms</th>                                                                      <th>Freight Terms</th>
                                       <th>FOB</th>
                                            <th>Sales Channel</th>
                                            <th>Ship to Location</th>
                                            <th>Bill to Location</th>
                                            <th>SalesTerritory Country</th>
                                            <th>Order Type</th>
                                            <th>Order Total</th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_LINE_NUM")%></th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_ITEM")%></th>
                                            <th>Customer SKU</th>
                                            <th>Description</th>
                                            <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_QTY")%></th>
                                            <th>Shipped Quantity</th>
                                            <th>ScheduleShip Date</th>
                                            <th>Unit Price</th>
                                            <th>Extented Amount</th>
                                            <th>Taxes Total</th>
                                            <th>Freight Charges</th>
                                            <th>Case pack charge</th>
                                            <th>Charges Total</th>                                   
                                       <th><%=AOLMessageManager.getMessageSt("IBE","IBE_LGT_LINE_STATUS")%></th>
                                            <th>Ship Date</th>
                                            <th>Warehouse</th>
                                            <th>Tracking Number</th>
                                            <th>Waybill Number</th>
                                            <th>Delivery Number</th>
                                            <th>Pro Number</th>
                                            <th>Hold Applied</th>
                                            <th>Pallet Qty</th>
                                            <th>Pallet#</th>
                                            <th>Invoice Number</th>
                                            <th>Promo Number</th>
                                            <th>Ship Method</th>
    </tr>
    <%          
                             int pSiteid=0;
                             java.math.BigDecimal mSiteId=oracle.apps.ibe.util.RequestCtx.getMinisiteId();
                             if(mSiteId!=null)
                             pSiteid=mSiteId.intValue();
                             out.println("pSiteid"+pSiteid);
                   if(decideTab!=null && decideTab.trim().equalsIgnoreCase("days"))
                             if(qCustAcctId!=null)
                                       ls=daoimpl.downOrderDetails(qCustAcctId,noofDays,pSiteid);
                        else if(decideTab!=null && decideTab.trim().equalsIgnoreCase("dates"))
                             if(qCustAcctId!=null)
                                       ls=daoimpl.downOrderDateDetails(qCustAcctId,queryDateValue,startDate,endDate);
                        else if(decideTab!=null && decideTab.trim().equalsIgnoreCase("condition"))
                             if(qCustAcctId!=null)
                                       ls=daoimpl.downOrderConditionDetails(qCustAcctId,queryCondition,queryOperator,queryValue);
                        for(int i=0;i<ls.size();i++)
                             orderDetailsBean=(logi.oracle.apps.ibe.util.LogiOrderDetailsBean)ls.get(i);
                             String orderNumber= orderDetailsBean.getOrderNumber();          //Order Number
                             if(orderNumber==null)orderNumber="";                         
                             String customerName=orderDetailsBean.getCustomerName();          //Customer Name
                             if(customerName==null)customerName="";
                        String orderedDate=orderDetailsBean.getOrderDate();               //Order Date
                             if(orderedDate==null)orderedDate="";
                             String bookeddate= orderDetailsBean.getBookedDate();          //Booked Date
                             if(bookeddate==null)bookeddate="";
                             String requestdate= orderDetailsBean.getRequestDate();          //Requested Date
                             if(requestdate==null)requestdate="";
                             String orderstatus= orderDetailsBean.getOrderStatus();          //Order Status
                             if(orderstatus==null)orderstatus="";               
                             String ponumber= orderDetailsBean.getPoNumber();               //PO Number
                             if(ponumber==null)ponumber="";
                             String currency=orderDetailsBean.getCurrencyCode();               //Currency
                             if(currency==null)currency="";
                             String paymentterms= orderDetailsBean.getPaymentTerms();     //Payment Terms
                             if(paymentterms==null)paymentterms="";
                             String frieghtterms=orderDetailsBean.getFreightTerms();          //Freight Terms
                             if(frieghtterms==null)frieghtterms="";
                             String fobterms=orderDetailsBean.getFobTerms();                    //Fob Terms
                             if(fobterms==null)fobterms="";
                             String saleschannel=orderDetailsBean.getSalesTerms();          //Sales Channel
                             if(saleschannel==null)saleschannel="";
                             String billtoloc=orderDetailsBean.getBillToLocation();          // Bill to Location
                             if(billtoloc==null)billtoloc="";
                             String shiptoloc=orderDetailsBean.getShipToLocation();          //Ship To Location
                             if(shiptoloc==null)shiptoloc="";
                             String salesterr=orderDetailsBean.getSalesCountry();          // Sales Territory
                             if(salesterr==null)salesterr="";
                             String ordertype=orderDetailsBean.getOrderType();               // Order Type
                             if(ordertype==null)ordertype="";
                             String ordertotal=orderDetailsBean.getOrderTotal();               //Order Total
                             if(ordertotal==null)ordertotal="";
                             String linenumber=orderDetailsBean.getLinenumber();               //Line Number
                             if(linenumber==null)linenumber="";
                             String item= orderDetailsBean.getItem();                         //Item Name
                             if(item==null)item="";
                             String sku= orderDetailsBean.getCustomerSKU();               // Customer SKU
                             if(sku==null)sku="";
                             String desc= orderDetailsBean.getDescription();               //Item Description
                             if(desc==null)desc="";
                             desc = URLEncoder.encode(desc);                                        // Added by Sunil
                             desc = URLDecoder.decode(desc);
                             String qty=orderDetailsBean.getQty();                              //Ordered Quantity
                             if(qty==null)qty="";
                             String shippedqty=orderDetailsBean.getShippedQty();               //Shipped Quantity
                             if(shippedqty==null)shippedqty="";
                             String scheduleqty=orderDetailsBean.getScheduleDate();          //Schedule Date
                             if(scheduleqty==null)scheduleqty="";
                             String unitprice=orderDetailsBean.getUnitPrice();               //Unit Price
                             if(unitprice==null)unitprice="";
                             String xamount=orderDetailsBean.getXAmount();                    //Extended Amount
                             if(xamount==null)xamount="";
                             String taxestotal=orderDetailsBean.getTaxesTotal();               //Taxes Total
                             if(taxestotal==null)taxestotal="";
                             String freightcharges=orderDetailsBean.getFreightCharges();//Freight Charges
                             if(freightcharges==null)freightcharges="";
                             String palletcharges=orderDetailsBean.getPalletSurcharge();     //Pallet Charges
                             if(palletcharges==null)palletcharges="";
                             String chargestotal=orderDetailsBean.getChargesTotal();          //Charges Total
                             if(chargestotal==null)chargestotal="";
                             String linestatus=orderDetailsBean.getLinestatus();               //Line Status
                             if(linestatus==null)linestatus="";
                             String shipdate=orderDetailsBean.getShipDate();                    //Ship Date
                             if(shipdate==null)shipdate="";
                             String warehouse=orderDetailsBean.getWareHouse();               //Ware House
                             if(warehouse==null)warehouse="";
                             String trackingnumber=orderDetailsBean.getTrackingNumber();//Tracking Number
                             if(trackingnumber==null)trackingnumber="";
                             String waybill=orderDetailsBean.getWayBillnumber();               //Waybill Number
                             if(waybill==null)waybill="";
                             String deliverynumber=orderDetailsBean.getDeliveryNumber();     //Delivery Number
                             if(deliverynumber==null)deliverynumber="";
                             String pronumber=orderDetailsBean.getProNumber();               //Pro Number
                             if(pronumber==null)pronumber="";
                             String holdapplied=orderDetailsBean.getHoldApplied();          //Hold Applied
                             if(holdapplied==null)holdapplied="";
                             String palletqty=orderDetailsBean.getPalletQty();               //Pallet Qty
                             if(palletqty==null)palletqty="";
                             String pallethash=orderDetailsBean.getPalletHash();               //Pallet Hash
                             if(pallethash==null)pallethash="";
                             String invoicenumber=orderDetailsBean.getInvoiceNumber();               //invoice Number
                             if(invoicenumber==null)invoicenumber="";
                             String promonumber=orderDetailsBean.getPromoNumber();               //Promonumber
                             if(promonumber==null)promonumber="";
                             String shipmethod=orderDetailsBean.getShipMethod();               //Promonumber
                        if(shipmethod==null)shipmethod="";
                   %>
                   <tr>
                   <td><%=orderNumber%></td>
                   <td><%=customerName%></td>
                   <td><%=orderedDate%></td>
                   <td><%=bookeddate%></td>
                   <td><%=requestdate%></td>
                   <td><%=orderstatus%></td>
                   <td><%=ponumber%></td>
                   <td><%=currency%></td>
                   <td><%=paymentterms%></td>
                   <td><%=frieghtterms%></td>
                   <td><%=fobterms%></td>
                   <td><%=saleschannel%></td>
                   <td><%=billtoloc%></td>
                   <td><%=shiptoloc%></td>
                   <td><%=salesterr%></td>
                   <td><%=ordertype%></td>
                   <td><%=ordertotal%></td>
                   <td><%=linenumber%></td>
                   <td><%=item%></td>          
                   <td><%=sku%></td>
                   <td><%= desc %></td>
                   <td><%=qty%></td>
                   <td><%=shippedqty%></td>
                   <td><%=scheduleqty%></td>
                   <td><%=unitprice%></td>
                   <td><%=xamount%></td>
                   <td><%=taxestotal%></td>
                   <td><%=freightcharges%></td>
                   <td><%=palletcharges%></td>
                   <td><%=chargestotal%></td>
                   <td><%=linestatus%></td>
                   <td><%=shipdate%></td>
              <td><%=warehouse%></td>
                   <td><%=trackingnumber%></td>
                   <td><%=waybill%></td>
                   <td><%=deliverynumber%></td>
                   <td><%=pronumber%></td>
                   <td><%=holdapplied%></td>
                   <td><%=palletqty%></td>
                   <td><%=pallethash%></td>
                   <td><%=invoicenumber%></td>
                   <td><%=promonumber%></td>
                   <td><%=shipmethod%></td>
                   </tr>
                   <%     }
              %>
              </table>
              </body>
              </html>
    Please suggest the needful...
    Praveen Reddy

  • Download the ALV Report output into excel sheet or notepad

    Hi,
    how to downlaod the alv report out into excel sheet or notepad in a proper manner. program contain large number records....
    Thanks in advance!!!!
    Regards,
    kranthi.

    Hi
    Download a report to excel with format (border, color cell, etc) 
    Try this program...it may help you to change the font ..etc.
    Code:
    REPORT ZSIRI NO STANDARD PAGE HEADING.
    this report demonstrates how to send some ABAP data to an
    EXCEL sheet using OLE automation.
    INCLUDE OLE2INCL.
    handles for OLE objects
    DATA: H_EXCEL TYPE OLE2_OBJECT,        " Excel object
          H_MAPL TYPE OLE2_OBJECT,         " list of workbooks
          H_MAP TYPE OLE2_OBJECT,          " workbook
          H_ZL TYPE OLE2_OBJECT,           " cell
          H_F TYPE OLE2_OBJECT.            " font
    TABLES: SPFLI.
    DATA  H TYPE I.
    table of flights
    DATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE.
    *&   Event START-OF-SELECTION
    START-OF-SELECTION.
    read flights
      SELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS.
    display header
      ULINE (61).
      WRITE: /     SY-VLINE NO-GAP,
              (3)  'Flg'(001) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
              (4)  'Nr'(002) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
              (20) 'Von'(003) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
              (20) 'Nach'(004) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
              (8)  'Zeit'(005) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP.
      ULINE /(61).
    display flights
      LOOP AT IT_SPFLI.
      WRITE: / SY-VLINE NO-GAP,
               IT_SPFLI-CARRID COLOR COL_KEY NO-GAP, SY-VLINE NO-GAP,
               IT_SPFLI-CONNID COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
               IT_SPFLI-CITYFROM COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
               IT_SPFLI-CITYTO COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
               IT_SPFLI-DEPTIME COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP.
      ENDLOOP.
      ULINE /(61).
    tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
              PERCENTAGE = 0
               TEXT       = TEXT-007
           EXCEPTIONS
                OTHERS     = 1.
    start Excel
      CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
    PERFORM ERR_HDL.
      SET PROPERTY OF H_EXCEL  'Visible' = 1.
    CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'c:\kis_excel.xls'
    PERFORM ERR_HDL.
    tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
              PERCENTAGE = 0
               TEXT       = TEXT-008
           EXCEPTIONS
                OTHERS     = 1.
    get list of workbooks, initially empty
      CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
      PERFORM ERR_HDL.
    add a new workbook
      CALL METHOD OF H_MAPL 'Add' = H_MAP.
      PERFORM ERR_HDL.
    tell user what is going on
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
              PERCENTAGE = 0
               TEXT       = TEXT-009
           EXCEPTIONS
                OTHERS     = 1.
    output column headings to active Excel sheet
      PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
      PERFORM FILL_CELL USING 1 2 0 'Nr'(002).
      PERFORM FILL_CELL USING 1 3 1 'Von'(003).
      PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
      PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
      LOOP AT IT_SPFLI.
    copy flights to active EXCEL sheet
        H = SY-TABIX + 1.
        PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
        PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
        PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
        PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
        PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
      ENDLOOP.
    changes by Kishore  - start
    CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
      CALL METHOD OF H_EXCEL 'Worksheets' = H_MAPL." EXPORTING #1 = 2.
      PERFORM ERR_HDL.
    add a new workbook
      CALL METHOD OF H_MAPL 'Add' = H_MAP  EXPORTING #1 = 2.
      PERFORM ERR_HDL.
    tell user what is going on
      SET PROPERTY OF H_MAP 'NAME' = 'COPY'.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
         EXPORTING
              PERCENTAGE = 0
               TEXT       = TEXT-009
           EXCEPTIONS
                OTHERS     = 1.
    output column headings to active Excel sheet
      PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
      PERFORM FILL_CELL USING 1 2 0 'Nr'(002).
      PERFORM FILL_CELL USING 1 3 1 'Von'(003).
      PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
      PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
      LOOP AT IT_SPFLI.
    copy flights to active EXCEL sheet
        H = SY-TABIX + 1.
        PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
        PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
        PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
        PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
        PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
      ENDLOOP.
    changes by Kishore  - end
    disconnect from Excel
         CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING  #1 = 'C:\SKV.XLS'.
      FREE OBJECT H_EXCEL.
      PERFORM ERR_HDL.
          FORM FILL_CELL                                                *
          sets cell at coordinates i,j to value val boldtype bold       *
    FORM FILL_CELL USING I J BOLD VAL.
      CALL METHOD OF H_EXCEL 'Cells' = H_ZL EXPORTING #1 = I #2 = J.
      PERFORM ERR_HDL.
      SET PROPERTY OF H_ZL 'Value' = VAL .
      PERFORM ERR_HDL.
      GET PROPERTY OF H_ZL 'Font' = H_F.
      PERFORM ERR_HDL.
      SET PROPERTY OF H_F 'Bold' = BOLD .
      PERFORM ERR_HDL.
    ENDFORM.
    *&      Form  ERR_HDL
          outputs OLE error if any                                       *
    -->  p1        text
    <--  p2        text
    FORM ERR_HDL.
    IF SY-SUBRC <> 0.
      WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC.
      STOP.
    ENDIF.
    ENDFORM.                    " ERR_HDL
    Please note that this example maybe slow at filling the excel table
    (perhaps four fields per second on a 900 MHz machine - almost 30 seconds
    for a short example).
    To get the data on properties and methods - there is a bit of smoke and mirrors
    going on here; they are EXCEL properties and methods, not sap ones - so you need
    to look at excel help to determine how a particular function is structured. then
    build the block in sap, as shown in the example.
    If you only want to transfer the data to Excel like when you transfer the data from
    ALV to Excel simply use the Function Modules:
    XXL_SIMPLE_API
    If you want more modifications when you transfer it to Excel use:
    XXL_FULL_API

  • 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

Maybe you are looking for

  • CRYSTAL XI SOME PARAMETERS ARE MISSING VALUES

    I have a huge problem with parameters in crystal reports XI. Iam developing using jdeveloper 10g and a jndi connection I use th following code into my jsp the report filelds are set correctly and they HAVE values but after the execution of the follow

  • WebServices in GRC v10.0

    Hi all, I have three questions to WebServices regarding SAP GRC v10.0: 1. Is it possible with v10 to check permissions via WebServices (SAPGRC_AC_IDM_*) only with the RAR component? In v5.3 it was only possible, if CUP was installed too. 2. Contain t

  • Where to keep ECEPOI.dat file in oracle ecommerce gateway?

    Hi, Where to keep ECEPOI.dat file in oracle ecommerce gateway? krishna

  • Passing on request parameters

    This may seem rudimentary, but I couldn't find the answer in the forums. I'm wondering how I can get around this problem without setting a session parameter. Here"s the situation " you go to a page, passing in a request param " the next page stores t

  • Recapturing and replacing edited clips with incorrect aspect ratio

    My camera settings were wrong when I captured the video. I edited the clips and discovered my mistake later. I changed the settings and my video looks correct now. The timecode runs perfect on the tape without a break in time. I tried renaming the cl