ALV Report performance & export problem

Hi,
We have developed an complex ALV report which accesses the data from FI Tables like BKPF, BSEG, BSAK etc.,   There are almost 100 lac records in BSEG and every day around 20000 records are getting added to that.  Eventhough I have used specific search criteria, system is taking lot of time.  Due to this I forced to run the report in background.  In background also it is taking around 4 - 6 hours.
1) How can I improve the performance of the report.  Especially to access data from huge database table like BSEG with lot of conditions.  Any best practices
2) I want to have an option (at selection screen) to get the report directly saved in a Excel file at desired path. 
Please help me.
Thanks in advance,
Mallik

Hi Mallik,
     Already i faced this problem before. At that time i follow some precuations:
1) Check the estimation cost for that report with the basis people.
2) The selection fields mentionedin the select statement and fields order in the internal; table should match with order of Data base fields order.
3) Define type statements and then refer internal table to that types.
4) Define secondary indexes in the where condition properly.
5) Add BINARY SEARCH to read table statement.
6) if possible attach package size n to the select statement.
7) Avoid nested loops and nested selects.
8) After populating the final internal table free all the internal tables.
9) check how much time taking for each select statemnt through SY05.
Hope this helps you. reply for queries.
Regards,
Kumar.

Similar Messages

  • Alv report Print out Problem

    Hi Experts,
       I am having problem while taking print out of Alv report format. In that report, 1 column contains  Unit  Values.
    Eg.  Unit value - 'LE' , AFTER USING CONVERSION EXIT LOGIC it is converted into 'AU'  which is finally displayed in the Alv -Report display format. 
    while taking Print-out of that report , that field Unit Value 'AU' is Shown in this format  "****'.
    Please give me your Valuable Suggestions.
    Thanks and Regards
    BalaNarasimman M

    while defining filed catalog define the data type also
      clear l_fieldcat.
      l_fieldcat-fieldname  = 'MEINS'.
      l_fieldcat-datatype = 'UNIT'.
    l_fieldcat-no_out     = ' '.
      l_fieldcat-do_sum = 'X'.
      l_fieldcat-seltext_l  = 'UOM'.
      append l_fieldcat to p_fieldtab.
    may be it would help.
    anya

  • SAP NetWeaver Portal Crystal Reports PDF Export Problem

    Hallo all,
    We are working with BO Edge XI 3.1 with integration on SAP Netweaver Portal. The problem is that integrated in SAP Portal CR reports cannot be exported to PDF or printed out.
    I am using an URL iview with the parameter sOutputFormat=P to run the report.
    When I want to print out the report I get the warning message from Internet Explorer "The download of files from this page is for security reasons blocked. Click here..." --> Download the file. By clicking on the u201CDownload this fileu201D the report starts to run again. PDF export doesnu2019t happen.
    Did somebody have the same problem?
    Thanks a lot in advance!

    Hello Ingo,
    thanks a lot for Your help. I have already talked to my IT department and they are looking for the solution of this problem, too.
    Is there a documentation  about necessary settings in the browser to work with SAP NetWeaver Portal and Crystal reports?
    The problem is that on some clients the PDF export is working and on another clients not. The settings of IE seem to be equal.
    Regards,
    Katharina

  • Crystal Reports PDF Export problem

    Hi I'm using Crystal 8.5 for my reports in VB 6.0. We have intrepret as RTF in the report. Now when we export this report to PDF the nested bullets loose formatting. All bullets show up at the same level. Any idea how to fix this?
    Thanks
    Sudha

    Hello Ingo,
    thanks a lot for Your help. I have already talked to my IT department and they are looking for the solution of this problem, too.
    Is there a documentation  about necessary settings in the browser to work with SAP NetWeaver Portal and Crystal reports?
    The problem is that on some clients the PDF export is working and on another clients not. The settings of IE seem to be equal.
    Regards,
    Katharina

  • Custom Report .csv export problem

    I have set up a custom report so I can download a csv file with all orders starting 4/1/2014. It is working well except for one small hiccup. Whatever is in the very first position in the first row (the first column header) has a few weird control characters in it that hang things up when importing the file elsewhere. When I download the csv I have to open the csv, fix the first header by retyping it, and resave the file before I can import it into another application.
    For example, if the first header is Company Type, the csv includes it as
    "Company Type"
    If the first header is Name, it is in the CSV as
    "Name"
    Any idea why this is happening?

    additional details: I can only see the control characters if I open the file in Excel. If I open the csv in a text editor they do not show. However, even though not visible in a text editor, unless I retype "Name" for example, the file fails to import into another application, in this case ShipStation.com. I've also found that, strangely, I can only seem to fix the problem in Excel - trying to fix the file in a text editor by deleting "Name" and retyping it doesn't work.
    Also, I am on a Mac if that makes a difference.

  • Problem with subtotal calculation in ALV reports

    Hi All,
       I am doing one program for calculating subtoals in ALV . For this i want to display subtotal text at each envey subtotal 's row.
    For that i have created one form 'SUB_SUBTOT_TEXT' and it has given to IT_EVENTS-FORM. But SUB_SUBTOT_TEXT Form is not called by IT_EVENTS event.
    what are all the mandatories for displaying subtotal text.
    Can any one please help me.
    Thanks in Advance.

    Hi Sree,
    *& Table declaration
    &----TABLES: ekko.&----
    *& Type pool declaration
    TYPE-POOLS: slis. " Type pool for ALV&----
    *& Selection screen
    SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.&----
    *& Type declaration
    &----* Type declaration for internal table to store EKPO data
    TYPES: BEGIN OF x_data,
           ebeln  TYPE char30,  " Document no.
           ebelp  TYPE ebelp,   " Item no
           matnr  TYPE matnr,   " Material no
           matnr1 TYPE matnr,   " Material no
           werks  TYPE werks_d, " Plant
           werks1 TYPE werks_d, " Plant
           ntgew  TYPE entge,   " Net weight
           gewe   TYPE egewe,   " Unit of weight                          
           END OF x_data.&----
    *& Internal table declaration
    DATA:* Internal table to store EKPO data
      i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
    Internal table for storing field catalog information
      i_fieldcat TYPE slis_t_fieldcat_alv,
    Internal table for Top of Page info. in ALV Display
      i_alv_top_of_page TYPE slis_t_listheader,
    Internal table for ALV Display events
      i_events TYPE slis_t_event,
    Internal table for storing ALV sort information
      i_sort TYPE  slis_t_sortinfo_alv,
      i_event TYPE slis_t_event.&----
    *& Work area declaration
    &----DATA:
      wa_ekko TYPE x_data,
      wa_layout     TYPE slis_layout_alv,
      wa_events         TYPE slis_alv_event,
      wa_sort TYPE slis_sortinfo_alv.&----
    *& Constant declaration
    &----CONSTANTS:
       c_header   TYPE char1
                  VALUE 'H',                    "Header in ALV
       c_item     TYPE char1
                  VALUE 'S'.&----
    *& Start-of-selection event
    &----START-OF-SELECTION.* Select data from ekpo
      SELECT ebeln " Doc no
             ebelp " Item
             matnr " Material
             matnr " Material
             werks " Plant
             werks " Plant
             ntgew " Quantity
             gewei " Unit
             FROM ekpo
             INTO TABLE i_ekpo
             WHERE ebeln IN s_ebeln
             AND ntgew NE '0.00'.  IF sy-subrc = 0.
        SORT i_ekpo BY ebeln ebelp matnr .
      ENDIF.* To build the Page header
      PERFORM sub_build_header.* To prepare field catalog
      PERFORM sub_field_catalog.* Perform to populate the layout structure
      PERFORM sub_populate_layout.* Perform to populate the sort table.
      PERFORM sub_populate_sort.* Perform to populate ALV event
      PERFORM sub_get_event.END-OF-SELECTION.* Perform to display ALV report
      PERFORM sub_alv_report_display.
    *&      Form  sub_build_header
          To build the header
          No Parameter
    FORM sub_build_header .* Local data declaration
      DATA: l_system     TYPE char10 ,          "System id
            l_r_line     TYPE slis_listheader,  "Hold list header
            l_date       TYPE char10,           "Date
            l_time       TYPE char10,           "Time
            l_success_records TYPE i,           "No of success records
            l_title(300) TYPE c.                " Title
    Title  Display
      l_r_line-typ = c_header.               " header
      l_title = 'Test report'(001).
      l_r_line-info = l_title.
      APPEND l_r_line TO i_alv_top_of_page.
      CLEAR l_r_line.* Run date Display
      CLEAR l_date.
      l_r_line-typ  = c_item.                " Item
      WRITE: sy-datum  TO l_date MM/DD/YYYY.
      l_r_line-key = 'Run Date :'(002).
      l_r_line-info = l_date.
      APPEND l_r_line TO i_alv_top_of_page.
      CLEAR: l_r_line,
             l_date.ENDFORM.                    " sub_build_header
    *&      Form  sub_field_catalog
          Build Field Catalog
          No Parameter
    FORM sub_field_catalog .*  Build Field Catalog
      PERFORM sub_fill_alv_field_catalog USING:     '01' '01' 'EBELN' 'I_EKPO' 'L'
         'Doc No'(003) ' ' ' ' ' ' ' ',     '01' '02' 'EBELP' 'I_EKPO' 'L'
         'Item No'(004) 'X' 'X' ' ' ' ',     '01' '03' 'MATNR' 'I_EKPO' 'L'
         'Material No'(005) 'X' 'X' ' ' ' ',     '01' '03' 'MATNR1' 'I_EKPO' 'L'
         'Material No'(005) ' ' ' ' ' ' ' ',
         '01' '04' 'WERKS' 'I_EKPO' 'L'
         'Plant'(006) 'X' 'X' ' ' ' ',     '01' '04' 'WERKS1' 'I_EKPO' 'L'
         'Plant'(006) ' ' ' ' ' ' ' ',     '01' '05' 'NTGEW' 'I_EKPO' 'R'
         'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.                    " sub_field_catalog&----
    *&     Form  sub_fill_alv_field_catalog
    *&     For building Field Catalog
    *&     p_rowpos   Row position
    *&     p_colpos   Col position
    *&     p_fldnam   Fldname
    *&     p_tabnam   Tabname
    *&     p_justif   Justification
    *&     p_seltext  Seltext
    *&     p_out      no out
    *&     p_tech     Technical field
    *&     p_qfield   Quantity field
    *&     p_qtab     Quantity table
    FORM sub_fill_alv_field_catalog  USING  p_rowpos    TYPE sycurow
                                            p_colpos    TYPE sycucol
                                            p_fldnam    TYPE fieldname
                                            p_tabnam    TYPE tabname
                                            p_justif    TYPE char1
                                            p_seltext   TYPE dd03p-scrtext_l
                                            p_out       TYPE char1
                                            p_tech      TYPE char1
                                            p_qfield    TYPE slis_fieldname
                                            p_qtab      TYPE slis_tabname.* Local declaration for field catalog
      DATA: wa_lfl_fcat    TYPE  slis_fieldcat_alv.  wa_lfl_fcat-row_pos        =  p_rowpos.     "Row
      wa_lfl_fcat-col_pos        =  p_colpos.     "Column
      wa_lfl_fcat-fieldname      =  p_fldnam.     "Field Name
      wa_lfl_fcat-tabname        =  p_tabnam.     "Internal Table Name
      wa_lfl_fcat-just           =  p_justif.     "Screen Justified
      wa_lfl_fcat-seltext_l      =  p_seltext.    "Field Text
      wa_lfl_fcat-no_out         =  p_out.        "No output
      wa_lfl_fcat-tech           =  p_tech.       "Technical field
      wa_lfl_fcat-qfieldname     =  p_qfield.     "Quantity unit
      wa_lfl_fcat-qtabname       =  p_qtab .      "Quantity table  IF p_fldnam = 'NTGEW'.
        wa_lfl_fcat-do_sum  = 'X'.
      ENDIF.
      APPEND wa_lfl_fcat TO i_fieldcat.
      CLEAR wa_lfl_fcat.
    ENDFORM.                    " sub_fill_alv_field_catalog&----
    *&      Form  sub_populate_layout
          Populate ALV layout
          No Parameter
    FORM sub_populate_layout .  CLEAR wa_layout.
      wa_layout-colwidth_optimize = 'X'." Optimization of Col widthENDFORM.                    " sub_populate_layout&----
    *&      Form  sub_populate_sort
          Populate ALV sort table
          No Parameter
    FORM sub_populate_sort .* Sort on material
      wa_sort-spos = '01' .
      wa_sort-fieldname = 'MATNR'.
      wa_sort-tabname = 'I_EKPO'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.
      APPEND wa_sort TO i_sort .
      CLEAR wa_sort.* Sort on plant
      wa_sort-spos = '02'.
      wa_sort-fieldname = 'WERKS'.
      wa_sort-tabname = 'I_EKPO'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.
      APPEND wa_sort TO i_sort .
      CLEAR wa_sort.
    ENDFORM.                    " sub_populate_sort&----
    *&      Form  sub_get_event
          Get ALV grid event and pass the form name to subtotal_text
          event
          No Parameter
    FORM sub_get_event .
      CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
    'SUBTOTAL_TEXT'.  DATA: l_s_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 4
        IMPORTING
          et_events       = i_event
        EXCEPTIONS
          list_type_wrong = 0
          OTHERS          = 0.* Subtotal
      READ TABLE i_event  INTO l_s_event
                        WITH KEY name = slis_ev_subtotal_text.
      IF sy-subrc = 0.
        MOVE c_formname_subtotal_text TO l_s_event-form.
        MODIFY i_event FROM l_s_event INDEX sy-tabix.
      ENDIF.ENDFORM.                    " sub_get_event&----
    *&      Form  sub_alv_report_display
          For ALV Report Display
          No Parameter
    FORM sub_alv_report_display .
      DATA: l_repid TYPE syrepid .
      l_repid = sy-repid .* This function module for displaying the ALV report
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = l_repid
          i_callback_top_of_page   = 'SUB_ALV_TOP_OF_PAGE'
          is_layout                = wa_layout
          it_fieldcat              = i_fieldcat
          it_sort = i_sort
          it_events                = i_event
          i_default                = 'X'
          i_save                   = 'A'
        TABLES
          t_outtab                 = i_ekpo
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
       MESSAGE i000 WITH 'Error in ALV report display'(055).
      ENDIF.ENDFORM.                    " sub_alv_report_display&----
          FORM sub_alv_top_of_page
          Call ALV top of page
          No parameter
    ----FORM sub_alv_top_of_page.                                   "#EC CALLED* To write header for the ALV
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = i_alv_top_of_page.
    ENDFORM.                    "alv_top_of_page&----
    *&      Form  subtotal_text
          Build subtotal text
          P_total  Total
          p_subtot_text Subtotal text info
    FORM subtotal_text CHANGING
                   p_total TYPE any
                   p_subtot_text TYPE slis_subtot_text.
    Material level sub total
      IF p_subtot_text-criteria = 'MATNR'.
        p_subtot_text-display_text_for_subtotal
        = 'Material level total'(009).
      ENDIF.* Plant level sub total
      IF p_subtot_text-criteria = 'WERKS'.
        p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
      ENDIF.
    ENDFORM.                    "subtotal_text
    Hopes its helpful.
    Regards,
    Raj.

  • Sub total in ALV report.

    hello everyone,
    i am developing one ALV report and one problem is there.
    i want Material Group wise total on 1.Quantity 2. Asssessable value 3. Basic duty 4. Edu cess.
    Problem is all total are correct but when material group is different it repeat same total again. how to do total different material group wise?
    i am using this code...............
    *& Report  ZHP_EXCISE_INVOICE
    REPORT  zhp_excise_invoice NO STANDARD PAGE HEADING LINE-SIZE 150 MESSAGE-ID 00.
    TYPE-POOLS: slis.
    TABLES: j_1iexchdr,vbrk,vbrp,t001w,t023t,konv.
    DATA: BEGIN OF ithp_j_1iexchdr OCCURS 0,
           docyr LIKE j_1iexchdr-docyr,               "Year
           bukrs LIKE j_1iexchdr-bukrs,               "Company Code
           werks LIKE j_1iexchdr-werks,               "PLANT
           exdat LIKE j_1iexchdr-exdat,               "Excise Document Date
           rdoc  LIKE j_1iexchdr-rdoc,                "Reference Document 1
           preprn LIKE j_1iexchdr-preprn,             "Preprinted Serial Number
           kunag LIKE j_1iexchdr-kunag,               "Sold-to party
           kunwe LIKE j_1iexchdr-kunwe,               "Ship-to party
           exbed LIKE j_1iexchdr-exbed,               "Basic Excise Duty
           ecs LIKE j_1iexchdr-ecs,                   "Edu Cess amount
           status LIKE j_1iexchdr-status,             "Excise Document Status
           censtat LIKE j_1iexchdr-censtat,           "CENVAT Utilization status
           exccd LIKE j_1iexchdr-exccd,               "ECC Number
           trntyp LIKE j_1iexchdr-trntyp,             "Excise Transaction Type
           vbeln LIKE vbrk-vbeln,                   "Billing Document
           kzwi2 LIKE vbrp-kzwi2,                   "Assessable value
           fkimg LIKE vbrp-fkimg,                   "Actual billed quantity
           matkl LIKE vbrp-matkl,                   "Material group
           netwr LIKE vbrp-netwr,                   "Net value
           name1 LIKE t001w-name1,                  "Plant Name
           wgbez LIKE t023t-wgbez,                  "Material Group Desc.
           serial_no TYPE i,
           subtot1 TYPE vbrp-fkimg,
            price_per TYPE konv-kbetr,
            cash_disc TYPE konv-kwert,
            vol_disc TYPE konv-kwert,
            ***_value TYPE konv-kbetr,
            ***_value1 TYPE konv-kbetr,
            BASIC_DUTY1 TYPE konv-kwert,
            EDU_CESS1 TYPE konv-kwert,
          END OF ithp_j_1iexchdr.
    DATA : x TYPE i VALUE 0,
           y TYPE i VALUE 0.
    DATA: t_fillcat TYPE slis_t_fieldcat_alv,
          w_fillcat TYPE slis_fieldcat_alv,
          layout  TYPE slis_layout_alv,
          repid LIKE sy-repid.
    TYPES: BEGIN OF ty_itab,
          price_per TYPE konv-kbetr,
          basic_prc TYPE konv-kbetr,
          cash_disc TYPE konv-kwert,
          vol_disc TYPE konv-kwert,
          ***_value TYPE konv-kbetr,
        END OF ty_itab.
    DATA:it_itab TYPE ty_itab OCCURS 0 WITH HEADER LINE,
         wa_itab TYPE ty_itab.
    TYPES: BEGIN OF ty_konv,
          kschl TYPE konv-kschl,
          kbetr TYPE konv-kbetr,
          kwert TYPE konv-kwert,
          mwsk1 TYPE konv-mwsk1,
          knumv TYPE konv-knumv,
          kposn TYPE konv-kposn,
          END OF ty_konv.
    DATA: it_konv TYPE ty_konv OCCURS 0 WITH HEADER LINE,
         wa_konv TYPE ty_konv .
    TYPES: BEGIN OF ty_vbrk,
          fkdat TYPE vbrk-fkdat,
          fkart TYPE vbrk-fkart,
          knumv TYPE vbrk-knumv,
          vbeln TYPE vbrk-vbeln,
          vbtyp TYPE vbrk-vbtyp,
          bukrs TYPE vbrk-bukrs,
          kunrg TYPE vbrk-kunrg,
          END OF ty_vbrk.
    DATA: it_vbrk TYPE ty_vbrk OCCURS 0 WITH HEADER LINE,
         wa_vbrk TYPE ty_vbrk .
    TYPES : BEGIN OF ty_vbrp,
            werks TYPE vbrp-werks,
            spart TYPE vbrp-spart,
            vkbur TYPE vbrp-vkbur,
            matkl TYPE vbrp-matkl,
            vbeln TYPE vbrp-vbeln,
            posnr TYPE vbrp-posnr,
            vgbel TYPE vbrp-vgbel,
            matnr TYPE vbrp-matnr,
            brgew TYPE vbrp-brgew,
            fkimg TYPE vbrp-fkimg,
            vrkme TYPE vbrp-vrkme,
            netwr TYPE vbrp-netwr,
            arktx TYPE vbrp-arktx,
            aubel TYPE vbrp-aubel,
            kzwi1 TYPE vbrp-kzwi1,
            kzwi2 TYPE vbrp-kzwi2,
            kzwi4 TYPE vbrp-kzwi4,
            kzwi5 TYPE vbrp-kzwi5,
            kzwi6 TYPE vbrp-kzwi6,
            END OF ty_vbrp.
    DATA: it_vbrp TYPE ty_vbrp OCCURS 0 WITH HEADER LINE,
          wa_vbrp TYPE ty_vbrp.
    DATA: events   TYPE slis_t_event,
          gt_list_top_of_page TYPE slis_t_listheader.
         top_of_page  type slis_formname value 'TOP_OF_PAGE'.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: p_bukrs FOR j_1iexchdr-bukrs.
    SELECT-OPTIONS: p_exgrp FOR j_1iexchdr-exgrp.
    SELECT-OPTIONS: p_werks FOR j_1iexchdr-werks.
    SELECT-OPTIONS: p_matkl FOR vbrp-matkl.
    SELECT-OPTIONS: p_trntyp FOR j_1iexchdr-trntyp DEFAULT 'DLFC' NO INTERVALS.
    SELECT-OPTIONS: p_status FOR j_1iexchdr-status DEFAULT 'C' NO INTERVALS.
    SELECT-OPTIONS: p_cnstat FOR j_1iexchdr-censtat DEFAULT 'P' NO INTERVALS.
    SELECT-OPTIONS: p_exdat FOR j_1iexchdr-exdat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    repid = sy-repid.
    AT SELECTION-SCREEN ON p_bukrs.
      SELECT SINGLE * FROM j_1iexchdr WHERE bukrs IN p_bukrs.
      IF sy-subrc <> 0.
        MESSAGE e001 WITH 'No Table Entries Found'.
        EXIT.
      ENDIF.
    AT SELECTION-SCREEN ON p_werks.
      SELECT SINGLE * FROM j_1iexchdr WHERE werks IN p_werks.
      IF sy-subrc <> 0.
        MESSAGE e001 WITH 'No Table Entries Found'.
        EXIT.
      ENDIF.
    AT SELECTION-SCREEN ON p_matkl.
      SELECT SINGLE * FROM vbrp WHERE matkl IN p_matkl.
      IF sy-subrc <> 0.
        MESSAGE e001 WITH 'No Table Entries Found'.
        EXIT.
      ENDIF.
    AT SELECTION-SCREEN ON p_exdat.
      SELECT SINGLE * FROM j_1iexchdr WHERE exdat IN p_exdat.
      IF sy-subrc <> 0.
        MESSAGE e001 WITH 'No Table Entries Found'.
        EXIT.
      ENDIF.
    START-OF-SELECTION.
      PERFORM select.
      PERFORM fillcat.
      PERFORM display.
    END-OF-SELECTION.
    *&      Form  SELECT
          text
    -->  p1        text
    <--  p2        text
    FORM select .
    SELECT  DOCYR
             BUKRS
             WERKS
             EXDAT
             RDOC
             PREPRN
             KUNAG
             KUNWE
             EXBED
             ECS
             STATUS
             CENSTAT
    INTO CORRESPONDING FIELDS OF TABLE ITHP_J_1IEXCHDR
    FROM J_1IEXCHDR
    WHERE BUKRS IN P_BUKRS AND
           EXGRP IN P_EXGRP AND
           WERKS IN P_WERKS AND
           EXDAT IN P_EXDAT.
    SELECT   VBELN
             NETWR
    INTO CORRESPONDING FIELDS OF TABLE ITHP_VBRK
    FROM VBRK
    FOR ALL ENTRIES IN ITHP_J_1IEXCHDR
    WHERE VBELN EQ ITHP_J_1IEXCHDR-RDOC AND
          BUKRS EQ ITHP_J_1IEXCHDR-BUKRS AND
          KUNAG EQ ITHP_J_1IEXCHDR-KUNAG.
    SORT ITHP_J_1IEXCHDR BY DOCYR BUKRS WERKS EXDAT RDOC.
    SORT ITHP_VBRK BY VBELN.
      SELECT   a~docyr
               a~bukrs
               a~werks
               a~exdat
               a~rdoc
               a~preprn
               a~kunag
               a~kunwe
               a~exbed
               a~ecs
               a~status
               a~censtat
               a~exccd
               a~trntyp
               c~netwr
               c~kzwi2
               c~fkimg
               c~matkl
               d~name1
               e~wgbez
      INTO CORRESPONDING FIELDS OF TABLE ithp_j_1iexchdr
      FROM j_1iexchdr AS a INNER JOIN vbrk AS b ON ardoc = bvbeln
                           INNER JOIN vbrp AS c ON bvbeln = cvbeln
                           INNER JOIN t001w AS d ON awerks = dwerks
                           INNER JOIN t023t AS e ON cmatkl = ematkl
      WHERE a~bukrs IN p_bukrs AND
            a~exgrp IN p_exgrp AND
            a~werks IN p_werks AND
            c~matkl IN p_matkl AND
            a~trntyp IN p_trntyp AND
            a~status IN p_status AND
            a~censtat IN p_cnstat AND
            a~exdat IN p_exdat.
      SORT ithp_j_1iexchdr BY docyr bukrs werks exdat rdoc matkl.
    ENDFORM.                    " SELECT
    *&      Form  FILLCAT
          text
    -->  p1        text
    <--  p2        text
    FORM fillcat .
      DATA: subtot TYPE vbrp-fkimg.
      DATA: BASIC_DUTY TYPE konv-kwert.
      DATA: EDU_CESS TYPE konv-kwert.
      REFRESH it_vbrk.
      REFRESH it_konv.
      REFRESH it_vbrp.
      LOOP AT ithp_j_1iexchdr.
        SELECT fkdat fkart knumv vbeln vbtyp bukrs kunrg
          FROM vbrk INTO TABLE it_vbrk
          WHERE vbeln EQ ithp_j_1iexchdr-rdoc.
        SELECT kschl kbetr kwert mwsk1 knumv kposn FROM konv
          INTO TABLE it_konv FOR ALL ENTRIES IN it_vbrk
          WHERE knumv EQ it_vbrk-knumv.
        SELECT werks spart vkbur matkl vbeln posnr
          vgbel matnr brgew fkimg vrkme netwr
          arktx aubel  kzwi1 kzwi2 kzwi4 kzwi5
          kzwi6 FROM vbrp INTO TABLE it_vbrp FOR ALL
           ENTRIES IN it_vbrk
          WHERE vbeln EQ it_vbrk-vbeln.
        SORT it_vbrk BY vbeln knumv.
        SORT it_konv BY KSCHL knumv.
        SORT it_vbrp BY vbeln.
          LOOP AT it_konv.
          IF it_konv-kschl =  'ZASS'.
             LOOP AT it_konv.
                IF it_konv-kschl =  'ZPR0'.
                it_itab-***_value = it_konv-kwert.
                ithp_j_1iexchdr-***_value = it_itab-***_value.
                ADD ithp_j_1iexchdr-***_value TO ithp_j_1iexchdr-***_value1.
                ithp_j_1iexchdr-***_value1 = ithp_j_1iexchdr-***_value1 - ithp_j_1iexchdr-***_value.
                 MODIFY ithp_j_1iexchdr.
              ENDIF.
              IF it_konv-kschl =  'ZASS'.
                it_itab-***_value = it_konv-kwert.
                ithp_j_1iexchdr-***_value = it_itab-***_value.
                ADD ithp_j_1iexchdr-***_value TO ithp_j_1iexchdr-***_value1.
                MODIFY ithp_j_1iexchdr.
              ENDIF.
            ENDLOOP.
            EXIT.
           ENDIF.
          IF it_konv-kschl = 'PR00'.
            it_itab-***_value = it_konv-kwert.
            ithp_j_1iexchdr-***_value = it_itab-***_value.
            ADD ithp_j_1iexchdr-***_value TO ithp_j_1iexchdr-***_value1.
            MODIFY ithp_j_1iexchdr.
          ENDIF.
          IF it_konv-kschl =  'ZPR0'.
            LOOP AT it_konv.
              IF it_konv-kschl =  'ZASS'.
              EXIT.
             ENDIF.
                it_itab-***_value = it_konv-kwert.
                ithp_j_1iexchdr-***_value = it_itab-***_value.
                 ADD ithp_j_1iexchdr-***_value TO ithp_j_1iexchdr-***_value1.
                ithp_j_1iexchdr-***_value1 = ithp_j_1iexchdr-***_value1 - ithp_j_1iexchdr-***_value.
                  MODIFY ithp_j_1iexchdr.
              ENDIF.
              IF it_konv-kschl =  'ZPR0'.
                it_itab-***_value = it_konv-kwert.
                ithp_j_1iexchdr-***_value = it_itab-***_value.
                ADD ithp_j_1iexchdr-***_value TO ithp_j_1iexchdr-***_value1.
                MODIFY ithp_j_1iexchdr.
              ENDIF.
            ENDLOOP.
            EXIT.
          ENDIF.
               IF it_konv-kschl =  'JEXP'.
                   BASIC_DUTY = it_konv-kwert.
                   ADD BASIC_DUTY TO ithp_j_1iexchdr-BASIC_DUTY1.
                   MODIFY ithp_j_1iexchdr.
                ENDIF.
                IF it_konv-kschl =  'JECS'.
                   EDU_CESS = it_konv-kwert.
                   ADD EDU_CESS TO ithp_j_1iexchdr-EDU_CESS1.
                   MODIFY ithp_j_1iexchdr.
                ENDIF.
        ENDLOOP.
      ENDLOOP.
      LOOP AT ithp_j_1iexchdr.
        AT NEW rdoc.
          SUM.
          subtot = ithp_j_1iexchdr-fkimg.
        ENDAT.
        ithp_j_1iexchdr-subtot1 = subtot.
        MODIFY ithp_j_1iexchdr.
        AT NEW MATKL.
        ENDAT.
      ENDLOOP.
      DELETE ADJACENT DUPLICATES FROM ithp_j_1iexchdr.
      LOOP AT ithp_j_1iexchdr.
        x = x + 1.
        ithp_j_1iexchdr-serial_no = x.
        MODIFY ithp_j_1iexchdr.
      ENDLOOP.
      repid = sy-repid.
      DATA: col_pos TYPE i VALUE 0.
      col_pos = col_pos + 1.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'SERIAL_NO'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Serial No'.
      w_fillcat-seltext_m = 'Serial No'.
      w_fillcat-seltext_l = 'Serial No'.
      w_fillcat-outputlen = 8.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'DOCYR'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Year'.
      w_fillcat-seltext_m = 'Year'.
      w_fillcat-seltext_l = 'Year'.
      w_fillcat-outputlen = 5.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'WERKS'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Plant'.
      w_fillcat-seltext_m = 'Plant'.
      w_fillcat-seltext_l = 'Plant'.
      w_fillcat-outputlen = 5.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'EXDAT'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Doc. Date'.
      w_fillcat-seltext_m = 'Doc. Date'.
      w_fillcat-seltext_l = 'Doc. Date'.
      w_fillcat-outputlen = 10.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'RDOC'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Ref. Document'.
      w_fillcat-seltext_m = 'Ref. Document'.
      w_fillcat-seltext_l = 'Ref. Document'.
      w_fillcat-outputlen = 11.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'PREPRN'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Invoice No'.
      w_fillcat-seltext_m = 'Invoice No'.
      w_fillcat-seltext_l = 'Invoice No'.
      w_fillcat-outputlen = 11.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'SUBTOT1'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-do_sum = 'X'.
      w_fillcat-seltext_s = 'Quantity'.
      w_fillcat-seltext_m = 'Quantity'.
      w_fillcat-seltext_l = 'Quantity'.
      w_fillcat-outputlen = 13.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = '***_VALUE1'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-do_sum = 'X'.
      w_fillcat-seltext_s = 'Assessable value'.
      w_fillcat-seltext_m = 'Assessable value'.
      w_fillcat-seltext_l = 'Assessable value'.
      w_fillcat-outputlen = 15.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'BASIC_DUTY1'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-do_sum = 'X'.
      w_fillcat-seltext_s = 'Basic Duty'.
      w_fillcat-seltext_m = 'Basic Duty'.
      w_fillcat-seltext_l = 'Basic Duty'.
      w_fillcat-outputlen = 13.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'EDU_CESS1'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-do_sum = 'X'.
      w_fillcat-seltext_s = 'Edu Cess'.
      w_fillcat-seltext_m = 'Edu Cess'.
      w_fillcat-seltext_l = 'Edu Cess'.
      w_fillcat-outputlen = 13.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'KUNAG'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Sold-to pt'.
      w_fillcat-seltext_m = 'Sold-to pt'.
      w_fillcat-seltext_l = 'Sold-to pt'.
      w_fillcat-outputlen = 10.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'KUNWE'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Ship-to pt'.
      w_fillcat-seltext_m = 'Ship-to pt'.
      w_fillcat-seltext_l = 'Ship-to pt'.
      w_fillcat-outputlen = 10.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'STATUS'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Doc. Status'.
      w_fillcat-seltext_m = 'Doc. Status'.
      w_fillcat-seltext_l = 'Doc. Status'.
      w_fillcat-outputlen = 8.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'CENSTAT'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Cenvet status'.
      w_fillcat-seltext_m = 'Cenvet status'.
      w_fillcat-seltext_l = 'Cenvet status'.
      w_fillcat-outputlen = 8.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'MATKL'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Mat. Grp'.
      w_fillcat-seltext_m = 'Mat. Grp'.
      w_fillcat-seltext_l = 'Mat. Grp'.
      w_fillcat-outputlen = 9.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
      col_pos = col_pos + 1.
      w_fillcat-fieldname = 'WGBEZ'.
      w_fillcat-tabname = 'ITHP_J_1IEXCHDR'.
      w_fillcat-col_pos = col_pos.
      w_fillcat-seltext_s = 'Mat. Grp Desc.'.
      w_fillcat-seltext_m = 'Mat. Grp Desc.'.
      w_fillcat-seltext_l = 'Mat. Grp Desc.'.
      w_fillcat-outputlen = 20.
      APPEND w_fillcat TO t_fillcat.
      CLEAR w_fillcat.
    ENDFORM.                    " FILLCAT
    *&      Form  DISPLAY
          text
    -->  p1        text
    <--  p2        text
    FORM display .
      DATA : lv_grid_title TYPE lvc_title.
      DATA: date1(10) TYPE c.
      DATA: tperiod(500) TYPE c,
            tperiod1(40) TYPE c,
            tperiod2(30) TYPE c,
            temp(25) TYPE c,
            temp1(35) TYPE c,
            temp2(25) TYPE c,
            temp3(25) TYPE c,
            temp4(60) TYPE c,
            temp5(100) TYPE c.
      CONCATENATE sy-datum6(2) sy-datum4(2) sy-datum+0(4)
                  INTO date1 SEPARATED BY '/'.
      CONCATENATE p_exdat-low6(2) p_exdat-low4(2) p_exdat-low+0(4)
                  INTO temp1 SEPARATED BY '/'.
      CONCATENATE p_exdat-high6(2) p_exdat-high4(2) p_exdat-high+0(4)
                  INTO temp2 SEPARATED BY '/'.
      CONCATENATE 'DUTY DEBIT STMT:'
                 temp1 'TO' temp2
                 INTO tperiod
                  SEPARATED BY space.
      IF ithp_j_1iexchdr-werks = '1000'.
        CONCATENATE tperiod  'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
                SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1101'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF  ithp_j_1iexchdr-werks = '1102'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1103'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1104'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1201'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1202'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1203'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1204'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1205'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1261'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1301'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '1901'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '2000'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '2101'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '3000'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSEIF ithp_j_1iexchdr-werks = '3101'.
        CONCATENATE tperiod 'Plant :' ithp_j_1iexchdr-name1 'Ecc No :' ithp_j_1iexchdr-exccd INTO lv_grid_title
              SEPARATED BY space.
      ELSE.
        CONCATENATE tperiod ' ' INTO lv_grid_title
             SEPARATED BY space.
      ENDIF.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          percentage = 100
          text       = 'Generating Report ... '.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = 'REPID'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
       i_grid_title                      = lv_grid_title
      I_GRID_SETTINGS                   =
         is_layout                         = layout
         it_fieldcat                       = t_fillcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
         i_default                         = 'X'
         i_save                            = 'X'
      IS_VARIANT                        =
      IT_EVENTS                         = events[]
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = ithp_j_1iexchdr
    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
    Thanks in Advance.....

    Hi himanshu,
    here i am sending some solution.
    just create a internal table and wa for IT_SORT in grid display(just like for field cat).
    Then u have to populate the internal table by fields for which u want subtotals.
    just follow this code.
    data:  i_sort type SLIS_T_SORTINFO_ALV,
            wa_sort type SLIS_SORTINFO_ALV.
    wa_sort-fieldname = 'quantity'.
    wa_sort-up = 'X'.
    wa_sort-subtotal = 'X'.
    append wa_sort to i_sort.
    Do the same thing for all fields.
    mention the internal table name in Grid display.
    I think this some what useful to u,
    Bye.

  • ALV report with internal in field symbol

    Hi Shifu ABAP,
    I have ALV report.
    My problem is when I tried to do sum using the sum icon. I got a message 'desired operation cannot be performed for column 'Dignostic delay'. Is it because I used field symbol, then when I clicked on the column it didn't recorgnise the field.
    FYI.
    1)The internal table for my ALV report is stored in field symbol.
    2)I dont have a problem to display the report.
    3)I had to set 'do_sum' at ALV field category, still doesn't work
    My source code to define ALV category.
    loop at i_qpcd into wa_qpcd.
    CLEAR ls_fieldcat2.
    ls_fieldcat2-col_pos = pos2.
    ls_fieldcat2-fieldname = wa_qpcd-code.
    ls_fieldcat2-reptext_ddic = wa_qpcd-desc.
    ls_fieldcat2-just = 'C'.
    ls_fieldcat2-do_sum = 'X'.
    APPEND ls_fieldcat2 TO gt_fieldcat2.
    endloop.
    My source code call the ALV FM
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
         i_callback_program         = 'ZMPMR001_Q1OOT'
         i_callback_pf_status_set = 'PF_STATUS_SET'
         is_layout                        = ls_layout
         it_fieldcat                       = gt_fieldcat2[]
         is_print                          = ls_print
    TABLES
         t_outtab                         = <l_table>
    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.
    Thanks a lot in advance for your attention.

    my situation is like this, declare the internal tble
    1) data : begin of itab occurs 0,          
                code like qpcd-code,
                desc like QPCT-KURZTEXT,
              end of itab.
    2) populate the itab like this
    code           desc
    01              desc 1
    02              desc 2
    03              desc 3
    3) take the selected record converted it into new dynamic internal table using field symbol declare as table, now the component of this new table are 01, 02 and 03.
    4) populate the new table with some data, so technically my new table structure will be like this
    01         02         03
    1           0          1
    0           0          3
    2           2          2
    5) display the new table in ALV report, in ALV I tried to sum-up each of column.
    6) Question : HOW can I convert the componet 01, 02 and 03 as an integer/numeric field.
    Regards
    Nislina

  • Issue in displaying header details in ALV report

    Hi,
    I have used slis_t_listheader and REUSE_ALV_COMMENTARY_WRITE to display the header details in ALV report.I want the details to be displayed as below.
    Requester : ----------------------                                                                               Page: 1
    Program: -----------------------                                                                                Date:---------
                                                                     Title of Report
    But when I use the structure slis_t_listheader to display the header details,all the fields are coming one below the other.
    How can I get the fields as shown in the above format
    Edited by: Abaper12345 on Jun 25, 2009 7:54 AM

    Hi,
    Go through following code... its showing the data exactly the way you want....
    REPORT  TEST3.
    TYPE-POOLS:slis.
    TABLES:MARA.
    *Type Declaration
    TYPES:BEGIN OF t_mara,
          matnr TYPE mara-matnr,
          ersda TYPE mara-ersda,
          ernam TYPE mara-ernam,
          END OF t_mara.
    *Internal Table
    data:it_mara type standard table of t_mara.
    *Work Area
    data:wa_mara type t_mara.
    DATA:i_repid TYPE sy-repid .
    i_repid = sy-repid.
    *Declaration for field catalog
    DATA : fcat TYPE slis_t_fieldcat_alv,
           wa_fcat TYPE slis_fieldcat_alv.
    *Declaration for Layout
    data : WA_LAYOUT type SLIS_LAYOUT_ALV.
    *Initializing ColumnWidth_Optimize For Layout
      WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    START-OF-SELECTION
    START-OF-SELECTION.
    *Fetching data into internal tables
      PERFORM get_data.
    *Buil Fieldcatalog
      PERFORM build_fcat.
    *Display ALV Report
      PERFORM alv_display.
    *Build Fieldcat
    FORM build_fcat .
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'Material Number'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'ERSDA'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'Date'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'IT_MARA'.
      wa_fcat-fieldname = 'ERNAM'.
      wa_fcat-inttype = 'C'.
      wa_fcat-seltext_m = 'User'.
      wa_fcat-outputlen = 25.
      wa_fcat-col_pos = 1.
      APPEND wa_fcat TO fcat.
      CLEAR wa_fcat.
      endform.
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    form GET_DATA .
    select matnr ersda ernam from mara into table it_mara.
    endform.                    " GET_DATA
    *&      Form  ALV_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form ALV_DISPLAY .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = i_repid
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
       I_CALLBACK_HTML_TOP_OF_PAGE       = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = fcat
      TABLES
        t_outtab                          = it_mara
    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.                    " ALV_DISPLAY
    *&      Form  html_top_of_page " I_CALLBACK_HTML_TOP_OF_PAGE  "
    FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
    CALL METHOD document->add_text
      EXPORTING
        text          = 'Program'
        sap_color     = document->list_group
        sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    CALL METHOD document->new_line
      EXPORTING
        repeat = 1
    CALL METHOD document->add_text
      EXPORTING
        text          = 'Requester'
        sap_color     = document->list_group
        sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    CALL METHOD document->new_line
      EXPORTING
        repeat = 1
    CALL METHOD document->add_gap
      EXPORTING
         width      = 125
    CALL METHOD document->add_text
      EXPORTING
        text          = 'This Is Test Data'
        sap_color     = document->list_group
       sap_fontsize  = document->LARGE
       sap_fontstyle = document->standard
       sap_emphasis  = document->strong.
    ENDFORM.                    "HTML_TOP_OF_PAGE
    Thanks & Regards
    Ashu SIngh

  • ALV Report Formatting

    Hi all,
    I am working on a report, where I have created an ALV report, now the problem is when I run this report and get the output screen it shows me two buttons 1. change layout and 2. select layout but the third button is missing which is for "save layout". So can you please tell what I am missing? or what is required to be done !!!
    Thanks,
    Rajeev

    if you mention the is_layout and i_save option along with other parameters then it automatically enable that option too.
    *"     REFERENCE(IS_LAYOUT) TYPE  SLIS_LAYOUT_ALV OPTIONAL
    *"     REFERENCE(I_SAVE) DEFAULT SPACE
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                =  sy-repid
       I_GRID_TITLE                      = I_GRID_TITLE
       I_GRID_SETTINGS                   = I_GRID_SETTINGS
       IS_LAYOUT                         = IS_LAYOUT
       IT_FIELDCAT                       = IT_FIELDCAT
       I_SAVE                            =   'X'            " you can specify A , U also
      TABLES
        t_outtab                          = t_outtab
    * EXCEPTIONS
    *   PROGRAM_ERROR                     = 1

  • Problem in exporting ALV Report to excel sheet

    Hi All,
    I have developed a Report and now facing problem in exporting the same to excel sheet.
    When we click the "Locate File" icon in the report layout, the system will pop up a window with radio buttons. I have opted for 'Spreadsheet'.
    When i save the excel sheet into my desktop, the excel file has all the report headers (Title of each column). But no value is exported.
    There are around 15 columns in the report and the excel sheet shows value of last 2 columns which has some text.
    I have been into ALV report development and developed around 30+ reports in the same fashion.
    What might be the reason behind this issue?
    When i export other reports into excel sheet, everything is perfect without any flaws......
    Kindly help me out......
    Regards
    Pavan

    Hi,
    Here's my suggestion: Install OpenOffice.org and ask SAP to deliver good integration with OpenOffice.org.
    Alternative suggestion: re-install SAP Gui on the PC where the integration is not working. If that does not help, re-install Microsoft Office as well.
    Here's my comment: I think you should ask this question in a different forum, e.g. in the Duet forum. That may not be the correct forum either, but as it is a Microsoft/SAP integration technology forum, someone there may know the solution.
    Regards,
    Raj.

  • OOP ALV report custom control performance problem

    HI
    how to write OOP ALV report without custom control.. Actually with custom control which taking long time... and time out happens for huge selection of data..
    Regards
    Roops.

    timeout is not an alv problem. If you try to display a "huge" amount of data, any display technology will fail. Even sap programs fail, their wise solution is to ask user to restrict data to be displayed. Or reduce database selection time, or display amount. Or propose the user to download data as a spool, or output to a file on server.
    Otherwise, read some advices about how to handle timeout in [Note 25528 - Parameter rdisp/max_wprun_time|http://service.sap.com/sap/support/notes/25528].
    About your question, if you still want to try, look at [example code with alv class cl_salv_table for simple display|http://help.sap.com/saphelp_nw2004s/helpdata/en/f9/1ab54099de3726e10000000a1550b0/frameset.htm]

  • Problem in performing subtotaling in ABAP ALV Report for GL Account ID

    Hi,
    I had developed a report in which i am displayng data on the basis of GL Account in a ALV Report. I want to display the sub-totaling on the different series of GL Account (i..e. 100000,400000 etc..) but at present this fucntionality is not possible right now. Is there method of doing it?

    Hi,
    Thanks ,i had solved the problem by taking a variable type string and the assigning the GL A/C ID in it and it is showing the data accuarately as per requierment..
    Thanks everybody for valueable response.
    Problem Solved.

  • Problem in ALV report

    Hi Friends,
    I have the following 2 problems in ALV report
    1) Logo is not getting displayed in the report.
    2) When i click on the Purchase order number in the report  the interactive report is not working,i am not able to see report of First interactive level.
    can you help it out friends.
    Thanks and regards
    Dinesh
    REPORT  YSDBALV1
    tables: ekko , ekpo .
    type-pools: slis .
    Table for Display Header
    data:i_header type slis_t_listheader with header line.
    *Fieldcat Declaration
    data:fieldcatalog type slis_T_fieldcat_alv  WITH HEADER LINE.
    *Table of Events
    data:i_event type slis_t_event with header line .
    For Layout
    data:i_layout type slis_layout_alv .
    data: text(30) .
    *Internal Table Declaration
    data: begin of it_final occurs 0 ,
          ebeln like ekko-ebeln ,           "Purchasing Document No.
          bedat like ekko-bedat ,           "Purchasing Document Date
          matnr like ekpo-matnr ,           "Material No.
          netwr like ekpo-netwr ,         "Net Order Value in PO Currancy
          meins like ekpo-meins ,           "UOM
          chk(1) ,
          light(1) ,
          change like ekpo-menge ,
          end of it_final .
    **select option Declaration
    selection-screen begin of block block.
    select-options: s_ebeln for ekko-ebeln  .
    selection-screen end of block block .
    selection-screen begin of block block1 .
    parameters:grid radiobutton group r .
    parameters:list radiobutton group r .
    selection-screen end of block block1 .
    at selection screen
    at selection-screen .
    select single * from ekko where ebeln in s_ebeln .
    if sy-subrc <> 0 .
       message e000(8I) WITH 'No Data Exists' .
    endif .
    start-of-selection .
    if grid = 'X' .
    perform get_data .
    perform event using i_event[] .
    perform field using fieldcatalog[] .
    perform layout using i_layout .
    perform grid_display .
    endif .
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    form get_data .
    *DATA Retrieval from tables
    SELECT EKKO~EBELN
           EKKO~BEDAT
           EKPO~EBELP
           EKPO~MATNR
           EKPO~NETWR
           EKPO~MEINS
           EKPO~MENGE
           EKPO~BPRME
           INTO CORRESPONDING FIELDS OF  table IT_FINAL
           FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
           WHERE EKKO~EBELN IN S_EBELN.
           APPEND IT_FINAL.
    endform.                    " get_data
    *Getting the Event for Top of Page display.
    *&      Form  event
          text
         -->P_I_event[]  text
    form event  using    p_i_event type slis_t_event.
      clear p_i_event .
      refresh p_i_event .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
       I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = p_i_event
    EXCEPTIONS
       LIST_TYPE_WRONG       = 1
       OTHERS                = 2
    read table p_i_event with key name = slis_ev_top_of_page into i_event.
          if sy-subrc = 0.
                 move 'TOP_OF_PAGE_PO' to i_event-form.
                 modify p_i_event from i_event index sy-tabix transporting form.
          endif.
          clear i_event.
    endform.                    " event
    *Display Top-of –Page Details and Logo
    form top_of_page_po .
           clear i_header .
           refresh i_header .
           write sy-datum to text.
           i_header-typ = 'H'.
           i_header-info = 'PURCHASE OREDER DETAILS'.
           append i_header.
          *Logo Display
          CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
                 EXPORTING
                     it_list_commentary       = i_header[]
                     I_LOGO                   = 'ENJOYSAPLOGO'.
    endform .
    *Field Catalog Append
    *&      Form  field
          text
         -->P_fieldCATALOG[]  text
    form field using  p_fieldcatalog type slis_t_fieldcat_alv.
         clear fieldcatalog.
          fieldcatalog-fieldname   = 'EBELN'.
          fieldcatalog-seltext_m   = 'Purchase Order No'.
          fieldcatalog-col_pos     = 1.
          append fieldcatalog .
          clear fieldcatalog.
          fieldcatalog-fieldname   = 'BEDAT'.
          fieldcatalog-seltext_m   = 'PO Date'.
          fieldcatalog-col_pos     = 2.
          append fieldcatalog .
          clear fieldcatalog.
          fieldcatalog-fieldname   = 'MATNR'.
          fieldcatalog-seltext_m   = 'Material No'.
          fieldcatalog-col_pos     = 4.
          fieldcatalog-outputlen   = 20.
          append fieldcatalog .
          clear fieldcatalog.
          fieldcatalog-fieldname   = 'NETWR'.
          fieldcatalog-seltext_m   = 'Net Value '.
          fieldcatalog-col_pos     = 5.
          fieldcatalog-outputlen   = 20.
          fieldcatalog-do_sum = 'X'.
          append fieldcatalog .
          clear fieldcatalog.
          fieldcatalog-fieldname   = 'MEINS'.
          fieldcatalog-seltext_m   = 'Units'.
          fieldcatalog-col_pos     = 6.
          fieldcatalog-outputlen   = 4.
          append fieldcatalog .
          clear fieldcatalog.
    endform.                    " field
    *&      Form  layout
          text
    form layout  using    p_i_layout TYPE SLIS_LAYOUT_ALV .
    i_layout-zebra  = 'X'.
        i_layout-lights_fieldname = 'LIGHT'.
        i_layout-lights_tabname = 'IT_FINAL'.
        i_layout-box_fieldname = 'CHK'.
        i_layout-box_tabname  = 'IT_FINAL'.
        i_layout-edit = ' '.
    endform.
    *To display Buttons in the MENU BAR if needed
    FORM SET_PO_PF_STATUS USING  P_I_EXTAB TYPE
                     SLIS_T_EXTAB.
                     SET PF-STATUS 'MENUPO'.
      ENDFORM.
    *Event for Interactive display of ALV report
    form USER_COMMAND  using r_ucomm like sy-ucomm
                             rs_selfield type slis_selfield .
      if r_ucomm = '&IC1'.
      READ TABLE IT_FINAL  index   rs_selfield-tabindex.
      write:/ IT_FINAL-ebeln.
      endif.
    endform .
    *Parameters of FM  REUSE_ALV_GRID_DISPLAY
    *&      Form  grid_display
          text
    -->  p1        text
    <--  p2        text
    form grid_display .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = SY-REPID
       I_CALLBACK_PF_STATUS_SET          = 'SET_PO_PF_STATUS'
        I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
        IS_LAYOUT                         = I_LAYOUT
        IT_FIELDCAT                       = FIELDCATALOG[]
        IT_EVENTS                         = I_EVENT[]
      TABLES
        t_outtab                          = IT_FINAL.
    endform.                    " grid_display

    *& Report  YSDBALV1
    REPORT  YSDBALV1.
    tables: ekko , ekpo .
    type-pools: slis .
    Table for Display Header
    data:i_header type slis_t_listheader with header line.
    *Fieldcat Declaration
    data:fieldcatalog type slis_T_fieldcat_alv WITH HEADER LINE.
    *Table of Events
    data:i_event type slis_t_event with header line ,
         wa_event type line of slis_t_event.
    For Layout
    data:i_layout type slis_layout_alv .
    data: text(30) .
    *Internal Table Declaration
    data: begin of it_final occurs 0 ,
    ebeln like ekko-ebeln , "Purchasing Document No.
    bedat like ekko-bedat , "Purchasing Document Date
    matnr like ekpo-matnr , "Material No.
    netwr like ekpo-netwr , "Net Order Value in PO Currancy
    meins like ekpo-meins , "UOM
    chk(1) ,
    light(1) ,
    change like ekpo-menge ,
    end of it_final .
    **select option Declaration
    selection-screen begin of block block.
    select-options: s_ebeln for ekko-ebeln .
    selection-screen end of block block .
    selection-screen begin of block block1 .
    parameters:grid radiobutton group r .
    parameters:list radiobutton group r .
    selection-screen end of block block1 .
    at selection screen
    at selection-screen .
    select single * from ekko where ebeln in s_ebeln .
    if sy-subrc <> 0 .
    message e000(8I) WITH 'No Data Exists' .
    endif .
    start-of-selection .
    if grid = 'X' .
    perform get_data .
    perform event using i_event[] .
    perform field using fieldcatalog[] .
    perform layout using i_layout .
    perform grid_display .
    endif .
    *& Form get_data
    text
    --> p1 text
    <-- p2 text
    form get_data .
    *DATA Retrieval from tables
    SELECT EKKO~EBELN
    EKKO~BEDAT
    EKPO~EBELP
    EKPO~MATNR
    EKPO~NETWR
    EKPO~MEINS
    EKPO~MENGE
    EKPO~BPRME
    INTO CORRESPONDING FIELDS OF table IT_FINAL
    FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
    WHERE EKKO~EBELN IN S_EBELN.
    APPEND IT_FINAL.
    endform. " get_data
    *Getting the Event for Top of Page display.
    *& Form event
    text
    -->P_I_event[] text
    form event using p_i_event type slis_t_event.
    clear p_i_event .
    refresh p_i_event .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = p_i_event.
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2.
    read table p_i_event with key name = slis_ev_top_of_page into wa_event.
    if sy-subrc = 0.
    move 'TOP_OF_PAGE_PO' to i_event-form.
    modify p_i_event from i_event index sy-tabix transporting form.
    endif.
    clear i_event.
    endform. " event
    *Display Top-of –Page Details and Logo
    form top_of_page_po .
    clear i_header .
    refresh i_header .
    write sy-datum to text.
    i_header-typ = 'H'.
    i_header-info = 'PURCHASE OREDER DETAILS'.
    append i_header.
    *Logo Display
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = i_header[]
    I_LOGO = 'ENJOYSAP_LOGO'.
    endform .
    *Field Catalog Append
    *& Form field
    text
    -->P_fieldCATALOG[] text
    form field using p_fieldcatalog type slis_t_fieldcat_alv.
    clear fieldcatalog.
    fieldcatalog-fieldname = 'EBELN'.
    fieldcatalog-seltext_m = 'Purchase Order No'.
    fieldcatalog-col_pos = 1.
    append fieldcatalog .
    clear fieldcatalog.
    fieldcatalog-fieldname = 'BEDAT'.
    fieldcatalog-seltext_m = 'PO Date'.
    fieldcatalog-col_pos = 2.
    append fieldcatalog .
    clear fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'Material No'.
    fieldcatalog-col_pos = 4.
    fieldcatalog-outputlen = 20.
    append fieldcatalog .
    clear fieldcatalog.
    fieldcatalog-fieldname = 'NETWR'.
    fieldcatalog-seltext_m = 'Net Value '.
    fieldcatalog-col_pos = 5.
    fieldcatalog-outputlen = 20.
    fieldcatalog-do_sum = 'X'.
    append fieldcatalog .
    clear fieldcatalog.
    fieldcatalog-fieldname = 'MEINS'.
    fieldcatalog-seltext_m = 'Units'.
    fieldcatalog-col_pos = 6.
    fieldcatalog-outputlen = 4.
    append fieldcatalog .
    clear fieldcatalog.
    endform. " field
    *& Form layout
    text
    form layout using p_i_layout TYPE SLIS_LAYOUT_ALV .
    i_layout-zebra = 'X'.
    i_layout-lights_fieldname = 'LIGHT'.
    i_layout-lights_tabname = 'IT_FINAL'.
    i_layout-box_fieldname = 'CHK'.
    i_layout-box_tabname = 'IT_FINAL'.
    i_layout-edit = ' '.
    endform.
    *To display Buttons in the MENU BAR if needed
    FORM SET_PO_PF_STATUS USING P_I_EXTAB TYPE
    SLIS_T_EXTAB.
    SET PF-STATUS 'MENUPO'.
    ENDFORM.
    *Event for Interactive display of ALV report
    form USER_COMMAND using r_ucomm like sy-ucomm
    rs_selfield type slis_selfield .
    if r_ucomm = '&IC1'.
    READ TABLE IT_FINAL index rs_selfield-tabindex.
    set parameter id 'VL1' field it_final-ebeln.
    call transaction 'ME23N'.
    endif.
    endform .
    *Parameters of FM REUSE_ALV_GRID_DISPLAY
    *& Form grid_display
    text
    --> p1 text
    <-- p2 text
    form grid_display .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'SET_PO_PF_STATUS'
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    IS_LAYOUT = I_LAYOUT
    IT_FIELDCAT = FIELDCATALOG[]
    IT_EVENTS = I_EVENT[]
    TABLES
    t_outtab = IT_FINAL.
    endform. " grid_display
    Regards,
    Rusidar S.

  • Alv report problem

    hi,
    i have problem in ALV.
    my requirement is in a ALV report if i double click on a row it has to take me to another transaction ( say for eg vf03).
    how should i do it.
    john.

    hi
    good
    try this report
    MESSAGE-ID ZZ_9838                      .
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
           EBELN LIKE EKKO-EBELN,
           AEDAT LIKE EKKO-AEDAT,
           BUKRS LIKE EKKO-BUKRS,
           BSART LIKE EKKO-BSART,
           LIFNR LIKE EKKO-LIFNR,
           END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
          WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
           EBELN LIKE EKPO-EBELN,
           EBELP LIKE EKPO-EBELP,
           MATNR LIKE EKPO-MATNR,
           MENGE LIKE EKPO-MENGE,
           MEINS LIKE EKPO-MEINS,
           NETPR LIKE EKPO-NETPR,
           END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
          WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
          I_VARIANT1 TYPE DISVARIANT,
          I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
      V_REPID = SY-REPID.
      PERFORM BUILD_FIELDCATLOG.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATLOG
          Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'AEDAT'.
      WA_FIELDCAT-SELTEXT_M = 'DATE.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'LIFNR'.
      WA_FIELDCAT-NO_OUT    = 'X'.
      WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
       LIST_TYPE_WRONG       = 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.                    "EVENT_CALL
    *&      Form  POPULATE_EVENT
         Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    *&      Form  data_retrieval
      retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM.                    "data_retrieval
    *&      Form  bUild_listheader
          text
         -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'this is my first alv pgm'.
      HLINE-TYP = 'H'.
    ENDFORM.                    "build_listheader
    *&      Form  display_alv_report
          text
    FORM DISPLAY_ALV_REPORT.
      V_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_GRID_TITLE                      = I_TITLE_EKKO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         = ALV_LAYOUT
         IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
        i_default                         = 'ZLAY1'
         I_SAVE                            = 'A'
        is_variant                        = i_variant
         IT_EVENTS                         = V_EVENTS
        TABLES
          T_OUTTAB                          = IT_EKKO
    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_report
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  BUILD_FIELDCATLOG_EKPO
          text
    FORM BUILD_FIELDCATLOG_EKPO.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELP'.
      WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MENGE'.
      WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-SELTEXT_M = 'UOM'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'NETPR'.
      WA_FIELDCAT-SELTEXT_M = 'PRICE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG_EKPO
    *&      Form  event_call_ekpo
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
      LIST_TYPE_WRONG       = 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.                    "event_call_ekpo
    *&      Form  POPULATE_EVENT
           Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      ENDFORM.                    "POPULATE_EVENT
    *&      Form  TOP_OF_PAGE
          text
    FORM F_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      = I_TITLE_EKPO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         =
       I_SAVE                            = 'A'
      IS_VARIANT                        =
       IT_EVENTS                         = V_EVENTS
      TABLES
        T_OUTTAB                          = IT_EKPO
    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.
    implement your logic in it and i hope this will definitely work.
    thanks
    mrutyun

Maybe you are looking for

  • Purchase requisition workflow - reset release via BSP and BAPI

    Hello, We have a small workflow to release purchase requisition. A mail is send to the approver. The approver opens an BSP application to release or refuse the PR. The approval works well. The rejection doesn't work well. I use the BAPI_REQUISITION_R

  • Session host changes to custom Windows theme

    One of our session host servers (2012 R2 with Desktop Experience installed) has recently been changing themes to a custom one instead of the Windows default. The issue is this custom theme contains some high contrast settings that paradoxically make

  • Moving servers to different country - Effects on Certificates?

    Hi, We are in a process to move all our SAP servers from one country to another. After the move, the IP address, hostnames and the actual servers will get changed for all SAP systems. When the servers will be moved, we are analyzing the affect on the

  • Unable to run reports demo pages

    Oracle 9iAS rel2 ( 9.0.2.0.1) Sun Solaris When I bring up the http://myserver.x.com:7779 and go to the demo pages for business intelligence and forms and then to report services. click on jsp or the web paper report, enter a valid connect string. I t

  • What do I use instead of cellPress in DataGrid

    It appears the cellPress event was what you used in AS2.0. I cannot find an equivalent function in AS3.0. I'd much rather do this on a non-editable dataGrid.