ALV in ECC 6.0

Hi Guys..
I am working on ALV in ECC 6.0. I have given top of page and also using Reuse_alv_commentary_write for logo..I am also giving background wallpaper for header in I_background_id parameter in Grid_display. But only logo is displaying and not the background..Please anyone help me to sortout this problem..
Thanks..

IN ALV grid, Logo and BOLD letters are only for display, when try to print the list, system is making ALV List of that. And in ALV List we can not print BOLD fonts or LOGO.
IT CAN'T PRINT A LOGO.
You can print a LOGO only in a sapscript and smartform, not in a ABAP LIST.
The ALV Grid print an abap list.
for the process look at this :
Use transaction code OAER to upload your company logo.
For class name, enter in PICTURES
For class type, enter in OT
For object key, enter in name for the object, for instances Z_YOUR_COMPANY_LOGO(obviously using your company name).
Click execute.
On the next screen, expand the standard doc types tree and double click on the Screen item.
Pick your company logo file from your local drive and upload.
Now use what every name you gave the logo when calling the function module.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = 'Z_YOUR_COMPANY_LOGO'
it_list_commentary = GT_LIST_TOP_OF_PAGE.

Similar Messages

  • ALV  report in ECC 6.0  'TOP-OF-PAGE'

    Hi Friends,
    Please, Kindly help me on below issue with Alv report for 'TOP-OF-PAGE' in ECC 6.0.
    I have written the following code for "top-of-page' which is not getting the text given on this event, please help me if i committed any mistake in code.
    type-pools : slis.
    TABLES : KNA1,VBAK.
    TYPES: BEGIN OF ty_kna1,
            kunnr TYPE kna1-kunnr,
            land1 TYPE kna1-land1,
            name1 TYPE kna1-name1,
            ort01 TYPE kna1-ort01,
           END OF ty_kna1.
    TYPES: BEGIN OF ty_vbak,
            vbeln TYPE vbak-vbeln,
            erdat TYPE vbak-erdat,
            ernam TYPE vbak-ernam,
            netwr TYPE vbak-netwr,
          END OF ty_vbak.
    DATA : W_KNA1 TYPE TY_KNA1,
           W_VBAK TYPE TY_VBAK,
           I_KNA1 TYPE STANDARD TABLE OF TY_KNA1,
           I_VBAK TYPE STANDARD TABLE OF TY_VBAK.
    DATA : W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
           I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA : V_REPID LIKE SY-REPID.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECT-OPTIONS : S_KUNNR FOR KNA1-KUNNR.
    INITIALIZATION.
    V_REPID = SY-REPID.
    PERFORM BUILD_FIELDCAT.
    PERFORM EVENT_CALL.
    PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
    PERFORM DATA_RETRIEVAL.
    PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
    END-OF-SELECTION.
    PERFORM DISPLAY_DATA.
    *&      Form  BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    form BUILD_FIELDCAT .
    W_FIELDCAT-TABNAME    = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME  = 'KUNNR'.
    W_FIELDCAT-SELTEXT_M = 'CUST NAME'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME    = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME  = 'LAND1'.
    W_FIELDCAT-SELTEXT_M = 'COUNTRY'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME    = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME  = 'NAME1'.
    W_FIELDCAT-SELTEXT_M = 'NAME'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME    = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME  = 'ORT01'.
    W_FIELDCAT-SELTEXT_M = 'CITY'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    endform.                    " BUILD_FIELDCAT
    *&      Form  DATA_RETRIEVAL
          text
    -->  p1        text
    <--  p2        text
    form DATA_RETRIEVAL .
    SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
                                   INTO TABLE I_KNA1
                                   WHERE KUNNR IN S_KUNNR.
    endform.                    " DATA_RETRIEVAL
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    form DISPLAY_DATA .
    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           = ' '
       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_GRID_SETTINGS                   =
       IS_LAYOUT                         = ALV_LAYOUT
       IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
       IT_EVENTS                         = V_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                          = I_KNA1
    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_DATA
    *&      Form  BUILD_LISTHEADER
          text
         -->P_IT_LISTHEADER  text
    form BUILD_LISTHEADER  using i_listheader TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'CUSTOMER DETAILS'.
      HLINE-TYP = 'H'.
      append hline to it_listheader.
        CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = I_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    endform.                    " BUILD_LISTHEADER
    *&      Form  EVENT_CALL
          text
    -->  p1        text
    <--  p2        text
    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
          text
    -->  p1        text
    <--  p2        text
    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.
    Thanks in Advance,
    Chandra.

    type-pools : slis.
    TABLES : KNA1,VBAK.
    TYPES: BEGIN OF ty_kna1,
    kunnr TYPE kna1-kunnr,
    land1 TYPE kna1-land1,
    name1 TYPE kna1-name1,
    ort01 TYPE kna1-ort01,
    END OF ty_kna1.
    TYPES: BEGIN OF ty_vbak,
    vbeln TYPE vbak-vbeln,
    erdat TYPE vbak-erdat,
    ernam TYPE vbak-ernam,
    netwr TYPE vbak-netwr,
    END OF ty_vbak.
    DATA : W_KNA1 TYPE TY_KNA1,
    W_VBAK TYPE TY_VBAK,
    I_KNA1 TYPE STANDARD TABLE OF TY_KNA1,
    I_VBAK TYPE STANDARD TABLE OF TY_VBAK.
    DATA : W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA : V_REPID LIKE SY-REPID.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
    WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECT-OPTIONS : S_KUNNR FOR KNA1-KUNNR.
    INITIALIZATION.
    V_REPID = SY-REPID.
    PERFORM BUILD_FIELDCAT.
    PERFORM EVENT_CALL.
    PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
    PERFORM DATA_RETRIEVAL.
    PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
    END-OF-SELECTION.
    PERFORM DISPLAY_DATA.
    *& Form BUILD_FIELDCAT
    text
    --> p1 text
    <-- p2 text
    form BUILD_FIELDCAT .
    W_FIELDCAT-TABNAME = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME = 'KUNNR'.
    W_FIELDCAT-SELTEXT_M = 'CUST NAME'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME = 'LAND1'.
    W_FIELDCAT-SELTEXT_M = 'COUNTRY'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME = 'NAME1'.
    W_FIELDCAT-SELTEXT_M = 'NAME'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-TABNAME = 'I_KNA1'.
    W_FIELDCAT-FIELDNAME = 'ORT01'.
    W_FIELDCAT-SELTEXT_M = 'CITY'.
    APPEND W_FIELDCAT TO I_FIELDCAT.
    CLEAR W_FIELDCAT.
    endform. " BUILD_FIELDCAT
    *& Form DATA_RETRIEVAL
    text
    --> p1 text
    <-- p2 text
    form DATA_RETRIEVAL .
    SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
    INTO TABLE I_KNA1
    WHERE KUNNR IN S_KUNNR.
    endform. " DATA_RETRIEVAL
    *& Form DISPLAY_DATA
    text
    --> p1 text
    <-- p2 text
    form DISPLAY_DATA .
    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 = ' '
    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_GRID_SETTINGS =
    IS_LAYOUT = ALV_LAYOUT
    IT_FIELDCAT = I_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS = V_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 = I_KNA1
    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_DATA
    *& Form BUILD_LISTHEADER
    text
    -->P_IT_LISTHEADER text
    form TOP_OF_PAGE using i_listheader TYPE SLIS_T_LISTHEADER.
    DATA HLINE TYPE SLIS_LISTHEADER.
    HLINE-INFO = 'CUSTOMER DETAILS'.
    HLINE-TYP = 'H'.
    append hline to it_listheader.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = I_LISTHEADER
    i_logo =
    I_END_OF_LIST_GRID =
    endform. " BUILD_LISTHEADER
    *& Form EVENT_CALL
    text
    --> p1 text
    <-- p2 text
    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
    text
    --> p1 text
    <-- p2 text
    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.
    just change the code  as i have u will get it
    plz reward points if useful

  • Icons in ALV ECC 6.0

    Hi All,
    I am displaying ALV by using FM 'REUSE_ALV_LIST_DISPLAY'.
    When i try to display ICON (ICON_4 ICON_RED_LIGHT                 '@0A@'."  Red light; negative) in ALV,
    i get short dump.
    I am using ECC 6.0
    Any pointers in this direction will be helpful.
    Please let me know how to use ICONS in FM using ECC 6.0
    Best Regards,
    Tarun

    Hi Tarun,
    We can use ICONS in this Way.
    I have used this Icons for CS02.
    Hope this will help you.Sample.
    *& Report  ZPP_BOM_CHANGE1
    REPORT  zpp_bom_change1  LINE-SIZE 155.
    TYPE-POOLS : slis.
    INCLUDE <list>.
    TABLES : mast,stpo,cdpos,cdhdr,syst.
    TYPES : BEGIN OF ty_final,
             matnr TYPE mast-matnr,
             werks TYPE mast-werks,
             stlan TYPE mast-stlan,
             stlal TYPE mast-stlal,
             mandt TYPE sy-mandt,
             stlty TYPE stpo-stlty,
           IDNRK TYPE MAST-IDNRK,
             stlnr TYPE stpo-stlnr,
             annam TYPE mast-annam,
             idnrk TYPE stpo-idnrk,
             posnr TYPE stpo-posnr,
             menge TYPE stpo-menge,
             meins TYPE stpo-meins,
             postp TYPE stpo-postp,
             andat TYPE stpo-andat,
             aedat TYPE stpo-aedat,
             maktx TYPE makt-maktx,
             changenr TYPE cdpos-changenr,
             chngind TYPE cdpos-chngind,
             tabkey TYPE cdpos-tabkey,
             value_new TYPE cdpos-value_new,
             qty(13) TYPE c,
             unit(3) TYPE  c,
             qty_old(13) type  c,
             name(12) TYPE c,
             unit_new TYPE cdpos-unit_new,
             value_old TYPE cdpos-value_old,
             unit_old TYPE cdpos-unit_old,
             username TYPE cdhdr-username,
             udate TYPE cdhdr-udate,
             tcode TYPE cdhdr-tcode,
             carrid(10) TYPE c,
             status TYPE string,
             vardat TYPE sy-datum,
             tabix TYPE sy-tabix,
             fname TYPE cdpos-fname,
            END OF ty_final.
    DATA : wa_final TYPE ty_final,
           it_final TYPE TABLE OF ty_final INITIAL SIZE 0.
    TYPES : BEGIN OF ty_mast,
             matnr TYPE mast-matnr,
             werks TYPE mast-werks,
             stlan TYPE mast-stlan,
             stlnr TYPE mast-stlnr,
             stlal TYPE mast-stlal,
             aedat TYPE mast-aedat,
              annam TYPE mast-annam,
           END OF ty_mast.
    DATA : wa_mast TYPE ty_mast,
           it_mast TYPE TABLE OF ty_mast INITIAL SIZE 0.
    TYPES : BEGIN OF ty_stpo,
             mandt TYPE sy-mandt,
             stlty TYPE stpo-stlty,
             stlnr TYPE stpo-stlnr,
             stlkn TYPE stpo-stlkn,
             stpoz TYPE stpo-stpoz,
             annam TYPE stpo-annam,
             aenam TYPE stpo-aenam,
             idnrk TYPE stpo-idnrk,
             posnr TYPE stpo-posnr,
             menge TYPE stpo-menge,
             meins TYPE stpo-meins,
             postp TYPE stpo-postp,
             andat TYPE stpo-andat,
             aedat TYPE stpo-aedat,
             mkey(70),
            END OF ty_stpo.
    DATA : wa_stpo TYPE ty_stpo,
           it_stpo TYPE TABLE OF ty_stpo INITIAL SIZE 0.
    TYPES: BEGIN OF ty_cdpos,
            objectclas TYPE cdpos-objectclas,
            objectid TYPE cdpos-objectid,
            tabkey TYPE cdpos-tabkey,
            changenr TYPE cdpos-changenr,
            chngind TYPE cdpos-chngind,
            value_new TYPE cdpos-value_new,
            unit_new TYPE cdpos-unit_new,
            value_old TYPE cdpos-value_old,
            unit_old TYPE cdpos-unit_old,
            fname TYPE cdpos-fname,
          END OF ty_cdpos.
    DATA: wa_cdpos TYPE ty_cdpos,
          it_cdpos TYPE TABLE OF ty_cdpos INITIAL SIZE 0.
    TYPES: BEGIN OF ty_cdpos1,
            objectclas TYPE cdpos-objectclas,
            objectid TYPE cdpos-objectid,
            tabkey TYPE cdpos-tabkey,
            changenr TYPE cdpos-changenr,
            chngind TYPE cdpos-chngind,
            value_new TYPE cdpos-value_new,
            unit_new TYPE cdpos-unit_new,
            value_old TYPE cdpos-value_old,
            unit_old TYPE cdpos-unit_old,
            fname TYPE cdpos-fname,
          END OF ty_cdpos1.
    DATA: wa_cdpos1 TYPE ty_cdpos1,
          it_cdpos1 TYPE TABLE OF ty_cdpos1 INITIAL SIZE 0.
    TYPES:  BEGIN OF ty_cdhdr,
                objectid TYPE cdhdr-objectid,
                objectclas TYPE cdhdr-objectclas,
                changenr TYPE cdhdr-changenr,
                username TYPE cdhdr-username,
                change_ind TYPE cdhdr-change_ind,
                udate TYPE cdhdr-udate,
                tcode TYPE cdhdr-tcode,
          END OF ty_cdhdr.
    DATA: wa_cdhdr TYPE ty_cdhdr,
              it_cdhdr TYPE STANDARD TABLE OF ty_cdhdr INITIAL SIZE 0.
    TYPES : BEGIN OF ty_makt,
             matnr TYPE makt-matnr,
             maktx TYPE makt-maktx,
            END OF ty_makt.
    DATA : wa_makt TYPE ty_makt,
         it_makt TYPE TABLE OF ty_makt INITIAL SIZE 0.
    TYPES : BEGIN OF ty_stas,
             mandt type stas-mandt,
             stlty type stas-stlty,
             stlnr TYPE stas-stlnr,
             stlal type stas-stlal,
             stlkn type stas-stlkn,
             stasz type stas-stasz,
             stvkn TYPE stas-stvkn,
             skey(70),
            END OF ty_stas.
    DATA : wa_stas TYPE ty_stas,
         it_stas TYPE TABLE OF ty_stas INITIAL SIZE 0.
    DATA: var(20) TYPE c,
          var2(70),
          var4(70),
          var8(2),
          var6(10) TYPE c,
          VAR7(10),
          wa_stlnr TYPE stpo-stlnr.
    *DATA: BEGIN OF wa,
         mandt TYPE sy-mandt,
         stlty TYPE stpo-stlty,
         stlnr TYPE stpo-stlnr,
         END OF wa.
    DATA: BEGIN OF old occurs 0,
          ovalue(15),
          ounit(5),
          okey(70),
          END OF old.
    *DATA: BEGIN OF wa_makt,
           matnr type makt-matnr,
           maktx type makt-maktx,
          END OF wa_makt.
    DATA: var1(18) TYPE c.
    DATA: var5(18) TYPE c.
    DATA: var3(18).
    DATA: var9(40).
    DATA: vardat TYPE sy-datum.
    DATA: qty(18) TYPE c.
         VARDAT1 TYPE SY-DATUM.
    DATA: v_repid LIKE sy-repid.
    DATA: fcat TYPE slis_t_fieldcat_alv,
            header TYPE slis_t_listheader,
           events TYPE slis_t_event.
    CONSTANTS: formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA: layout TYPE slis_layout_alv.
    layout-zebra = 'X'.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE tit1.
    PARAMETERS : s_matnr LIKE mast-matnr,
                     s_werks LIKE mast-werks,
                     s_stlan LIKE mast-stlan.
    Select-options : s_stlal For mast-stlal no-extension no intervals,
                  : Date for sy-datum.
                   s_stlal LIKE mast-stlal.
    SELECTION-SCREEN END OF BLOCK blk1.
    INITIALIZATION.
      tit1 = 'SELECTION-CRITERIA'.
      v_repid = sy-repid.
      PERFORM field_catalog USING fcat[].
      PERFORM build_eventtab USING events[].
    START-OF-SELECTION.
      SELECT matnr werks stlan  stlnr stlal annam FROM mast INTO
      CORRESPONDING FIELDS OF TABLE it_mast
       WHERE matnr = s_matnr
         AND werks = s_werks
         AND stlan = s_stlan
         AND stlal in s_stlal .
      if sy-subrc eq 0.
      SELECT mandt stlty stlnr stlal stlkn stasz stvkn FROM stas
      INTO TABLE it_stas FOR ALL ENTRIES IN it_mast WHERE stlnr = it_mast-stlnr
                                                      AND   stlal = it_mast-stlal
                                                      AND  stlty = 'M'.
      endif.
      if sy-subrc eq 0.
      SELECT mandt stlty stlnr stlkn stpoz idnrk annam aenam posnr menge meins postp andat aedat FROM stpo INTO
      CORRESPONDING FIELDS OF TABLE it_stpo
        FOR ALL ENTRIES IN it_stas
        WHERE stlkn = it_stas-stvkn
              AND stlnr = it_stas-stlnr
              AND postp = 'L'
              AND stlty = 'M'
              AND andat in DATE.
      endif.
      LOOP AT it_stpo INTO wa_stpo.
        CONCATENATE wa_stpo-mandt wa_stpo-stlty wa_stpo-stlnr INTO var.
        CONCATENATE wa_stpo-mandt wa_stpo-stlty wa_stpo-stlnr wa_stpo-stlkn wa_stpo-stpoz INTO var2.
        wa_stpo-mkey = var2.
        MODIFY it_stpo FROM wa_stpo.
      ENDLOOP.
       LOOP AT it_stas INTO wa_stas.
        CONCATENATE wa_stas-mandt wa_stas-stlty wa_stas-stlnr wa_stas-stlal wa_stas-stlkn wa_stas-stasz INTO var4.
        wa_stas-skey = var4.
        MODIFY it_stas FROM wa_stas.
      ENDLOOP.
      SELECT objectid objectclas changenr username change_ind udate tcode FROM cdhdr INTO TABLE it_cdhdr
        WHERE objectid = var AND objectclas = 'STUE'  AND UDATE in Date.
    if sy-subrc eq 0.
      SELECT   objectclas
                objectid
                tabkey
                changenr
                chngind
                value_new
                unit_new
                value_old
                unit_old
                fname
                INTO TABLE it_cdpos FROM cdpos
                FOR ALL ENTRIES IN it_cdhdr WHERE changenr = it_cdhdr-changenr
                AND  tabname = 'STPO' AND ( fname = 'MENGE'  OR fname = 'KEY' ) .
      SELECT   objectclas
                objectid
                tabkey
                changenr
                chngind
                value_new
                unit_new
                value_old
                unit_old
                fname
                INTO TABLE it_cdpos1 FROM cdpos
                FOR ALL ENTRIES IN it_cdhdr WHERE changenr = it_cdhdr-changenr
                AND  tabname = 'STAS' AND chngind = 'D' and fname = 'KEY'.
    endif.
      if sy-subrc eq 0.
      SELECT matnr maktx FROM makt INTO TABLE it_makt
             FOR ALL ENTRIES IN it_stpo
             WHERE matnr = it_stpo-idnrk AND spras = 'EN'.
      endif.
      SORT it_stpo BY idnrk.
      SORT it_stpo BY posnr.
      CLEAR wa_final.
      LOOP AT  it_cdpos INTO wa_cdpos .
       if s_stlal ne ''.
        LOOP AT it_stpo INTO wa_stpo WHERE mkey = wa_cdpos-tabkey.
          wa_final-fname = wa_cdpos-fname.
          wa_final-chngind = wa_cdpos-chngind.
          wa_final-changenr = wa_cdpos-changenr.
          wa_final-tabkey  = wa_cdpos-tabkey.
          wa_final-value_old = wa_cdpos-value_old.
          wa_final-value_new = wa_cdpos-value_new.
          wa_final-unit_new = wa_cdpos-unit_new.
          wa_final-unit_old = wa_cdpos-unit_old.
          READ TABLE it_cdhdr INTO wa_cdhdr WITH KEY changenr = wa_cdpos-changenr.
          wa_final-username = wa_cdhdr-username.
          wa_final-udate = wa_cdhdr-udate.
          wa_final-tcode = wa_cdhdr-tcode.
          APPEND wa_final TO it_final.
        ENDLOOP.
      else.
        wa_final-fname = wa_cdpos-fname.
          wa_final-chngind = wa_cdpos-chngind.
          wa_final-changenr = wa_cdpos-changenr.
          wa_final-tabkey  = wa_cdpos-tabkey.
          wa_final-value_old = wa_cdpos-value_old.
          wa_final-value_new = wa_cdpos-value_new.
          wa_final-unit_new = wa_cdpos-unit_new.
          wa_final-unit_old = wa_cdpos-unit_old.
          READ TABLE it_cdhdr INTO wa_cdhdr WITH KEY changenr = wa_cdpos-changenr.
          wa_final-username = wa_cdhdr-username.
          wa_final-udate = wa_cdhdr-udate.
          wa_final-tcode = wa_cdhdr-tcode.
          APPEND wa_final TO it_final.
       endif.
      ENDLOOP.
    clear wa_final.
      LOOP AT it_final INTO wa_final.
        IF wa_final-chngind = 'I'.
          LOOP AT it_stpo INTO wa_stpo WHERE mkey = wa_final-tabkey.
            WRITE: wa_stpo-idnrk TO var1 NO-ZERO.
            wa_final-idnrk = var1.
            wa_final-posnr = wa_stpo-posnr.
            wa_final-name = wa_stpo-annam.
            wa_final-qty = wa_stpo-menge.
            wa_final-unit = wa_stpo-meins.
            wa_final-vardat = wa_stpo-andat.
            READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_stpo-idnrk.
            wa_final-maktx = wa_makt-maktx.
            MODIFY it_final FROM wa_final.
          ENDLOOP.
           clear wa_final.
            clear wa_stpo.
          LOOP AT it_stpo INTO wa_stpo WHERE mkey ne wa_final-tabkey.
             wa_final-name = wa_final-username.
             wa_final-vardat = wa_final-udate.
            Modify it_final from wa_final.
            endloop.
        ENDIF.
      ENDLOOP.
      LOOP AT it_final INTO wa_final.
        IF wa_final-chngind = 'U'.
          LOOP AT it_stpo INTO wa_stpo WHERE mkey = wa_final-tabkey.
            WRITE: wa_stpo-idnrk TO var1 NO-ZERO.
            wa_final-idnrk = var1.
            MOVE: wa_stpo-posnr to wa_final-posnr.
            MOVE:  wa_final-value_new TO wa_final-qty.
            MOVE: wa_final-unit_new TO wa_final-unit.
            MOVE: wa_final-udate TO wa_final-vardat.
            MOVE: wa_final-username TO wa_final-name.
            old-ovalue = wa_final-value_old.
            old-ounit  = wa_final-unit_old.
            old-okey   = wa_final-tabkey.
            READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_stpo-idnrk.
            wa_final-maktx = wa_makt-maktx.
            MODIFY it_final FROM wa_final.
            Append old.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
    delete adjacent duplicates from old comparing okey.
      LOOP AT it_final INTO wa_final.
      loop at old where okey = wa_final-tabkey.
       if wa_final-chngind = 'I'.
           wa_final-qty = old-ovalue.
            wa_final-unit = old-ounit.
        Modify it_final from wa_final.
       endif.
      endloop.
    endloop.
       if s_stlal ne ''.
    clear wa_final.
      LOOP AT it_cdpos1 INTO wa_cdpos1.
      if wa_cdpos1-chngind = 'D'.
        var8 = wa_cdpos1-tabkey+12(2).
      Read table it_stas into wa_stas with key stlal = var8.
       if sy-subrc eq 0.
         wa_final-chngind = wa_Cdpos1-chngind.
         wa_final-tabkey  = wa_cdpos1-tabkey.
       READ TABLE it_cdhdr INTO wa_cdhdr WITH KEY changenr = wa_cdpos1-changenr.
          wa_final-username = wa_cdhdr-username.
          wa_final-udate = wa_cdhdr-udate.
       append wa_final to it_final.
       endif.
      endif.
      endloop.
      endif.
      SORT it_final BY  andat udate .
      SORT it_final BY changenr.
      sort it_final by idnrk.
      LOOP AT it_final INTO wa_final .
        IF wa_final-chngind = 'I' .
          MOVE: icon_green_light TO wa_final-carrid.
          MOVE: 'Created' TO wa_final-status.
         MOVE: wa_final-menge TO wa_final-qty.
         MOVE: wa_final-meins TO wa_final-unit.
         MOVE: wa_final-annam TO wa_final-name.
         MOVE: wa_final-andat TO wa_final-vardat.
          MODIFY it_final FROM wa_final.
        ENDIF.
        IF wa_final-chngind = 'U'.
          MOVE: icon_yellow_light TO wa_final-carrid.
          MOVE: 'Changed' TO wa_final-status.
         MOVE: wa_stpo-idnrk to wa_final-idnrk.
         MOVE:  wa_final-value_new TO wa_final-qty.
         MOVE: wa_final-meins TO wa_final-unit.
         MOVE: wa_final-udate TO wa_final-vardat.
         MOVE: wa_final-username TO wa_final-name.
          MODIFY it_final FROM wa_final.
        ENDIF.
        IF  wa_final-chngind = 'D'.
          MOVE: icon_red_light TO wa_final-carrid.
          MOVE: 'Deleted' TO wa_final-status.
          wa_final-idnrk = ''.
          wa_final-posnr = ''.
          wa_final-maktx = ''.
          wa_final-qty = ''.
          wa_final-unit = ''.
          wa_final-value_old = ''.
          wa_final-unit_old = ''.
          wa_final-name = wa_final-username.
          wa_final-vardat = wa_final-udate.
          MODIFY it_final FROM wa_final.
        ENDIF.
      ENDLOOP.
      PERFORM list_header USING header[] .
      PERFORM alv_display.
    *&      Form  field_catalog
          text
         -->P_FCAT[]  text
    FORM field_catalog  USING p_fcat TYPE slis_t_fieldcat_alv.
      DATA: a_fcat TYPE slis_fieldcat_alv.
      REFRESH p_fcat[].
      CLEAR a_fcat.
      a_fcat-col_pos     = 1.
      a_fcat-fieldname   = 'CARRID'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Indicator'.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 2.
      a_fcat-fieldname   = 'STATUS'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Status'.
      a_fcat-outputlen   = 10.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 3.
      a_fcat-fieldname   = 'VARDAT'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'DATE'.
      a_fcat-outputlen   = 10.
    APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos    = 4.
      a_fcat-fieldname   = 'IDNRK'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Material'.
    a_fcat-lzero       = ' '.
    a_fcat-outputlen   = 20.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos      = 5.
      a_fcat-fieldname   = 'MAKTX'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Material Description'.
      a_fcat-outputlen   = 40.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 6.
      a_fcat-fieldname   = 'POSNR'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Item'.
      a_fcat-outputlen   = 06.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 7.
      a_fcat-fieldname   = 'VALUE_OLD'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Old_Quantity'.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 8.
      a_fcat-fieldname   = 'UNIT_OLD'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Old_Unit'.
      a_fcat-outputlen   = 09.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 9.
      a_fcat-fieldname   = 'QTY'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'New_Quantity'.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 10.
      a_fcat-fieldname   = 'UNIT'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'New_Unit'.
      a_fcat-outputlen   = 09.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
      a_fcat-col_pos     = 11.
      a_fcat-fieldname   = 'NAME'.
      a_fcat-tabname     = 'IT_FINAL'.
      a_fcat-seltext_l   = 'Username'.
      APPEND a_fcat TO p_fcat.
      CLEAR a_fcat.
    ENDFORM.                    " field_catalog
    *&      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               = sy-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                      =
      I_GRID_SETTINGS                   =
         is_layout                        = layout
         it_fieldcat                      = fcat[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      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
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_final[]
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.ENDIF
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDFORM.                    " alv_display
    *&      Form  list_header
          text
         -->P_HEADER[]  text
    FORM list_header  USING    p_header TYPE slis_t_listheader.
      DATA: a_header TYPE slis_listheader,
              w_date(35),
              text1(50) TYPE c,
              text2(50) TYPE c,
              text3(50) TYPE c,
               text4(50) TYPE c,
               text5(50) type c,
               text6(50) type c.
      WRITE: s_matnr TO var5 NO-ZERO.
      select single matnr maktx from makt into wa_makt where matnr = s_matnr.
      var9 = wa_makt-maktx.
      WRITE: text-001 TO text1,
               text-002 TO text2,
               text-003 TO text3,
               text-004 TO text4,
               text-005 to text5,
               text-006 to text6.
    *clear a_header.
    write:  date-low to var6 using EDIT MASK '==PDATE'.
    write:  date-high to var7 using EDIT MASK '==PDATE'.
    concatenate 'From :' VAR6 '  To : ' VAR7 into w_date.
    clear a_header.
      a_header-typ = 'H'.
      a_header-info = 'Bevcon Wayors Pvt.Ltd'.
      APPEND a_header TO p_header.
      a_header-typ = 'H'.
      a_header-info = 'Engg Changes in Material BOM'.
      APPEND a_header TO p_header.
      a_header-typ = 'S'.
      a_header-info = var5.
      a_header-key  = text1.
      APPEND a_header TO p_header.
      a_header-typ = 'S'.
      a_header-info =  var9.
      a_header-key  = text2.
      APPEND a_header TO p_header.
        a_header-typ = 'S'.
      a_header-info = s_werks.
      a_header-key  = text3.
      APPEND a_header TO p_header.
      a_header-typ = 'S'.
      a_header-info = s_stlan.
      a_header-key  = text4.
      APPEND a_header TO p_header.
      a_header-typ = 'S'.
      a_header-info = s_stlal-low.
      a_header-key  = text5.
      APPEND a_header TO p_header.
       a_header-typ = 'S'.
      a_header-info =  w_date.
      a_header-key  = text6.
      APPEND a_header TO p_header.
    ENDFORM.                    " list_header
    *&      Form  build_eventtab
          text
         -->P_EVENTS[]  text
    FORM build_eventtab  USING    p_events TYPE slis_t_event.
      DATA: a_events TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = p_events.
      READ TABLE p_events INTO a_events WITH KEY name = slis_ev_top_of_page.
      IF sy-subrc EQ 0.
        MOVE formname_top_of_page TO a_events-form.
        APPEND a_events TO p_events.
      ENDIF.
    ENDFORM.                    " build_eventtab
    *&      Form  top_of_page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = header
         I_LOGO                       = ''
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "top_of_page
    Best of Luck.
    with Regards,
    Sharmishta.

  • TOP OF PAGE in ALV Grid Display in ECC 6.0

    Hi,
    I have an issue with top of page in Alv grid display
    in ECC 6.0. I searched  the forum for this, but
    couldnt fine any solution.
    I am using Reuse_alv_commentary_write to display the header.
    It's working fine in 4.7E but the same code is not working in
    ECC 6.0. The header is shown as  empty.
    I tried to execute some other programs with same FM and
    even standard SAP Prgrms too, even they raise the same issue
    the top of page is empty.
    Please suggest any other FM or approach to use in ECC 6.0 to get the top of page.
    Thanks in advance
    Kaavya.

    hiii
    use following code
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
    *     I_INTERFACE_CHECK                 = ' '
    *     I_BYPASSING_BUFFER                = ' '
    *     I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = sy-repid
    *     I_CALLBACK_PF_STATUS_SET          = ' '
    *     I_CALLBACK_USER_COMMAND           = ' '
         I_CALLBACK_TOP_OF_PAGE            = 'F0020_TOP_OF_PAGE'
    *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *     I_CALLBACK_HTML_END_OF_LIST       = ' '
         i_structure_name                  = 'I_OUTPUT'
    *     I_BACKGROUND_ID                   = ' '
    *     I_GRID_TITLE                      =
    *     I_GRID_SETTINGS                   =
    *     IS_LAYOUT                       = wa_layout
         it_fieldcat           = i_fieldcat
    *     IT_EXCLUDING                      =
    *     IT_SPECIAL_GROUPS                 =
    *     IT_SORT                           =
    *     IT_FILTER                         =
    *     IS_SEL_HIDE                       =
         i_default                         = 'X'
         i_save                            = 'X'
         is_variant                        = wa_variant
    *     IT_EVENTS                         =
    *     IT_EVENT_EXIT                     =
    *     IS_PRINT                          =
    *     IS_REPREP_ID                      =
    *     I_SCREEN_START_COLUMN             = 0
    FORM f0020_top_of_page.
      DATA: i_listheader TYPE slis_t_listheader WITH HEADER LINE,
            w_date like sy-datum.
      move:
        'H'   TO i_listheader-typ,
        '                 Corporation'   TO i_listheader-info.
    *    text-021    TO i_listheader-info.
    *write: 'Camtura Corporations'.
      APPEND i_listheader.
      WRITE sy-datum TO w_date.
      move:
        'S'   TO i_listheader-typ,
        'Execution date'   TO i_listheader-key,
        w_date     TO i_listheader-info.
      APPEND i_listheader.
    regards
    twinkal

  • Download problems in ALV report in ECC 6.0

    Hello All,
    While downloading ALV report to excel/txt by standard method.(Export> Local File> Spreadsheet)
    I am facing an issue where I am getting 2 decimal places to a figure.
    Where I do not require zeros if not necessary.
    Eg. If the amnt is 200 then currently its showing like 200.00 but  I want it like 200 only.
    The type is char only.
    Kindly please advice me how to overcome this problem.
    Thanks,
    Yogesh.

    Hi Yogesh,
    ALV behaves inconsistent: I used excel inplace function and got exactly what you required, even worse: In the grid, I have always 3 decimal places, in excel I got a maximum of 2 decimal places, one if there was only one and none if in grid it was .000.
    No obvous solution.
    You could create the grid cells as strings and remove all trailing zeros.
    Regards,
    Clemens

  • ** Filtering is not working correctly in ALV (REUSE_ALV_GRID_DISPLAY)

    Hi Friends,
    We have one Z report that output is displayed in ALV. We are using the standard FM 'REUSE_ALV_GRID_DISPLAY. 
    We have requirement to remove leading zeros for the field like Material Number (MATNR), Equipment Number (EQUNR) etc. We did the changes by applying the field catalog properties as below.
    lw_fieldcat-lzero = space.
    lw_fieldcat-no_zero = 'X'.
    After this, the MATNR and EQUNR is displayed correctly in the ALV. (Leading zeros are suppressed). But, when we do filter for these fields, in the filter window it displays all the values with leading zeros.
    1. We don't understand why it is showing in the Filter widow with all leading zeros. All it shows all the records instead of unique items.
    Later on, we removed the above fieldcat coding. Then, we have called the CONVERSION_EXIT routines (in the domain) for the fields to remove leading zeros.
    Now, the MATNR and EQUNR is displayed correctly (without leading zeros) in ALV. When we do filter, it is also doing filtering correctly. But, when we do filter which have EQUNR having long values (after zero suppression), it is not working correctly. i.e no items are displayed in the ALV.
    Not only for this items. If we filter character columns which have long text, it is not filtering correctly.
    2. It is not able to understand why the filtering is not working for long items. But in the standard report, the filtering is working correctly.
    We are using SAP ECC 6.0.
    Friends, can you clarify the about doubts. It is surprising for me.
    Kind regards,
    Jegathees P.
    Our customer is asked to remove the leading zeros for the numeric field

    Hi Clemens Li
    I agreed on your point. When we define the Internal table the type for element EQUNR & QUMNR , we are referring the SAP data element for EQUNR, QMNUM field.
    Our doubt is even though we refer the standard data element, in the ALV display, it shows with leading zeros and also it creates problems in the filtering and in the filter window all values instead of unique nos.
    Hi Abhii
    I have given below the fieldcat coding.
    Friends, can you kindly clarify the above said problems. Since we use SAP ECC 6.0 any notes or patches apply is required. ( this is the basic functionality in ALV, that is my doubt).
        wls_fieldcat-col_pos   = wpv_pos.
        wls_fieldcat-fieldname = wpv_champ.
        wls_fieldcat-tabname   = wlc_tabname.
      wls_fieldcat-seltext_s = wls_fieldcat-seltext_m
        wls_fieldcat-seltext_l = wpv_libelle.
        wls_fieldcat-ddictxt   = 'L'.
        wls_fieldcat-no_out    = wv_no_out.
        APPEND wls_fieldcat TO gt_fieldcat.
    Kind regards,
    Jegathees P.

  • Short dump while export grid alv with subtotals.

    hello,
    its strange and i face first time that my grid alv report goin to short dump while i done subtotals and send it to local file thru export.
    if am not doing subtotals then export it to local file it goin fine.
    whats it has problem plz give ur helping hends.
    here i copied a dump msg also.
    Short text
        Error at assignment: Overwritten protected field.
    What happened?
        Error in the ABAP Application Program
        The current ABAP program "SAPLKKBL" had to be terminated because it has
        come across a statement that unfortunately cannot be executed.
    Error analysis
        A new value is to be assigned to the field "<L_UNIT>", although this field is
        entirely or partly protected against changes.
        The following are protected against changes:
        - Character literals or numeric literals
        - Constants (CONSTANTS)
        - Parameters of the category IMPORTING REFERENCE for functions and
        methods
        - Untyped field symbols not yet assigned a field using ASSIGN
        - TABLES parameters if the actual parameter is protected against changes
        - USING reference parameters and CHANGING parameters for FORMs, if the
        actual parameter is protected against changes and
        - Accesses using field symbols if the field assigned using ASSIGN is
        protected (or partially protected, e.g. key components of an internal
        table with the type SORTED or HASHED TABLE) against changes
        - Accesses using references, if the field bound to the reference is
        protected (or partially protected) against changes
        - External write accesses to READ-ONLY attributes,
        - Content of a shared object area instance accessed using a shared lock
        (ATTACH_FOR_READ).
    regards amit.

    & Object Id               :                                                  &
    & Object Name             :                                                  &
    & Function Module Name    : Sales Register                                   &
    & Transaction Code        :                                                  &
    & Author                  : Amit gujargoud                                      &
    & Module Name             : SD                                               &
    & Sub-Module              :                                                  &
    & Program Type            : Dialog            Create Date     : 02/02/2007   &
    & SAP Release             : ECC 6.0                                          &
    & Description             : Sales Register - Detail                           &
    *& Report  ZSALESREGISTER
    REPORT  zsd_salesregister.
    *&       TYPE-POOLS
    TYPE-POOLS : slis.
    *&       TABLES
    TABLES: vbrp,  "Billing Document: Item Data
            vbrk,  "Billing Document: Header Data
            lips,  "SD document: Delivery: Item data
            lfa1,  "Vendor Master (General Section)
            kna1,  "General Data in Customer Master
            vbak,  "Sales Document: Header Data
            vbpa,  "Sales Document: Partner (Gopal)
            likp,  "SD Document: Delivery Header Data
            vbap,  "Sales Document: Item Data
            vbkd,  "Sales Document: Business Data
            mara.  "General Material Data
    *&       DATA DECLARATION
    DATA: BEGIN OF i_report OCCURS 100,
            vbeln LIKE vbrp-vbeln,        "Billing Document
      posnr LIKE vbrp-posnr,
      matnr  LIKE mara-matnr ,
      aubel LIKE vbrp-aubel,        "Sales Document
       fkimg LIKE vbrp-fkimg,        "Actual billed quantity
       vrkme LIKE vbrp-vrkme,        "Sales unit
       arktx LIKE vbrp-arktx,        "Short text for sales order item
       vgbel LIKE vbrp-vgbel,        "Doc number of the reference document
       werks  LIKE vbap-werks,
      vkgrp  LIKE vbrp-vkgrp,
      fklmg LIKE vbrp-fklmg,
      volum LIKE vbrp-volum,
       vkbur  LIKE vbrp-vkbur,
      vtweg_auft LIKE vbrp-vtweg_auft,
            auart  LIKE vbak-auart,
            tabix LIKE sy-tabix,          "Internal Table, Current Row Index
            name1 LIKE kna1-name1,                              "Name1
            exnum LIKE j_1iexchdr-exnum,  "Official Excise Document Number
            orqty TYPE p DECIMALS 0,
            penqty TYPE p DECIMALS 0,     "Cumulative order qty in sls units
            openqty TYPE p DECIMALS 0,    "Cumulative order qty in sls units
            ean11 LIKE lips-ean11,        "International Article No(EAN/UPC)
           volum LIKE lips-volum,
            lgmng LIKE lips-lgmng,
            traid LIKE likp-traid,
            ort01 LIKE lfa1-ort01,        "City
            lifnr LIKE lfa1-lifnr,        "A/c Number of Vendor or Creditor
            netwr LIKE vbrp-netwr,        "Net val of bill item in doc currency
            kunnr LIKE vbak-kunnr,        "Sold-to party
            adrnr LIKE vbpa-adrnr,        "Address
            city1 LIKE adrc-city1,        "City
            tprtr LIKE lfa1-name1,                              "Name 1
            knumv LIKE konv-knumv,        "Number of the document condition
            kposn LIKE konv-kposn,
            rate  LIKE konv-kbetr,        "Rate (cond amount or percentage)
            bas_val LIKE konv-kwert,      "Rate (cond amount or percentage)
            exc_duty LIKE konv-kwert,     "Rate (cond amount or percentage)
            ed_cess LIKE konv-kwert,      "Rate (cond amount or percentage)
            freight LIKE konv-kwert,      "Rate (cond amount or percentage)
            pack    LIKE konv-kwert,      "Rate (cond amount or percentage)
            cst LIKE konv-kwert,          "Rate (cond amount or percentage)
            vat LIKE konv-kwert,          "Rate (cond amount or percentage)
            ent_tax LIKE konv-kwert,      "Rate (cond amount or percentage)
            tot_inv LIKE konv-kwert,       "Rate (cond amount or percentage)
            tot_inv_round LIKE konv-kwert,   "Rate (cond amount or percentage)
            disc_tot  LIKE konv-kwert,       "Discount total - Z001 to Z020
            vat_rate LIKE konv-kbetr,
            cst_rate LIKE konv-kbetr,
            lst_rate LIKE konv-kbetr,
            mwsbk LIKE vbrk-mwsbk,
            bas_tax LIKE konv-kwert,
            dev_tax LIKE konv-kwert,
            tcs_tax LIKE konv-kwert,
            bas_tot LIKE konv-kwert,
            lst     LIKE konv-kwert,
            vkorg   LIKE vbak-vkorg,
            mvgr1   LIKE mvke-mvgr1,
            mvgr2   LIKE mvke-mvgr2,
            mvgr3   LIKE mvke-mvgr3,
            mvgr4   LIKE mvke-mvgr4,
            mvgr5   LIKE mvke-mvgr5,
            text1   LIKE tvm1t-bezei,
            text2   LIKE tvm1t-bezei,
            text3   LIKE tvm1t-bezei,
            text4   LIKE tvm1t-bezei,
            text5   LIKE tvm1t-bezei,
            bismit_area TYPE p DECIMALS 4,   " Size (L*B) in mm
            face_area  TYPE p DECIMALS 2,   " Face Area Declaration
            notional_area TYPE p DECIMALS 2,
            stock_pcs TYPE p ,               " decimals 3 Pcs of Stock
            labst  LIKE mard-labst,           " Valuated Unrestricted-Use Stock
            bismt  LIKE mara-bismt,           " Size (L*B) in mm
            normt  LIKE mara-normt,           " Industry Standard Description
            temp   TYPE p DECIMALS 2,
            temp1  TYPE p DECIMALS 2,
            temp2  TYPE p DECIMALS 2,
            temp3  TYPE p DECIMALS 2,
            temp4  TYPE p DECIMALS 2,
            temp5  TYPE p DECIMALS 2,
            temp6  TYPE p DECIMALS 2,
            temp7  TYPE p DECIMALS 2,
            temp8  TYPE p DECIMALS 2,
            temp9  TYPE p DECIMALS 2,
            temp10 TYPE p DECIMALS 2,
            temp11 TYPE p DECIMALS 2,
            temp12 TYPE p DECIMALS 2,
            temp13 TYPE p DECIMALS 0,
            temp14 TYPE p DECIMALS 0,
            temp15 TYPE p DECIMALS 0,
            temp16 TYPE p DECIMALS 2,
            temp17 TYPE p DECIMALS 2,
            temp18 TYPE p DECIMALS 2,
            temp19 TYPE p DECIMALS 2,
            temp20 TYPE p DECIMALS 2,
            temp21 TYPE p DECIMALS 2,
            waybill(20) TYPE c,
            audat  LIKE vbak-audat,     "Document Date (Date Received/Sent)
            lgort  LIKE vbap-lgort,     "Storage location
            lgobe  LIKE t001l-lgobe,    "Description of storage location
            erdat  LIKE vbrk-erdat,     "Date on which the record was created
            exdat  LIKE j_1iexchdr-exdat,  "Excise Document Date
            vbtyp  LIKE vbak-vbtyp,        "SD document category
            acdt   LIKE likp-wadat_ist,    "Actual goods movement date
            fkdat  LIKE vbrk-fkdat,
            ship   LIKE kna1-name1,      "Name1 (Ship-to party)
            fksto  LIKE vbrk-fksto,
            fkart  LIKE vbrk-fkart,
            bezei  LIKE t005u-bezei,
            vtweg  LIKE vbak-vtweg,
            spart  LIKE vbak-spart,
            matkl  LIKE mara-matkl,
            wgbez  LIKE t023t-wgbez,
            mtart  LIKE mara-mtart,
            labor  LIKE mara-labor,
            ferth  LIKE mara-ferth,
            lbtxt  LIKE t024x-lbtxt,
            niels  LIKE kna1-niels,
            kukla  LIKE kna1-kukla,
            desc   LIKE tvkbt-bezei,
            brsch  LIKE kna1-brsch,
            zeinr  LIKE mara-zeinr,
            bzirk  LIKE vbrk-bzirk,
            area_desc   LIKE tnlst-bezei,
            dist_desc   TYPE tkukt-vtext,
            taluka_desc TYPE t016t-brtxt,
            sales_desc  TYPE tvgrt-bezei,
            kmein       LIKE konv-kmein,    "Sales Unit
            challan     LIKE likp-vbeln,
            END OF i_report.
    data for MVKE
    DATA: BEGIN OF i_report_mvke OCCURS 0,
            vbeln   LIKE vbrp-vbeln,        "Billing Document
            aubel   LIKE vbrp-aubel,        "Sales Document
            vkorg   LIKE vbak-vkorg,
            matnr   LIKE mara-matnr ,
            vtweg   LIKE vbak-vtweg,
            END OF i_report_mvke.
    ***********************TEMP COPY
    DATA: BEGIN OF i_report_temp OCCURS 0,
           vbeln LIKE vbrp-vbeln,        "Billing Document
      posnr LIKE vbrp-posnr,
      matnr  LIKE mara-matnr ,
      aubel LIKE vbrp-aubel,        "Sales Document
       fkimg LIKE vbrp-fkimg,        "Actual billed quantity
       vrkme LIKE vbrp-vrkme,        "Sales unit
       arktx LIKE vbrp-arktx,        "Short text for sales order item
       vgbel LIKE vbrp-vgbel,        "Doc number of the reference document
       werks  LIKE vbap-werks,
      vkgrp  LIKE vbrp-vkgrp,
      fklmg LIKE vbrp-fklmg,
      volum LIKE vbrp-volum,
       vkbur  LIKE vbrp-vkbur,
      vtweg_auft LIKE vbrp-vtweg_auft,
            auart  LIKE vbak-auart,
            tabix LIKE sy-tabix,          "Internal Table, Current Row Index
            name1 LIKE kna1-name1,                              "Name1
            exnum LIKE j_1iexchdr-exnum,  "Official Excise Document Number
            orqty TYPE p DECIMALS 0,
            penqty TYPE p DECIMALS 0,     "Cumulative order qty in sls units
            openqty TYPE p DECIMALS 0,    "Cumulative order qty in sls units
            ean11 LIKE lips-ean11,        "International Article No(EAN/UPC)
           volum LIKE lips-volum,
            lgmng LIKE lips-lgmng,
            traid LIKE likp-traid,
            ort01 LIKE lfa1-ort01,        "City
            lifnr LIKE lfa1-lifnr,        "A/c Number of Vendor or Creditor
            netwr LIKE vbrp-netwr,        "Net val of bill item in doc currency
            kunnr LIKE vbak-kunnr,        "Sold-to party
            adrnr LIKE vbpa-adrnr,        "Address
            city1 LIKE adrc-city1,        "City
            tprtr LIKE lfa1-name1,                              "Name 1
            knumv LIKE konv-knumv,        "Number of the document condition
            kposn LIKE konv-kposn,
            rate  LIKE konv-kbetr,        "Rate (cond amount or percentage)
            bas_val LIKE konv-kwert,      "Rate (cond amount or percentage)
            exc_duty LIKE konv-kwert,     "Rate (cond amount or percentage)
            ed_cess LIKE konv-kwert,      "Rate (cond amount or percentage)
            freight LIKE konv-kwert,      "Rate (cond amount or percentage)
            pack    LIKE konv-kwert,      "Rate (cond amount or percentage)
            cst LIKE konv-kwert,          "Rate (cond amount or percentage)
            vat LIKE konv-kwert,          "Rate (cond amount or percentage)
            ent_tax LIKE konv-kwert,      "Rate (cond amount or percentage)
            tot_inv LIKE konv-kwert,       "Rate (cond amount or percentage)
            tot_inv_round LIKE konv-kwert,   "Rate (cond amount or percentage)
            disc_tot  LIKE konv-kwert,       "Discount total - Z001 to Z020
            vat_rate LIKE konv-kbetr,
            cst_rate LIKE konv-kbetr,
            lst_rate LIKE konv-kbetr,
            mwsbk LIKE vbrk-mwsbk,
            bas_tax LIKE konv-kwert,
            dev_tax LIKE konv-kwert,
            tcs_tax LIKE konv-kwert,
            bas_tot LIKE konv-kwert,
            lst     LIKE konv-kwert,
            vkorg   LIKE vbak-vkorg,
            mvgr1   LIKE mvke-mvgr1,
            mvgr2   LIKE mvke-mvgr2,
            mvgr3   LIKE mvke-mvgr3,
            mvgr4   LIKE mvke-mvgr4,
            mvgr5   LIKE mvke-mvgr5,
            text1   LIKE tvm1t-bezei,
            text2   LIKE tvm1t-bezei,
            text3   LIKE tvm1t-bezei,
            text4   LIKE tvm1t-bezei,
            text5   LIKE tvm1t-bezei,
            bismit_area TYPE p DECIMALS 4,   " Size (L*B) in mm
            face_area  TYPE p DECIMALS 2,   " Face Area Declaration
            notional_area TYPE p DECIMALS 2,
            stock_pcs TYPE p ,               " decimals 3 Pcs of Stock
            labst  LIKE mard-labst,           " Valuated Unrestricted-Use Stock
            bismt  LIKE mara-bismt,           " Size (L*B) in mm
            normt  LIKE mara-normt,           " Industry Standard Description
            temp   TYPE p DECIMALS 2,
            temp1  TYPE p DECIMALS 2,
            temp2  TYPE p DECIMALS 2,
            temp3  TYPE p DECIMALS 2,
            temp4  TYPE p DECIMALS 2,
            temp5  TYPE p DECIMALS 2,
            temp6  TYPE p DECIMALS 2,
            temp7  TYPE p DECIMALS 2,
            temp8  TYPE p DECIMALS 2,
            temp9  TYPE p DECIMALS 2,
            temp10 TYPE p DECIMALS 2,
            temp11 TYPE p DECIMALS 2,
            temp12 TYPE p DECIMALS 2,
            temp13 TYPE p DECIMALS 0,
            temp14 TYPE p DECIMALS 0,
            temp15 TYPE p DECIMALS 0,
            temp16 TYPE p DECIMALS 2,
            temp17 TYPE p DECIMALS 2,
            temp18 TYPE p DECIMALS 2,
            temp19 TYPE p DECIMALS 2,
            temp20 TYPE p DECIMALS 2,
            temp21 TYPE p DECIMALS 2,
            waybill(20) TYPE c,
            audat  LIKE vbak-audat,     "Document Date (Date Received/Sent)
            lgort  LIKE vbap-lgort,     "Storage location
            lgobe  LIKE t001l-lgobe,    "Description of storage location
            erdat  LIKE vbrk-erdat,     "Date on which the record was created
            exdat  LIKE j_1iexchdr-exdat,  "Excise Document Date
            vbtyp  LIKE vbak-vbtyp,        "SD document category
            acdt   LIKE likp-wadat_ist,    "Actual goods movement date
            fkdat  LIKE vbrk-fkdat,
            ship   LIKE kna1-name1,      "Name1 (Ship-to party)
            fksto  LIKE vbrk-fksto,
            fkart  LIKE vbrk-fkart,
            bezei  LIKE t005u-bezei,
            vtweg  LIKE vbak-vtweg,
            spart  LIKE vbak-spart,
            matkl  LIKE mara-matkl,
            wgbez  LIKE t023t-wgbez,
            mtart  LIKE mara-mtart,
            labor  LIKE mara-labor,
            ferth  LIKE mara-ferth,
            lbtxt  LIKE t024x-lbtxt,
            niels  LIKE kna1-niels,
            kukla  LIKE kna1-kukla,
            desc   LIKE tvkbt-bezei,
            brsch  LIKE kna1-brsch,
            zeinr  LIKE mara-zeinr,
            bzirk  LIKE vbrk-bzirk,
            area_desc   LIKE tnlst-bezei,
            dist_desc   TYPE tkukt-vtext,
            taluka_desc TYPE t016t-brtxt,
            sales_desc  TYPE tvgrt-bezei,
            kmein       LIKE konv-kmein,    "Sales Unit
            challan     LIKE likp-vbeln,
            END OF i_report_temp.
    DATA: BEGIN OF i_vbap OCCURS 0 ,
            posnr LIKE vbap-posnr,
            vbeln LIKE vbap-vbeln ,
            matnr LIKE vbap-matnr ,
            werks LIKE vbap-werks,
       kwmeng LIKE vbap-kwmeng,
      lgort LIKE vbap-lgort,
            matkl LIKE mara-matkl,
            wgbez LIKE t023t-wgbez,
            mtart LIKE mara-mtart,
          END OF i_vbap .
    DATA : w_temp_cal(20) TYPE c.
    DATA : w_face_area TYPE p DECIMALS 4,
           w_notinal_area TYPE p DECIMALS 4.
    **MVKE
    DATA: BEGIN OF itab_mvke OCCURS 0,
          matnr   LIKE mvke-matnr,
          vkorg   LIKE vbak-vkorg,
          vtweg   LIKE mvke-vtweg,
          mvgr1   LIKE mvke-mvgr1,
          mvgr2   LIKE mvke-mvgr2,
          mvgr3   LIKE mvke-mvgr3,
          mvgr4   LIKE mvke-mvgr4,
          mvgr5   LIKE mvke-mvgr5,
          END OF itab_mvke.
    **TVM1T
    DATA : BEGIN OF itab_tvm1t OCCURS 0,
            spras LIKE tvm1t-spras,
          mvgr1 LIKE tvm1t-mvgr1,
          bezei LIKE tvm1t-bezei,
      END OF itab_tvm1t.
    DATA : BEGIN OF itab_tvm2t OCCURS 0,
          spras LIKE tvm2t-spras,
        mvgr2 LIKE tvm2t-mvgr2,
        bezei LIKE tvm2t-bezei,
    END OF itab_tvm2t.
    DATA : BEGIN OF itab_tvm3t OCCURS 0,
          spras LIKE tvm3t-spras,
        mvgr3 LIKE tvm3t-mvgr3,
        bezei LIKE tvm3t-bezei,
    END OF itab_tvm3t.
    DATA : BEGIN OF itab_tvm4t OCCURS 0,
          spras LIKE tvm4t-spras,
        mvgr4 LIKE tvm4t-mvgr4,
        bezei LIKE tvm4t-bezei,
    END OF itab_tvm4t.
    DATA : BEGIN OF itab_tvm5t OCCURS 0,
          spras LIKE tvm5t-spras,
        mvgr5 LIKE tvm5t-mvgr5,
        bezei LIKE tvm5t-bezei,
    END OF itab_tvm5t.
    DATA:      itab_t024x TYPE STANDARD TABLE OF t024x WITH HEADER LINE,
          it_report LIKE LINE OF i_report OCCURS 0,
          i_mvke LIKE LINE OF itab_mvke OCCURS 0.
    **VBKD
    DATA: BEGIN OF i_vbkd OCCURS 0 ,
            vbeln LIKE vbkd-vbeln ,
            posnr LIKE vbkd-posnr ,
           bzirk LIKE vbkd-bzirk ,
          END OF i_vbkd .
    DATA: BEGIN OF i_lips OCCURS 0,
       vbeln LIKE lips-vbeln,
            ean11 LIKE lips-ean11,
             volum LIKE lips-volum,
             lgmng LIKE lips-lgmng,
            waybill(20) TYPE c,
          END OF i_lips.
    DATA: BEGIN OF i_vbrk OCCURS 0,
            vbeln LIKE vbrk-vbeln,
            rfbsk LIKE vbrk-rfbsk,      "Status for transfer to accounting
            erdat LIKE vbrk-erdat,      "Dt on which the record was created
            fkdat LIKE vbrk-fkdat,      "CHANGE MADE BY PARTHA RAHAMAN
            fksto LIKE vbrk-fksto,      "GOPAL:: CANCELLED DOC. DO NOT PRNT.
            netwr LIKE vbrk-netwr,
            fkart LIKE vbrk-fkart, "Gopal:when billng typ=s1 do not pnt 1jul
            knumv LIKE vbrk-knumv,
            mwsbk LIKE vbrk-mwsbk,
            bzirk LIKE vbrk-bzirk,
            vtweg LIKE vbrk-vtweg,
            spart LIKE vbrk-spart,
           END OF i_vbrk.
          *structure for MARD Table by kalika
    DATA : BEGIN OF itab_mard OCCURS 0,
           matnr LIKE mard-matnr,
          werks LIKE mard-werks,
           labst LIKE mard-labst,          " Valuated Unrestricted-Use Stock
          lgort LIKE mard-lgort,          " Storage Location
           END OF itab_mard.
          *structure for MARD Table by kalika
    DATA:BEGIN OF i_kna1 OCCURS 0,
          vbeln LIKE vbak-vbeln,
          name1 LIKE kna1-name1,
          kunnr LIKE kna1-kunnr,
          regio LIKE kna1-regio,
         bezei LIKE t005u-bezei,
          land1 LIKE kna1-land1,
          vkgrp LIKE vbak-vkgrp,
          niels LIKE kna1-niels,
          kukla LIKE kna1-kukla,
          brsch LIKE kna1-brsch,
          vkbur LIKE vbak-vkbur,
         END OF i_kna1.
    DATA:BEGIN OF i_t005u OCCURS 0,
         spras LIKE t005u-spras,
        land1 LIKE t005u-land1,
       bland LIKE t005u-bland,
         bezei LIKE t005u-bezei,
         END OF i_t005u.
    DATA:BEGIN OF i_tnlst OCCURS 0,
       spras LIKE t005u-spras,
    niels LIKE tnlst-niels,
       bezei LIKE t005u-bezei,
       END OF i_tnlst.
    DATA:BEGIN OF itab_tkukt OCCURS 0,
    spras LIKE tkukt-spras,
    kukla LIKE tkukt-kukla,
    vtext LIKE tkukt-vtext,
    END OF itab_tkukt.
    DATA : BEGIN OF itab_t016t OCCURS 0,
          spras LIKE t016t-spras,
           brsch LIKE t016t-brsch,
           brtxt LIKE t016t-brtxt,
      END OF itab_t016t.
    DATA : BEGIN OF itab_tvgrt OCCURS 0,
          spras LIKE tvgrt-spras,
          vkgrp LIKE tvgrt-vkgrp,
          bezei LIKE tvgrt-bezei,
      END OF itab_tvgrt.
    *DATA: i_t005u  TYPE STANDARD TABLE OF t005u WITH HEADER LINE.
    DATA:BEGIN OF i_kna2 OCCURS 0,
         kunnr LIKE kna1-kunnr,
         name1 LIKE kna1-name1,   " For Ship-to-Party
          END OF i_kna2.
    DATA:BEGIN OF i_vbak OCCURS 0,
         vbeln LIKE vbak-vbeln,
         vbtyp LIKE vbak-vbtyp,
         audat LIKE vbak-audat,
         auart LIKE vbak-auart,
         vtweg LIKE vbak-vtweg,
         spart LIKE vbak-spart,
         vkbur LIKE vbak-vkbur,
         vkorg LIKE vbak-vkorg,
         END OF i_vbak.
    DATA:BEGIN OF i_adrc OCCURS 0,
          vbeln LIKE vbpa-vbeln,
          kunnr LIKE kna1-kunnr,
          city1 LIKE adrc-city1,
         name1 LIKE kna1-name1,      "Name1 (Ship-to party)
         END OF i_adrc.
    DATA:BEGIN OF i_lfa1 OCCURS 0,
          lifnr LIKE vbpa-lifnr,
          vbeln LIKE vbpa-vbeln,
          name1 LIKE lfa1-name1,
         END OF i_lfa1.
    DATA : BEGIN OF it_knumv OCCURS 0,
            vbeln LIKE vbrk-vbeln,
            knumv LIKE vbrk-knumv,
          END OF it_knumv.
    DATA : BEGIN OF it_rate OCCURS 0,
            ksteu LIKE konv-ksteu,    "Condition control
            knumv LIKE konv-knumv,    "Number of the document condition
            kschl LIKE konv-kschl,    "Condition type
            kbetr LIKE konv-kbetr,    "Rate (condition amount or percentage)
            kwert LIKE konv-kwert,    "Condition value
            kposn LIKE konv-kposn,
            kmein LIKE konv-kmein,    "Sales Unit
           END OF it_rate.
    DATA: BEGIN OF itab_exnum OCCURS 0,
           exnum LIKE j_1iexchdr-exnum,  "Official Excise Document Number
           exdat LIKE j_1iexchdr-exdat,  "Excise Document Date
           rdoc LIKE j_1iexchdr-rdoc,    "Reference Document 1
            status LIKE j_1iexchdr-status,
           END OF itab_exnum.
    DATA: BEGIN OF itab_qty OCCURS 0,
          kwmeng LIKE vbap-kwmeng,
          vbeln LIKE vbap-vbeln,
          lgort LIKE vbap-lgort,
          END OF itab_qty.
    *DATA: BEGIN OF i_stloc OCCURS 0,
         lgort LIKE t001l-lgort,
         lgobe LIKE t001l-lgobe,
         END OF i_stloc.
    DATA:t_line LIKE STANDARD TABLE OF tline INITIAL SIZE 0
         WITH HEADER LINE,
    "     itab_tvkbt LIKE STANDARD TABLE OF tvkbt WITH HEADER LINE,
         w_tdname LIKE thead-tdname.
    DATA : BEGIN OF itab_tvkbt OCCURS 0,
      spras LIKE tvkbt-spras,
      vkbur LIKE tvkbt-vkbur,
      bezei LIKE tvkbt-bezei,
      END OF itab_tvkbt.
    DATA: BEGIN OF i_exchdr OCCURS 0,
          exnum LIKE j_1iexchdr-exnum,
          exdat LIKE j_1iexchdr-exdat,
          rdoc  LIKE j_1iexchdr-rdoc,
          END OF i_exchdr.
    DATA: BEGIN OF i_likp OCCURS 0,
          vbeln LIKE likp-vbeln,
          wadat_ist LIKE likp-wadat_ist,
          traid LIKE likp-traid,
          bolnr LIKE likp-bolnr,
          END OF i_likp.
    DATA: BEGIN OF i_mara OCCURS 0,
          matnr LIKE mara-matnr,
          matkl LIKE mara-matkl,
          mtart LIKE mara-mtart,
          labor LIKE mara-labor,
         wgbez LIKE t023t-wgbez,
          bismt LIKE mara-bismt,
          normt LIKE mara-normt,
          ferth LIKE mara-ferth,
          zeinr LIKE mara-zeinr,
          extwg LIKE mara-extwg,
          spart LIKE mara-spart,
          END OF i_mara.
    DATA: BEGIN OF i_t023t OCCURS 0,
          matkl LIKE t023t-matkl,
          wgbez LIKE t023t-wgbez,
          END OF i_t023t.
    DATA : var_length(20)  TYPE c,
           var_breadth(20)  TYPE c.
    DATA: p_w_value LIKE konv-kwert.
    DATA : it_fieldcat    TYPE  slis_t_fieldcat_alv,      " Event for Table to creater fieldcatalog
           wa_fieldcat     LIKE LINE OF it_fieldcat,      " Work Area for table field catalog
           lt_top_of_page   TYPE  slis_t_listheader,      " Header table for top of page
            i_layout        TYPE  slis_layout_alv .      " It will fill the layout
           gt_event   TYPE  slis_t_event.                 " Table Event
    *DATA :
         "itab_tnlst TYPE STANDARD TABLE OF tnlst WITH HEADER LINE,
         "      itab_tkukt TYPE STANDARD TABLE OF tkukt WITH HEADER LINE,
    *"      itab_t016t TYPE STANDARD TABLE OF t016t WITH HEADER LINE,
         itab_tvgrt TYPE STANDARD TABLE OF tvgrt WITH HEADER LINE.
    *&       SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK block
                                      WITH FRAME TITLE text-100.
    SELECT-OPTIONS: s_date FOR vbrk-fkdat OBLIGATORY,
                    s_vkbur FOR vbak-vkbur OBLIGATORY,
                    s_vtweg FOR vbrk-vtweg OBLIGATORY,
                    s_werks FOR vbap-werks,
                    s_spart FOR vbrk-spart OBLIGATORY,
                    s_matkl FOR mara-matkl.
    PARAMETERS:
                r_opt3  RADIOBUTTON GROUP grp1,
                r_opt2  RADIOBUTTON GROUP grp1.
               r_opt4  RADIOBUTTON GROUP grp1,
               r_opt5  RADIOBUTTON GROUP grp1,
               r_opt1  RADIOBUTTON GROUP grp1.
    SELECTION-SCREEN END OF BLOCK block.
    *&       INITIALIZATION
    INITIALIZATION.
      r_opt2 = 'X'.
    *&     START-OF-SELECTION.
    START-OF-SELECTION.
    *select data from VBRP
    SELECT vbeln
            posnr
            matnr
            aubel
            fkimg
            vrkme
            arktx
            vgbel
            werks
            vkgrp
             fklmg
             volum
             vkbur
             vtweg_auft
            FROM vbrp
            INTO  TABLE i_report
            WHERE "erdat IN s_date
            AND   spart IN s_spart
               vkbur IN s_vkbur
            AND   vtweg_auft IN s_vtweg.
    **logic for Pending, Summary & Detail Report
      IF
         r_opt1 EQ 'X' OR
        r_opt2 EQ 'X'  OR
               r_opt3 EQ 'X'.
        SELECT vbeln
                  rfbsk
                  erdat
                  fkdat
                  fksto
                  netwr
                  fkart
                  knumv
                  mwsbk
                  bzirk
                  vtweg
                  spart
                  FROM vbrk INTO TABLE i_vbrk
                 FOR ALL ENTRIES IN i_report
                  WHERE "vbeln = i_report-vbeln
                 " and
                  fkdat IN s_date
                  AND   fkart IN ('ZBHR', 'ZTZT', 'ZKRP', 'ZRUD', 'ZBSR',
                                'ZGHT', 'ZKOL', 'ZPTN', 'ZRNC', 'ZCND',
                                'ZDLH', 'ZGZB', 'ZGUR', 'ZHSR', 'ZJPR',
                                'ZLKW', 'ZBLR', 'ZCHN', 'ZCBM', 'ZHUB',
                                'ZHYD', 'ZKOC', 'ZAHD', 'ZIND', 'ZMUM',
    *********************MODIFICATION BY CHAKRAPANI  (ADDITION OF ZVIJ AND ZHWH ) 18.05.2007
                                'ZNGP', 'ZPNE', 'ZRPR' , 'ZEXP', 'ZDEM','ZVIJ', 'ZHWH','JEX' )
    *********************MODIFICATION BY CHAKRAPANI  (ADDITION OF ZVIJ AND ZHWH ) 18.05.2007
                  AND   vtweg IN s_vtweg
                 AND   spart IN s_spart
                  AND   fksto NE 'X'.
        IF i_vbrk[] IS NOT INITIAL.
          SELECT   vbeln
                   posnr
                   matnr
                   aubel
                   fkimg
                   vrkme
                   arktx
                   vgbel
                   werks
                   vkgrp
                    fklmg
                    volum
                    vkbur
                    vtweg_auft
                   FROM vbrp
                   INTO  TABLE i_report
            FOR ALL ENTRIES IN i_vbrk
                   WHERE vbeln = i_vbrk-vbeln "erdat IN s_date
            AND   spart IN s_spart
                   AND  vkbur IN s_vkbur
                   AND   vtweg_auft IN s_vtweg.
        ENDIF.
       ELSEIF r_opt4 EQ 'X' OR
              r_opt5 EQ 'X'.
         SELECT   vbeln
                  rfbsk
                  erdat
                  fkdat
                  fksto
                  netwr
                  fkart
                  knumv
                  mwsbk
                  bzirk
                  vtweg
                  spart
                  FROM vbrk INTO CORRESPONDING FIELDS OF TABLE i_vbrk
                  FROM vbrk INTO TABLE i_vbrk
                  FOR ALL ENTRIES IN i_report
                  WHERE vbeln = i_report-vbeln
                  AND   fkart EQ 'ZEXP'
                  AND   vtweg IN s_vtweg
                  AND   spart IN s_spart
                  AND   fksto NE 'X'.
       ENDIF.
        SORT i_vbrk BY vbeln ASCENDING.
      ENDIF.
    change amit by my self may be removed
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
        SORT it_report BY aubel.
    *select VBAP data
        SELECT posnr vbeln matnr werks
        kwmeng lgort
        FROM vbap
        INTO  TABLE i_vbap
        FOR ALL ENTRIES IN it_report
        WHERE vbeln = it_report-aubel.
      ENDIF.
    change amit by my self may be removed
    *select data from VBKD
    IF NOT i_vbap[] IS INITIAL.
       SELECT vbeln posnr
         FROM vbkd
         INTO TABLE i_vbkd
         FOR ALL ENTRIES IN i_vbap
         WHERE vbeln = i_vbap-vbeln.
    ENDIF.
      SORT i_vbap BY vbeln ASCENDING.
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING matnr.
        SORT it_report BY matnr.
        SELECT
        matnr
        matkl
        mtart
        labor
        bismt
        normt
        ferth
        zeinr
        extwg
        spart
        FROM mara
        INTO TABLE i_mara
        FOR ALL ENTRIES IN i_report
        WHERE matnr = i_report-matnr
          AND   spart IN s_spart.
      ENDIF.
       IF NOT i_mara[] IS INITIAL.
         SORT i_mara BY matnr.
         SELECT matnr
                labst
                FROM mard
                INTO TABLE itab_mard
                FOR ALL ENTRIES IN i_mara
                WHERE matnr = i_mara-matnr.
       ENDIF.
    ENDIF.
      DATA : it_mara LIKE LINE OF i_mara OCCURS 0.
      IF NOT i_mara[] IS INITIAL.
        REFRESH it_mara.
        it_mara[] = i_mara[].
        DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matkl.
        SORT it_mara BY matkl.
        SELECT matkl wgbez
          FROM t023t
          INTO  TABLE i_t023t
          FOR ALL ENTRIES IN it_mara
          WHERE matkl = it_mara-matkl.
    *T024X
        REFRESH it_mara.
        it_mara[] = i_mara[].
        DELETE ADJACENT DUPLICATES FROM it_mara COMPARING labor.
        SORT it_mara BY labor.
        SELECT * FROM t024x
        INTO TABLE itab_t024x
        FOR ALL ENTRIES IN it_mara
        WHERE labor = it_mara-labor
        AND spras = sy-langu.
      ENDIF.
    *begin of change amit
      LOOP AT i_vbap.
        READ TABLE i_mara WITH KEY matnr = i_vbap-matnr.
        IF sy-subrc = 0.
    *material type & material group
          i_vbap-mtart = i_mara-mtart.
          i_vbap-matkl = i_mara-matkl.
        ENDIF.
        MODIFY i_vbap.
      ENDLOOP.
    *Material Group Description
    *end of change amit
    IF i_report[] IS NOT INITIAL.
       REFRESH it_report.
       it_report[] = i_report[].
       DELETE ADJACENT DUPLICATES FROM it_report COMPARING vgbel.
       SORT it_report BY vgbel.
       SELECT vbeln
              ean11
              volum
              lgmng
              FROM lips
              INTO  TABLE i_lips
              FOR ALL ENTRIES IN it_report
              WHERE vbeln = it_report-vgbel.
    ENDIF.
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        SORT it_report BY vgbel.
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING vgbel.
          IF i_lips[] IS NOT INITIAL.
        SELECT vbeln
               wadat_ist
               traid
               bolnr
               FROM likp
               INTO TABLE i_likp
               FOR ALL ENTRIES IN it_report
               WHERE vbeln = it_report-vgbel.
      ENDIF.
       SORT i_lips BY vbeln ASCENDING.
       LOOP AT i_lips.
         REFRESH t_line.
         CLEAR   w_tdname.
         w_tdname = i_lips-vbeln.
         CALL FUNCTION 'READ_TEXT'
           EXPORTING
             client                  = sy-mandt
             id                      = 'ZVOW'
             language                = sy-langu
             name                    = w_tdname
             object                  = 'VBBK'
           TABLES
             lines                   = t_line
           EXCEPTIONS
             id                      = 1
             language                = 2
             name                    = 3
             not_found               = 4
             object                  = 5
             reference_check         = 6
             wrong_access_to_archive = 7
             OTHERS                  = 8.
         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_line.
           CONCATENATE i_lips-waybill t_line-tdline INTO i_lips-waybill.
         ENDLOOP.
         IF sy-subrc EQ 0.
           MODIFY i_lips.
         ENDIF.
       ENDLOOP.
    *IF i_report[] IS NOT INITIAL.
       REFRESH it_report.
       it_report[] = i_report[].
       SORT it_report BY aubel.
       DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
      SELECT a~vbeln
             b~name1
             b~kunnr
             b~regio
             b~land1
             a~vkgrp
             b~niels
             b~kukla
             b~brsch
             a~vkbur
             FROM vbak AS a
             INNER JOIN kna1 AS b
             ON akunnr = bkunnr
             INTO TABLE i_kna1
             FOR ALL ENTRIES IN i_report
             WHERE vbeln = i_report-aubel.
            AND land1 = 'IN'.
    *endif.
      DATA : it_kna1 LIKE LINE OF i_kna1 OCCURS 0.
      IF NOT i_kna1[] IS INITIAL.
        REFRESH it_kna1.
        it_kna1[] = i_kna1[].
        SORT it_kna1 BY regio.
        DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING regio.
        SELECT spras
          land1
          bland
          bezei FROM t005u
                 INTO TABLE i_t005u
                 FOR ALL ENTRIES IN it_kna1
                 WHERE bland = it_kna1-regio
                 AND spras = 'EN' AND land1 = 'IN'.
        REFRESH it_kna1.
        it_kna1[] = i_kna1[].
        SORT it_kna1 BY niels.
        DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING niels.
        SELECT spras niels bezei FROM tnlst
               INTO TABLE i_tnlst
               FOR ALL ENTRIES IN it_kna1
               WHERE niels = it_kna1-niels
               AND spras = sy-langu.
        REFRESH it_kna1.
        it_kna1[] = i_kna1[].
        SORT it_kna1 BY kukla.
        DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING kukla.
        SELECT spras kukla vtext FROM  tkukt
              INTO TABLE itab_tkukt
              FOR ALL ENTRIES IN it_kna1
              WHERE kukla = it_kna1-kukla
              AND spras = sy-langu.
        REFRESH it_kna1.
        it_kna1[] = i_kna1[].
        SORT it_kna1 BY brsch.
        DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING brsch.
        SELECT spras brsch brtxt FROM t016t
           INTO TABLE itab_t016t
             FOR ALL ENTRIES IN it_kna1
             WHERE brsch = it_kna1-brsch
             AND spras = sy-langu.
        REFRESH it_kna1.
        it_kna1[] = i_kna1[].
        SORT it_kna1 BY vkgrp.
        DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING vkgrp.
        SELECT spras vkgrp bezei FROM tvgrt
            INTO TABLE itab_tvgrt
            FOR ALL ENTRIES IN it_kna1
            WHERE vkgrp = it_kna1-vkgrp
            AND spras = sy-langu.
      ENDIF.
      SORT i_kna1 BY vbeln ASCENDING.
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        SORT it_report BY aubel.
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
        SELECT a~vbeln
               a~kunnr
               b~city1
               FROM vbpa AS a
               INNER JOIN adrc AS b
               ON aadrnr = baddrnumber
               INTO TABLE i_adrc
               FOR ALL ENTRIES IN it_report
               WHERE vbeln = it_report-aubel
               AND parvw = 'WE'.
        SORT i_adrc BY vbeln ASCENDING.
      ENDIF.
      DATA : it_adrc LIKE LINE OF i_adrc OCCURS 0.
      IF i_adrc[] IS NOT INITIAL.
        REFRESH it_adrc.
        it_adrc[] = i_adrc[].
        SORT it_adrc BY kunnr.
        DELETE ADJACENT DUPLICATES FROM it_adrc COMPARING kunnr.
        SELECT kunnr name1
               FROM kna1
               INTO TABLE i_kna2
               FOR ALL ENTRIES IN it_adrc
              WHERE kunnr = it_adrc-kunnr.
      ENDIF.
    SELECT a~lifnr
            a~vbeln
            b~name1
           FROM vbpa AS a
            INNER JOIN lfa1 AS b
            ON alifnr = blifnr
            INTO TABLE i_lfa1
            FOR ALL ENTRIES IN i_report
            WHERE vbeln = i_report-vgbel
            AND parvw = 'SP'.
      SORT i_lfa1 BY vbeln ASCENDING.
    change amit by my self may be removed
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        SORT it_report BY vbeln.
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING vbeln.
        SELECT exnum
               exdat
               rdoc
              status
               FROM j_1iexchdr
               INTO TABLE itab_exnum
               FOR ALL ENTRIES IN it_report
               WHERE rdoc = it_report-vbeln AND status =  'P' OR status = 'C' .
      ENDIF.
    change amit by my self may be removed
    change amit by my self may be removed
      IF i_report[] IS NOT INITIAL.
        REFRESH it_report.
        it_report[] = i_report[].
        SORT it_report BY aubel.
        DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
        SELECT kwmeng
               vbeln
               lgort
               FROM vbap
               INTO TABLE itab_qty
               FOR ALL ENTRIES IN it_report
               WHERE vbeln = it_report-aubel.
      ENDIF.
    change amit by my self may be removed
      SORT itab_qty BY vbeln.
      CHECK NOT i_vbrk[] IS INITIAL.
      SORT i_report BY vbeln.
      DATA : t_vbrk LIKE LINE OF i_vbrk OCCURS 0.
      REFRESH t_vbrk.
      t_vbrk[] = i_vbrk[].
      SORT t_vbrk BY knumv.
      DELETE ADJACENT DUPLICATES FROM t_vbrk COMPARING knumv.
      SELECT ksteu
             knumv
             kschl
             kbetr
             kwert
             kposn
             kmein
             FROM konv
             INTO  TABLE it_rate
             FOR ALL ENTRIES IN t_vbrk
             WHERE knumv = t_vbrk-knumv
             AND kschl IN ('ZR00',          "Basic Price
                           'ZR01',          "Basic Price
                           'ZR02',          "Basic Price
                           'ZR03',          "Basic Price
                           'ZR04',          "Basic Price
                           'ZR05',          "Basic Price
                           'JEXP',          "Excise
                           'JECS',          "ED
                           'ZG03',          "Freight
                           'ZG04',          "Freight
                           'JCST',          "CST
                           'JLST',          "LST
                           'ZDEV',         "Dev Tax
                           'Z001',         "Discount
                           'Z002',         "Discount
                           'Z003',         "Discount
                           'Z004',         "Discount
                           'Z005',         "Discount
                           'Z006',         "Discount
                           'Z007',         "Discount

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

  • Header prob. in ALV report

    Hi All,
    Hope you all are doing fine!!!
    In the below program am trying to print the top-of-page/header in alv report,,but am unable to do it..
    Am working on 4.6c version,,,,,its working fine in ECC 6.0 but i really dont understand why its not working in 4.6c...AM JUST PASTING THE ALV PART...!!!
    Pls. do the needful
    REPORT yjack  LINE-SIZE 132
                    LINE-COUNT 65
                    NO STANDARD PAGE HEADING.
    DATA: /sie/swe_ag0_rdo TYPE /sie/swe_ag0_rdo,
          wa_tvko TYPE tvko,
          /sie/swe_ag0_raa TYPE /sie/swe_ag0_raa,
          wa_kna1 TYPE kna1,
          wa_t001 TYPE t001,
          wa_tvkot TYPE tvkot,
          /sie/swe_ag0_con TYPE /sie/swe_ag0_con,
          /sie/swe_ag0_r02 TYPE /sie/swe_ag0_r02.
    TYPES: BEGIN OF ty_itab,
             bukrs TYPE /sie/swe_ag0_rdo-bukrs,
             vkorg TYPE /sie/swe_ag0_rdo-vkorg,
             zclpr TYPE /sie/swe_ag0_rdo-zclpr,
             zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
             vbeln TYPE /sie/swe_ag0_rdo-vbeln,
             posnr TYPE /sie/swe_ag0_rdo-posnr,
             vbtyp TYPE /sie/swe_ag0_rdo-vbtyp,
             zidag TYPE /sie/swe_ag0_rdo-zidag,
             zimpp TYPE /sie/swe_ag0_rdo-zimpp,
             zimco TYPE /sie/swe_ag0_rdo-zimco,
             zimmg TYPE /sie/swe_ag0_rdo-zimmg,
             fkdat TYPE /sie/swe_ag0_rdo-fkdat,
             zstre TYPE /sie/swe_ag0_rdo-zstre,
             vtweg TYPE /sie/swe_ag0_rdo-vtweg,
             kunrg TYPE /sie/swe_ag0_rdo-kunrg,
          END OF ty_itab.
    TYPES: BEGIN OF ty_itab2,
             bukrs TYPE /sie/swe_ag0_rdo-bukrs,
             vkorg TYPE /sie/swe_ag0_rdo-vkorg,
             zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
             fkdat TYPE /sie/swe_ag0_rdo-fkdat,
             vbeln TYPE /sie/swe_ag0_rdo-vbeln,
             zimpp TYPE /sie/swe_ag0_rdo-zimpp,
             zimco(5) TYPE p DECIMALS 2,
             zimmg(5) TYPE p DECIMALS 2,
             resid(6) TYPE p DECIMALS 2,
             kunrg TYPE /sie/swe_ag0_rdo-kunrg,
             name1 TYPE kna1-name1,
          END OF ty_itab2.
    type-pools: slis.
    types: begin of ty_final,
           bukrs type char29,
           vkorg type char24,
           mese  type char17,
           gjahr type gjahr,
           agent type char45,
           vbeln type vbeln,
           fkdat type fkdat,
           zimpp type /SIE/SWE_AG0_ZIMPP,
           zimco type /SIE/SWE_AG0_ZIMCO,
           zimmg type /SIE/SWE_AG0_ZIMMG,
           resid(5) TYPE p DECIMALS 2,
           kunrg type kunrg,
           name1 type NAME1_GP,
           end of ty_final.
    data: it_final type table of ty_final,
          wa_final type ty_final,
          g_bukrs(29) type c,
          g_vkorg(24) type c.
    data: it_fieldcat type slis_t_fieldcat_alv,
          it_layout type slis_layout_alv,
          it_list_top_of_page type slis_t_listheader,
          it_events type slis_t_event,
          wa_events type slis_alv_event,
          it_headings type slis_t_listheader,
          wa_headings type slis_listheader.
    constants: c_h type c value 'H',
               c_s type c value 'S'.
    field-symbols: <fs_final> type ty_final.
    DATA: it_itab TYPE TABLE OF ty_itab,
          it_itab2 TYPE TABLE OF ty_itab2,
          wa_itab TYPE ty_itab,
          wa_itab2 TYPE ty_itab2.
    DATA: wa_app TYPE ty_itab.
    DATA: w_var TYPE c VALUE '1',
          w_com_mese(9) TYPE c,
          w_flag_st TYPE c.
    $$ Selection-screen
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK parametri WITH FRAME TITLE text-001.
    BEG MOD ESX00596 IMS:100276414 TR:SWIK9A04W7 11.04.2007
    *PARAMETERS: p_bukrs LIKE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
    *PARAMETERS: p_vkorg LIKE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
    PARAMETERS: p_bukrs TYPE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
    PARAMETERS: p_vkorg TYPE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
    SELECT-OPTIONS: s_zcdaz FOR /sie/swe_ag0_rdo-zcdaz OBLIGATORY
                            MATCHCODE OBJECT /sie/swe_ag0_zaa.
    PARAMETERS: mese(2) TYPE n OBLIGATORY,
                anno TYPE /sie/swe_ag0_rdo-gjahr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK parametri.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: c1 AS CHECKBOX.
    SELECTION-SCREEN COMMENT 8(31) text-006 FOR FIELD c1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b1.
    DATA: w_cd_a   TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_gen TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_di  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_re  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_te  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_ca  TYPE /sie/swe_ag0_rdo-vtweg.
    INITIALIZATION.
      PERFORM selezione_hard_coding.
    $$ At selection-screen
    AT SELECTION-SCREEN.
      PERFORM controlli.
    $$ Top-of-page
    TOP-OF-PAGE.
      PERFORM top_of_page.
    $$ Start-of-selection
    START-OF-SELECTION.
      perform build_events.
      PERFORM carica_itab.
      PERFORM carica_itab2.
      PERFORM stampa.
    END-OF-SELECTION.
    IF C1 EQ 'X'.
    perform fill-fieldcatalog.
    perform display_alv.
    ENDIF.
    *&      Form  fill-fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form fill-fieldcatalog.
    data: l_fieldcat TYPE slis_fieldcat_alv.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'BUKRS'.
          l_fieldcat-col_pos       = 1.
          l_fieldcat-seltext_l     = 'Company'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'VKORG'.
          l_fieldcat-col_pos       = 2.
          l_fieldcat-seltext_l     = 'Comm. Organization'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'MESE'.
          l_fieldcat-col_pos       = 3.
          l_fieldcat-seltext_l     = 'Month'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'GJAHR'.
          l_fieldcat-col_pos       = 4.
          l_fieldcat-seltext_l     = 'Year'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'AGENT'.
          l_fieldcat-col_pos       = 5.
          l_fieldcat-seltext_l     = 'AGENT'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'VBELN'.
          l_fieldcat-col_pos       = 6.
          l_fieldcat-seltext_l     = 'Invoice'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'FKDAT'.
          l_fieldcat-col_pos       = 7.
          l_fieldcat-seltext_l     = 'Date'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMPP'.
          l_fieldcat-col_pos       = 8.
          l_fieldcat-seltext_l     = 'Taxable'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMCO'.
          l_fieldcat-col_pos       = 9.
          l_fieldcat-seltext_l     = 'Tot.Comm.'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMMG'.
          l_fieldcat-col_pos       = 10.
          l_fieldcat-seltext_l     = 'Settle'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'RESID'.
          l_fieldcat-col_pos       = 11.
          l_fieldcat-seltext_l     = 'Accruing'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'KUNRG'.
          l_fieldcat-col_pos       = 12.
          l_fieldcat-seltext_l     = 'Cust.Code'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'NAME1'.
          l_fieldcat-col_pos       = 13.
          l_fieldcat-seltext_l     = 'Company Name'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
    endform.                    " fill-fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    form display_alv.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = sy-repid
       I_CALLBACK_TOP_OF_PAGE            = 'PRINT_HEADING'
       IS_LAYOUT                         = it_layout
       IT_FIELDCAT                       = it_fieldcat
       IT_EVENTS                         = it_events
      TABLES
        t_outtab                          = it_final
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform.                    " display_alv
    *&      Form  build_events
          text
         -->P_IT_EVENTS[]  text
    form build_events.
    clear wa_events.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
       I_LIST_TYPE           = 0
    IMPORTING
       ET_EVENTS             = it_events.
    read table it_events into wa_events with key name = 'TOP_OF_PAGE'.
    if sy-subrc eq 0.
    wa_events-form = 'PRINT_HEADING'.
    modify it_events from wa_events transporting form
        where name = 'TOP_OF_PAGE'.
    endif.
    endform.                    " build_events
    form PRINT_HEADING.
    clear wa_headings.
    wa_headings-typ = 'H'.
    wa_headings-info = 'DEMO FOR ALV!!!'.
    append wa_headings to it_headings.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        it_list_commentary       = it_headings.
    endform.
    Thanks n Regards
    Jack

    Hi friend,
    I think u have to remove below lines in your program because FM 'REUSE_ALV_GRID_DISPLAY' will call directly Form 'PRINT_HEADING'   for TOP-OF-PAGE event through table 'it_events' :
    Remove lines:
        TOP-OF-PAGE.
        PERFORM top_of_page.
    Also remove the parameter
    I_CALLBACK_TOP_OF_PAGE = 'PRINT_HEADING' in  FM 'REUSE_ALV_GRID_DISPLAY'
    Also put a breakpoint in your program in the line,
    START-OF-SELECTION.
    perform build_events.
    See whether 'form' 'name' gets populated in table 'it_events'  or not.
    See sample report and compare.
    REPORT zawi_assign3 NO STANDARD PAGE HEADING.
    TYPE-POOLS: slis.
    DATA: BEGIN OF gt_outtab OCCURS 0.
            INCLUDE STRUCTURE ekpo.
    DATA: END OF gt_outtab,
          gs_layout TYPE slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user TYPE slis_exit_by_user,
          g_repid LIKE sy-repid.
    DATA:
        gt_events      TYPE slis_t_event,
        gt_list_top_of_page TYPE slis_t_listheader,
        g_status_set   TYPE slis_formname VALUE 'PF_STATUS_SET',
        g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
        g_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',
        g_top_of_list  TYPE slis_formname VALUE 'TOP_OF_LIST',
        g_end_of_list  TYPE slis_formname VALUE 'END_OF_LIST'.
    DATA: gs_variant LIKE disvariant,
          g_save.
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM layout_init USING gs_layout.
      PERFORM eventtab_build USING gt_events[].
      gs_variant-report = g_repid.
      g_save           = 'X'.
    START-OF-SELECTION.
      PERFORM select_data TABLES gt_outtab.
    END-OF-SELECTION.
      PERFORM comment_build USING gt_list_top_of_page[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
             i_background_id    = 'ALV_BACKGROUND'
             i_buffer_active    = 'X'
             i_callback_program = g_repid
             i_structure_name   = 'ekpo'
             is_layout          = gs_layout
             i_save             = g_save
             is_variant         = gs_variant
             it_events          = gt_events[]
        IMPORTING
             e_exit_caused_by_caller = g_exit_caused_by_caller
             es_exit_caused_by_user  = gs_exit_caused_by_user
        TABLES
             t_outtab = gt_outtab
        EXCEPTIONS
             program_error = 1
             OTHERS        = 2.
      IF sy-subrc = 0.
        IF g_exit_caused_by_caller = 'X'.
        ELSE.
          IF gs_exit_caused_by_user-back = 'X'.
          ELSE.
            IF gs_exit_caused_by_user-exit = 'X'.
            ELSE.
              IF gs_exit_caused_by_user-cancel = 'X'.
              ELSE.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ELSE.
      ENDIF.
    FORM select_data TABLES rt_outtab LIKE gt_outtab[].
      SELECT * FROM ekpo INTO CORRESPONDING FIELDS
                       OF TABLE rt_outtab
                       UP TO 00030 ROWS.
    ENDFORM.                    "SELECT_DATA
    FORM layout_init USING rs_layout TYPE slis_layout_alv.
      rs_layout-detail_popup      = 'X'.
      rs_layout-edit = 'X'.
    ENDFORM.                    "LAYOUT_INIT
    FORM eventtab_build USING rt_events TYPE slis_t_event.
    *"Registration of events to happen during list display
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = rt_events.
      READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE g_top_of_page TO ls_event-form.
        APPEND ls_event TO rt_events.
      ENDIF.
    ENDFORM.                    "EVENTTAB_BUILD
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          i_logo             = 'ENJOYSAP_LOGO'
          it_list_commentary = gt_list_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    FORM comment_build USING lt_top_of_page TYPE
                                            slis_t_listheader.
      DATA: ls_line TYPE slis_listheader.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = text-100.
      APPEND ls_line TO lt_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'Program'.
      ls_line-info = sy-repid.
      APPEND ls_line TO lt_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'User'.
      ls_line-info = sy-uname.
      APPEND ls_line TO lt_top_of_page.
    ENDFORM.                    "COMMENT_BUILD
    Might solve your problem.
    Thanks.
    Edited by: Sap Fan on Feb 20, 2009 9:50 AM
    Edited by: Sap Fan on Feb 20, 2009 9:52 AM
    Edited by: Sap Fan on Feb 20, 2009 9:54 AM

  • Displaying logo in alv report

    hi,
    what are the minimum requirements to display logo in alv report at the top of the page.
    i searched forums but did n't get the required answer.

    Hi
    This code is to display logo in the report through alv grid
    *& Report  ZALVDEMO                                                    *
    REPORT  ZALVDEMO.
    TABLES : J_1IEXCHDR, " header table
    J_1IEXCDTL, " item table
    J_1IPART2, " Excise Part II details
    LFA1, " vendor master table
    J_1IMOVEND, " vendor excise details table
    MSEG, " Document Segment: Material
    MKPF, " Header: Material Document
    DD07T, " domain text table
    T001W. " Plant and Branch Details
    DATA : BEGIN OF IT_CHDR OCCURS 100,
    DOCNO LIKE J_1IEXCHDR-DOCNO,
    DOCYR LIKE J_1IEXCHDR-DOCYR,
    EXNUM LIKE J_1IEXCHDR-EXNUM,
    EXDAT LIKE J_1IEXCHDR-EXDAT,
    WERKS LIKE J_1IEXCHDR-WERKS,
    EXBED LIKE J_1IEXCHDR-EXBED,
    EXCCD LIKE J_1IEXCHDR-EXCCD,
    ECS LIKE J_1IEXCHDR-ECS,
    END OF IT_CHDR.
    DATA : BEGIN OF IT_CDTL OCCURS 100,
    DOCYR LIKE J_1IEXCDTL-DOCYR,
    DOCNO LIKE J_1IEXCDTL-DOCNO,
    EXNUM LIKE J_1IEXCDTL-EXNUM,
    EXDAT LIKE J_1IEXCDTL-EXDAT,
    LIFNR LIKE J_1IEXCDTL-LIFNR,
    MATNR LIKE J_1IEXCDTL-MATNR,
    MAKTX LIKE J_1IEXCDTL-MAKTX,
    CHAPID LIKE J_1IEXCDTL-CHAPID,
    EXBAS LIKE J_1IEXCDTL-EXBAS,
    EXBED LIKE J_1IEXCDTL-EXBED,
    ECS LIKE J_1IEXCDTL-ECS,
    MENGE LIKE J_1IEXCDTL-MENGE,
    MEINS LIKE J_1IEXCDTL-MEINS,
    RDOC2 LIKE J_1IEXCDTL-RDOC2,
    END OF IT_CDTL.
    DATA TEXT(10).
    DATA : BEGIN OF IT_OUT OCCURS 0,
    SERIALNO LIKE J_1IPART2-SERIALNO,
    TEXT1 LIKE TEXT,
    EXNUM LIKE J_1IEXCDTL-EXNUM,
    EXDAT LIKE J_1IEXCDTL-EXDAT,
    NAME LIKE LFA1-NAME1,
    DDTEXT LIKE DD07T-DDTEXT,
    EXCCD LIKE J_1IEXCHDR-EXCCD,
    BUDAT LIKE MKPF-BUDAT,
    EXBAS LIKE IT_CDTL-EXBAS,
    EXBED LIKE IT_CDTL-EXBED,
    ECS LIKE IT_CDTL-ECS,
    MATNR LIKE IT_CDTL-MATNR,
    MAKTX LIKE IT_CDTL-MAKTX,
    CHAPID LIKE IT_CDTL-CHAPID,
    MENGE LIKE IT_CDTL-MENGE,
    MEINS LIKE IT_CDTL-MEINS,
    DEL_IND(1),
    END OF IT_OUT.
    DATA IT_PART2 LIKE J_1IPART2 OCCURS 0 WITH HEADER LINE.
    DATA S_NO(4) .
    DATA DB_CNT LIKE SY-TABIX.
    DATA EBELN_T LIKE MSEG-EBELN .
    TYPE-POOLS : SLIS.
    DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.
    DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,
    FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    LS_FTCAT TYPE LVC_S_FCAT,
    SORTCAT TYPE SLIS_T_SORTINFO_ALV,
    SORTCAT_LN LIKE LINE OF SORTCAT,
    G_REPID LIKE SY-REPID,
    G_BACK_GROUND(70), "like bapibds01-objkey,
    GS_VARIANT LIKE DISVARIANT,
    G_SAVE ,
    GT_EVENTS TYPE SLIS_T_EVENT,
    ALV_EVENT TYPE SLIS_ALV_EVENT,
    EVENTCAT TYPE SLIS_T_EVENT,
    EVENTCAT_LN LIKE LINE OF EVENTCAT,
    LAYOUT_IN TYPE SLIS_LAYOUT_ALV,
    LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.
    CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
    'TOP_OF_PAGE',
    GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
    'USER_COMMAND',
    GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
    'BEFORE_OUTPUT'.
    ALV_EVENT TYPE SLIS_ALV_EVENT,
    DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
    DATA REGTYP_1 LIKE J_1IPART2-REGTYP.
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
    PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.
    SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
    PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
    R2 RADIOBUTTON GROUP GRP.
    SELECTION-SCREEN END OF BLOCK B.
    INITIALIZATION.
    G_REPID = SY-REPID.
    G_SAVE = 'A'.
    PERFORM BUILD_EVENT USING GT_EVENTS[].
    PERFORM ALV_EVENT_INIT.
    AT SELECTION-SCREEN.
    REFRESH LIST_HEADER.
    PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.
    START-OF-SELECTION.
    PERFORM ALV_EVENT_INIT.
    G_REPID = SY-REPID.
    G_BACK_GROUND = ' ' .
    IF R1 = 'X'.
    CLEAR R2. CLEAR : REGTYP_1.
    REGTYP_1 = 'A'.
    set titlebar 'BALAJI' with DB_CNT.
    ELSEIF R2 = 'X'.
    CLEAR R1.CLEAR : REGTYP_1.
    REGTYP_1 = 'C'.
    set titlebar 'BALAJI1' with DB_CNT.
    ENDIF.
    SELECT * FROM J_1IPART2
    INTO CORRESPONDING FIELDS OF TABLE IT_PART2
    WHERE REGTYP = REGTYP_1 AND
    TRNTYP = 'GRPO' AND
    BUDAT IN BUDAT.
    DOCYR = IT_CDTL-DOCYR AND
    DOCNO = IT_CDTL-DOCNO.
    LOOP AT IT_PART2.
    SELECT SINGLE * FROM J_1IEXCHDR
    INTO CORRESPONDING FIELDS OF IT_CHDR
    WHERE TRNTYP = 'GRPO' AND
    DOCYR = IT_PART2-DOCYR AND
    DOCNO = IT_PART2-DOCNO AND
    WERKS = WERKS AND
    exdat IN BUDAT.
    ORDER BY EXDAT.
    IF SY-SUBRC = 0.
    APPEND IT_CHDR.
    ELSE.
    CONTINUE.
    ENDIF.
    IF SY-SUBRC <> 0.
    MESSAGE E084.
    ENDIF.
    ENDLOOP.
    LOOP AT IT_CHDR.
    SELECT * FROM J_1IEXCDTL
    INTO CORRESPONDING FIELDS OF IT_CDTL
    FOR ALL ENTRIES IN IT_CHDR
    WHERE
    TRNTYP = 'GRPO' AND
    DOCNO = IT_CHDR-DOCNO AND
    DOCYR = IT_CHDR-DOCYR AND
    EXNUM = IT_CHDR-EXNUM AND
    EXDAT = IT_CHDR-EXDAT AND
    WERKS = IT_CHDR-WERKS.
    IF SY-SUBRC = 0.
    APPEND IT_CDTL.
    ELSE.
    CONTINUE.
    ENDIF.
    ENDSELECT.
    ENDLOOP.
    LOOP AT IT_CDTL.
    CLEAR TEXT.
    DB_CNT = DB_CNT + 1.
    READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM.
    READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
    IT_OUT-SERIALNO = IT_PART2-SERIALNO.
    SELECT SINGLE NAME1 FROM LFA1
    INTO IT_OUT-NAME
    WHERE LIFNR = IT_CDTL-LIFNR.
    SELECT SINGLE * FROM LFA1
    WHERE LIFNR = IT_CDTL-LIFNR.
    IF LFA1-LAND1 EQ 'IN'.
    TEXT = 'INVOICE'.
    IT_OUT-TEXT1 = TEXT.
    ELSE.
    TEXT = 'BOE'.
    IT_OUT-TEXT1 = TEXT.
    ENDIF.
    SELECT SINGLE * FROM J_1IMOVEND
    WHERE LIFNR = IT_CDTL-LIFNR.
    SELECT SINGLE * FROM DD07T
    INTO IT_OUT-DDTEXT
    WHERE DOMNAME = 'J_1IVTYP' AND
    DDLANGUAGE = 'EN' AND
    DOMVALUE_L = J_1IMOVEND-J_1IVTYP.
    IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
    OR
    DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
    DD07T-DDTEXT = 'Dealer'.
    ENDIF.
    IT_OUT-DDTEXT = DD07T-DDTEXT.
    ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
    *goods'.
    DD07T-DDTEXT =
    CLEAR EBELN_T.
    SELECT SINGLE LFBNR FROM MSEG
    INTO EBELN_T
    WHERE MBLNR = IT_CDTL-RDOC2 .
    SELECT SINGLE * FROM MSEG
    WHERE BWART = '106' AND
    LFBNR = EBELN_T ."and
    ebeln = ebeln_t.
    IF SY-SUBRC = 0.
    IT_OUT-DEL_IND = 'X'.
    ELSE.
    IT_OUT-DEL_IND = ' '.
    ENDIF.
    SELECT SINGLE BUDAT FROM MKPF
    INTO IT_OUT-BUDAT
    WHERE MBLNR = EBELN_T ."MSEG-LFBNR.
    IT_OUT-EXNUM = IT_CDTL-EXNUM.
    IT_OUT-EXDAT = IT_CDTL-EXDAT.
    IT_OUT-EXCCD = IT_CHDR-EXCCD.
    IT_OUT-EXBAS = IT_CDTL-EXBAS.
    IT_OUT-EXBED = IT_CDTL-EXBED.
    IT_OUT-ECS = IT_CDTL-ECS.
    IT_OUT-MATNR = IT_CDTL-MATNR.
    IT_OUT-MAKTX = IT_CDTL-MAKTX.
    IT_OUT-CHAPID = IT_CDTL-CHAPID.
    IT_OUT-MENGE = IT_CDTL-MENGE.
    IT_OUT-MEINS = IT_CDTL-MEINS.
    APPEND IT_OUT.
    EX_NO = IT_CDTL-EXNUM.
    ENDLOOP.
    Title Portion
    IF REGTYP_1 = 'A'.
    SET TITLEBAR 'BALAJI' WITH DB_CNT.
    ELSEIF REGTYP_1 = 'C'.
    SET TITLEBAR 'BALAJI1' WITH DB_CNT.
    ENDIF.
    AFIELD-COL_POS = 1.
    AFIELD-FIELDNAME = 'SERIALNO'.
    AFIELD-SELTEXT_L = 'INPUTS'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 2.
    AFIELD-FIELDNAME = 'TEXT1'.
    AFIELD-SELTEXT_L = 'TYPE OF DOC'.
    AFIELD-JUST = 'L'.
    AFIELD-DECIMALS_OUT = '0'.
    AFIELD-NO_ZERO = 'X'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 3.
    AFIELD-FIELDNAME = 'EXNUM'.
    AFIELD-SELTEXT_L = 'DOC.NO'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 4.
    AFIELD-FIELDNAME = 'EXDAT'.
    AFIELD-SELTEXT_L = 'DOC.DATE'.
    AFIELD-JUST = 'C'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 5.
    AFIELD-FIELDNAME = 'NAME'.
    AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
    AFIELD-NO_ZERO = 'X'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 6.
    AFIELD-FIELDNAME = 'DDTEXT'.
    AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 7.
    AFIELD-FIELDNAME = 'EXCCD'.
    AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
    AFIELD-NO_ZERO = 'X'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 8.
    AFIELD-FIELDNAME = 'BUDAT'.
    AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
    AFIELD-JUST = 'C'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 9.
    AFIELD-FIELDNAME = 'EXBAS'.
    AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
    AFIELD-DO_SUM = 'X'.
    AFIELD-JUST = 'R'.
    AFIELD-DECIMALS_OUT = '2'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 10.
    AFIELD-FIELDNAME = 'EXBED'.
    AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
    AFIELD-JUST = 'R'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 11.
    AFIELD-FIELDNAME = 'ECS'.
    AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
    AFIELD-JUST = 'R'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 12.
    AFIELD-FIELDNAME = 'MATNR'.
    AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 13.
    AFIELD-FIELDNAME = 'MAKTX'.
    AFIELD-SELTEXT_L = 'DESCRIPTION'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 14.
    AFIELD-FIELDNAME = 'CHAPID'.
    AFIELD-SELTEXT_L = 'TARIFF-ID'.
    AFIELD-JUST = 'L'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 15.
    AFIELD-FIELDNAME = 'MENGE'.
    AFIELD-SELTEXT_L = 'QUANTITY'.
    AFIELD-JUST = 'R'.
    AFIELD-DO_SUM = ' '.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 16.
    AFIELD-FIELDNAME = 'MEINS'.
    AFIELD-SELTEXT_L = 'UOM'.
    AFIELD-JUST = 'C'.
    APPEND AFIELD TO FIELDCAT.
    AFIELD-COL_POS = 17.
    AFIELD-FIELDNAME = 'DEL_IND'.
    AFIELD-SELTEXT_L = 'Deleted'.
    AFIELD-JUST = 'C'.
    APPEND AFIELD TO FIELDCAT.
    * LAYOUT FOR ZEBRA CATLOG
    LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
    LAYOUT_IN-ZEBRA = 'X'.
    LAYOUT_IN-GET_SELINFOS = 'X'.
    LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
    LAYOUT_IN-DETAIL_POPUP = 'X' .
    SORTCAT-decimals = '0'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = G_REPID
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_SAVE = G_SAVE
    IS_VARIANT = GS_VARIANT
    IT_FIELDCAT = FIELDCAT
    IT_SORT = SORTCAT
    IS_LAYOUT = LAYOUT_IN
    IT_EVENTS = EVENTCAT
    I_BACKGROUND_ID = g_back_ground
    TABLES
    T_OUTTAB = IT_OUT.
    *& Form TOP_OF_PAGE_LIST_HEADER
    text
    -->LIST_HEADERtext
    FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.
    DATA : HLINE TYPE SLIS_LISTHEADER,
    TEXT(60) TYPE C.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE 'ROOTS INDUSTRIES LTD' TO TEXT.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE 'PLANT :' TO TEXT.
    WRITE WERKS TO TEXT+8.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE T001W-NAME1 TO TEXT.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE T001W-STRAS TO TEXT.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE T001W-ORT01 TO TEXT.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    CLEAR : HLINE,TEXT.
    HLINE-TYP = 'H'.
    WRITE 'DATE :' TO TEXT.
    WRITE BUDAT-LOW TO TEXT+7.
    IF BUDAT-HIGH NE ''.
    WRITE 'TO' TO TEXT+18.
    WRITE BUDAT-HIGH TO TEXT+22.
    ENDIF.
    HLINE-INFO = TEXT.
    APPEND HLINE TO LIST_HEADER.
    ENDFORM. "TOP_OF_PAGE_LIST_HEADER
    *& Form ALV_EVENT_INIT
    text
    FORM ALV_EVENT_INIT .
    CLEAR ALV_EVENT.
    ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
    ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
    APPEND ALV_EVENT TO EVENTCAT.
    CLEAR ALV_EVENT.
    ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
    ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
    APPEND ALV_EVENT TO EVENTCAT.
    CLEAR ALV_EVENT.
    ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
    ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
    APPEND ALV_EVENT TO GT_EVENTS.
    CLEAR ALV_EVENT.
    ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
    ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
    APPEND ALV_EVENT TO GT_EVENTS.
    ENDFORM. "ALV_EVENT_INIT
    *& Form ALV_TOP_OF_PAGE
    text
    FORM ALV_TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = LIST_HEADER
    I_LOGO = 'ENJOYSAP_LOGO'.
    ENDFORM. "ALV_TOP_OF_PAGE
    *& Form BUILD_EVENT
    text
    -->P_GT_EVENTS[] text
    FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = P_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 1
    OTHERS = 2.
    READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
    ALV_EVENT.
    IF SY-SUBRC = 0.
    MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
    APPEND ALV_EVENT TO P_EVENTS.
    ENDIF.
    READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
    ALV_EVENT.
    IF SY-SUBRC = 0.
    MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
    APPEND ALV_EVENT TO P_EVENTS.
    ENDIF.
    ENDFORM. " BUILD_EVENT
    this wud help u

  • Display Graphics is not working in ECC 6.0 EHP5 SAP System

    Hello All,
    We have an SAP system running  on ECC 6.0 with EHP5 installed in it.
    In UDM_Supervisor when i click on ALV Display Graphics it is not opening it is throwing the below mention error.
    When i click on the highlighted icon on the top it throws the below error.
    When i click on there is no additional information available.
    I could not locate any  Relevant SAP notes.
    Could you please help me in fixing this error.
    Thanks in advance!!!
    Regards,
    Vardhan.

    Hi,
    I don't have access to my ECC 6 system right now, I would check 2 things:
    1) it is possible that the BAdI definition class (for classic BAdIs, it is usually CL_EX_BATCH_MASTER) has been changed manually by SAP, and they removed the LOOP, or have added an EXIT right before the ENDLOOP. I know they sometimes do it.
    2) I would check if the BATCH_MASTER classic BAdI has been migrated to new BAdI, in that case I think you should migrate your BAdI implementations
    3) Just to be sure: if an implementation raises an exception, that's normal that the other implementations are not executed.
    BR
    Sandra

  • Run ALV in Background JOB (DUMP)

    HI Experts,
    Before post  i have already  look at this forum and tried many solutions , im on  SAPGUI 7.20 and already creatde a doc container... so nothing has work yet...
    Im trying to run a alv report in a  scheduled JOB...!!
    Below the Dump Description and My source code...!
    Many Thanks for any help..!!!!
    DUMP.
    Short text
        Exception condition "CNTL_ERROR" raised.
    What happened?
        The current ABAP/4 program encountered an unexpected
        situation.
    What can you do?
        Note down which actions and inputs caused the error.
        To process the problem further, contact you SAP system
        administrator.
        Using Transaction ST22 for ABAP Dump Analysis, you can look
        at and manage termination messages, and you can also
        keep them for a long time.
    Error analysis
        A RAISE statement in the program "CL_GUI_CONTROL================CP" raised the
         exception
        condition "CNTL_ERROR".
        Since the exception was not intercepted by a superior
        program, processing was terminated.
        Short description of exception condition:
        For detailed documentation of the exception condition, use
        Transaction SE37 (Function Library). You can take the called
        function module from the display of active calls.
    How to correct the error
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
    SOURCE CODE:
    DATA: gro_doc_container     TYPE REF TO cl_gui_docking_container,
            w_off                 TYPE  INT4.
      IF w_1c_container IS INITIAL.
      CALL METHOD cl_gui_alv_grid=>offline
       RECEIVING e_offline = w_off.
    IF NOT w_off is initial.
        CREATE OBJECT w_1obj_alv
                 EXPORTING i_parent = gro_doc_container .
      else.
          CREATE OBJECT w_1c_container
            EXPORTING
              container_name = c_1alv.
          CREATE OBJECT w_1obj_alv
            EXPORTING
              i_parent = w_1c_container.
        ENDIF.
        CREATE OBJECT w_event_receiver.
        SET HANDLER: w_event_receiver->handle_data_changed FOR w_1obj_alv,
                     w_event_receiver->handle_toolbar FOR w_1obj_alv,
                     w_event_receiver->handle_user_command FOR w_1obj_alv.
        CALL METHOD w_1obj_alv->register_edit_event
          EXPORTING
            i_event_id = cl_gui_alv_grid=>mc_evt_modified.
        CALL METHOD w_1obj_alv->set_table_for_first_display
          EXPORTING
            i_save               = c_a
            is_layout            = e_1layout
            is_variant           = e_1variant
            it_toolbar_excluding = is_1func
            i_structure_name     = c_1strucs1
          CHANGING
            it_outtab            = is_1pant
            it_fieldcatalog      = is_1fcat[].

    HI ,
    The ALV grid will not work in background. You need to check sy-batch (for background processing ) and write a seperate code .
    The better way of doing is to use SALV factory methods - It works both in background and foreground modes.
    Remember It will work on ECC and it doesnot support editable ALV directly.
    For Demo program  SALV_DEMO* and F4
    Hope this brings clarity and neccassary help to you.

  • Junk values in Excel for ALV output

    Hello
    I have developed a FM based (not OOPS) ALV and its giving output/report, fine.
    But, when user want to get it into excel, then,
    1) If user selects the CntrlShiftF7 - Microsoft Excle icon - I am getting just blank excel opened on my SAP GUI, i did not see any data on the excel, its just blank excel
    2) If user selects the Local file - CntrlShiftF9 - and then selects the Spreadsheet radio button (selected the encoding as 000000): Then, user getting some junk (########) values in the saved excel, like for Invoice number, Date fields/columns.
    We are on ECC 6.0 with windows 7
    Thank you

    Hi,
    I tried the same code page which is used in the example... but no luck.
    Regards,
    Vinay

  • Change Layout transaction SCAL / SCA6_D - Year Overview ECC 6.0

    Hello,
    Can I change the layout of transaction SCAL / SCA6_D to "write" layout and not ALV layout?
    I would like return the leyout as ECC 5.0. Is it possible?
    How can I do it?
    Thanks all.

    When you change the std settings that time you have to create your own variant and save in that variant and then enter that variant in variant filed and remove the use std settign check mark then you will see your fields are nothidden any more
    about the pricing tab i can't help you because  we are in ECC 5.0 so i don't know what u r taking

  • In ME2N  report for PO- How to get or add Vendor name in ALV grid output

    Hl Everyone
    How to get  or add Vendor Name and payment terms in the ALV grid output for the follwing reports like ME2N and ME2V.
    cuurently i am in 4.7 E version.
    Kindly suggest..........
    thanks in advance
    Regards
    Prashanth

    Hi Pankaj
    I knew that vendor name field is avaiable in ECC versions, but how to get the same field(vendor name) in 4.7 E vesion.
    Kindly suggest
    Regards
    Prashanth

Maybe you are looking for

  • Cannot send email vial MAIL application in Tiger

    1. When sending email using .mac account in MAIL application, my password is not accepted. The email is deposited in the outbox and is not sent (no whooshing sound). And no reflection of the email is in the sent box. 2. When sending email using an al

  • Can't drag Photos

    I've been dragging photos out of iPhoto and into a folder on desktop, but suddenly I cannot.  Why?!  I've tried everything I can think of.

  • Running WINDOWS on my AirBook

    I've gone to work with a government agency that uses WIN. It's a secure backbone. They want to give me an old IBM Workbook to use. They probably will not let me use my AirBook unless I turn over access to them (they take control of Admin functions).

  • Vista 64 BIT, BB Storm Synch

    I have a storm and use Vista 64 Bit, I can not send Outlook calendar appointments to the BB, and when I try to synch I get an error that says windows has detected a problem and has ended the program. Does anyone know of a solution, Thank you.

  • Aggregates WhereUsed.

    Hi, I have many queries built on the MP. Is there any table or a way by which I can find which underlying queries are buil on the aggregates instead of using the common RSRT/Dispaly agg method as it will take so much time cheking for every query. Ple