New to ALV

Helllo,
I am trying to write a pgm that uses ALV. I have copied a pgm already written and trying to modify it. I would like to know if there is any documentation that explains the function modules REUSE_ALV_VARIANT_EXISTENCE, REUSE_ALV_FIELDCATLOG_MERGE, REUSE_ALV_GRID_DISPLAY, REUSE_ALV_COMMENTARY_WRITE and any other modules that are used in ALV coding. 
thanks in advance for the help

ALV
http://www.geocities.com/mpioud/Abap_programs.html
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
ALV
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
By
Yuvaram.
Check the previous forum answers to get more help.

Similar Messages

  • At-New using ALV  Function Modules

    Hi,
    Could anyone post how to handle control break command 'AT NEW' in ALV Reports using Function Modules.

    Hi Amit,
    you've posted the question asked by me in another thread, Also one is related to oops and the other is related to Function modules. For my issue I have know about both of them.
    Waiting for ur reply in form of solution.
    Thanks,
    G Sandeep Kumar.

  • AT new in ALV

    Hello every one, got an issue with at new in ALV.
    I need to get  individial sum for each employee. So what ever the amount sub total is for emploee 8361 it should be displayed first b4 it proceeds for next employee 8375.
    How to go about it.
    Employe  Amount
    8361     50,000.00-
    8375     47,250.00
    8375     23,625.00-
    8375     64,855.00-
    8375     95,100.00-
    8375     70,150.00-
         256,480.00-

    Hi Kesi,
    *& Report  Z_REPORTFROMKNA1ANDT005T
    report  z_reportfromkna1andt005t
                      line-size 180
                      message-id zz.
    tables:ekko.
    type-pools : slis.
          Internal table for ALV
    data : it_fieldcat type slis_t_fieldcat_alv,     "Field catalog
           wa_fieldcat type slis_fieldcat_alv,       "WA for Field catalog
           it_event type slis_t_event,               "events
           wa_event type slis_alv_event,             "WA for events
           it_comment type slis_t_listheader,        "Header details
           wa_comment type slis_listheader,          "WA for header details
           wa_layout type slis_layout_alv,           "Layout
           it_sort type slis_t_sortinfo_alv,         "Sort table
           wa_sort type slis_sortinfo_alv,           "WA for sort table
           it_keyinfo type slis_keyinfo_alv.         "Pass key value
    data : v_repid like sy-repid.
    v_repid = sy-repid.
    data : v_date like sy-datum.
    color management.
    data  : it_color type table of lvc_s_scol.       "Color management.
          Internal table declearation
    data:begin of it_ekko occurs 0,
      ebeln like ekko-ebeln,
      bukrs  like ekko-bukrs,
      aedat  like ekko-aedat,
    end of it_ekko.
    data : begin of it_ekpo occurs 0,
      ebeln like ekpo-ebeln,
      ebelp like ekpo-ebelp,
      matnr like ekpo-matnr,
      menge like ekpo-menge,
      meins like ekpo-meins,
      netpr like ekpo-netpr,
      netwr like ekpo-menge,
    end of it_ekpo.
    data : begin of it_EKBE occurs 0,
           ebeln like EKBE-ebeln,
           ebelp like EKBE-ebelp,
           BELNR like EKBE-BELNR,
           MENGE like EKBE-MENGE,
           MATNR like EKBE-MATNR,
      end of it_EKBE.
    data : begin of it_final occurs 0,
      ebeln like ekpo-ebeln,
      ebelp like ekpo-ebelp,
      matnr like ekpo-matnr,
      menge like ekpo-menge,
      meins like ekpo-meins,
      netpr like ekpo-netpr,
      netwr like ekpo-netwr,
      line_color(4) type c,     "Used to store row color attributes
    end of it_final.
    selection-screen begin of block blk with frame title text-001.
    select-options:s_ebeln for ekko-ebeln.
    parameters : rb1 radiobutton group g1,
                 rb2 radiobutton group g1,
                 rb3 radiobutton group g1.
    selection-screen end of block blk.
    start-of-selection.
      perform get_details.
      perform get_alv.
    *&      Form  GET_DETAILS
          Get the details
    form get_details .
      data: ld_color(1) type c.
      select ebeln
             bukrs
             aedat
        from ekko
        into table it_ekko
       where ebeln in s_ebeln.
      if sy-subrc = 0.
        sort it_ekko by ebeln.
      else.
        message e000 with 'DATA NOT FOUND'.
      endif.
      if not it_ekko[] is initial.
        select ebeln
               ebelp
               matnr
               menge
               meins
               netpr
               netwr
          from ekpo
          into table it_ekpo
           for all entries in it_ekko
         where ebeln = it_ekko-ebeln.
        if sy-subrc = 0.
          sort it_ekpo by ebeln.
        endif.
      endif.
      loop at it_ekpo.
        it_final-ebeln = it_ekpo-ebeln.
        it_final-ebelp = it_ekpo-ebelp.
        it_final-matnr = it_ekpo-matnr.
        it_final-menge = it_ekpo-menge.
        it_final-meins = it_ekpo-meins.
        it_final-netpr = it_ekpo-netpr.
        it_final-netwr = it_ekpo-netwr.
        on change of it_final-ebeln.
          ld_color = 7.
          concatenate 'C' ld_color '10' into it_final-line_color.
        endon.
        append it_final.
        clear it_final.
      endloop.
    loop at it_final.
       on change of it_final-ebeln.
         ld_color = 7.
         concatenate 'C' ld_color '10' into it_final-line_color.
         modify it_final.
       endon.
    endloop.
    endform.                    " GET_DETAILS
    *&      Form  GET_ALV
          text
    form get_alv .
      perform generate_fieldcat.
      perform generate_layout.
      perform generate_events.
      perform generate_sort.
      perform alv_grid_display.
    endform.                    " GET_ALV
    *&      Form  GENERATE_FIELDCAT
          Field catalog
    form generate_fieldcat .
      if rb1 = 'X' or rb2 = 'X'.
        wa_fieldcat-fieldname = 'EBELN'.
        wa_fieldcat-col_pos = '1'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'PO Number'.
        wa_fieldcat-lowercase = 'X'.
    <b>    wa_fieldcat-do_sum = 'X'.</b>
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'EBELP'.
        wa_fieldcat-col_pos = '2'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'Item Number'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'MATNR'.
        wa_fieldcat-col_pos = '3'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'Material Number'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'MENGE'.
        wa_fieldcat-col_pos = '4'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'PO Quantity'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'MEINS'.
        wa_fieldcat-col_pos = '5'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'Order unit'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'NETPR'.
        wa_fieldcat-col_pos = '6'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'Net price'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'NETWR'.
        wa_fieldcat-col_pos = '7'.
        wa_fieldcat-just = 'C'.
        wa_fieldcat-seltext_l = 'Net order value'.
        wa_fieldcat-lowercase = 'X'.
        append wa_fieldcat to it_fieldcat.
       wa_fieldcat-fieldname = 'CHK'.
       wa_fieldcat-col_pos = '8'.
       wa_fieldcat-just = 'C'.
       wa_fieldcat-seltext_l = 'Check Box'.
       wa_fieldcat-lowercase = 'X'.
       wa_fieldcat-checkbox = 'X'.
       wa_fieldcat-edit = 'X'.
       append wa_fieldcat to it_fieldcat.
      else.
        call function 'REUSE_ALV_FIELDCATALOG_MERGE'
         exporting
           i_program_name               = v_repid
           i_internal_tabname           = 'IT_EKKO'
        I_STRUCTURE_NAME             = I_STRUCTURE_NAME
        I_CLIENT_NEVER_DISPLAY       = 'X'
           i_inclname                   = v_repid
        I_BYPASSING_BUFFER           = I_BYPASSING_BUFFER
        I_BUFFER_ACTIVE              = I_BUFFER_ACTIVE
          changing
            ct_fieldcat                  = it_fieldcat
         exceptions
           inconsistent_interface       = 1
           program_error                = 2
           others                       = 3
        if sy-subrc <> 0.
          message id sy-msgid type sy-msgty number sy-msgno
                  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.
        call function 'REUSE_ALV_FIELDCATALOG_MERGE'
         exporting
           i_program_name               = v_repid
           i_internal_tabname           = 'IT_EKPO'
      I_STRUCTURE_NAME             = I_STRUCTURE_NAME
      I_CLIENT_NEVER_DISPLAY       = 'X'
           i_inclname                   = v_repid
      I_BYPASSING_BUFFER           = I_BYPASSING_BUFFER
      I_BUFFER_ACTIVE              = I_BUFFER_ACTIVE
          changing
            ct_fieldcat                  = it_fieldcat
         exceptions
           inconsistent_interface       = 1
           program_error                = 2
           others                       = 3
        if sy-subrc <> 0.
          message id sy-msgid type sy-msgty number sy-msgno
                  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.
      endif.
    endform.                    " GENERATE_FIELDCAT
    *&      Form  GENERATE_EVENTS
          Generate Events
    form generate_events .
      call function 'REUSE_ALV_EVENTS_GET'
        importing
          et_events       = it_event
        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.
      if not it_event[] is initial.
        read table it_event into wa_event with key name = 'TOP_OF_PAGE'.
        if sy-subrc = 0.
          wa_event-form = 'TOP_OF_PAGE'.
          modify it_event from wa_event index sy-tabix.
        endif.
      endif.
    endform.                    " GENERATE_EVENTS
    *&      Form  TOP_OF_PAGE
          TOP_OF_PAGE
    form top_of_page.
      wa_comment-typ = 'S'.
      wa_comment-key = 'USER :'.
      wa_comment-info = sy-uname.
      append wa_comment to it_comment.
      wa_comment-typ = 'S'.
      wa_comment-key = 'DATE:'.
      wa_comment-info = sy-datum.
      append wa_comment to it_comment.
      wa_comment-typ = 'S'.
      wa_comment-key = 'TIME:'.
      wa_comment-info = sy-timlo.
      append wa_comment to it_comment.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          it_list_commentary = it_comment.
      clear it_comment.
    endform.                    "TOP_OF_PAGE
    *&      Form  ALV_GRID_DISPLAY
          Grid display
    form alv_grid_display .
      if rb1 = 'X'.
        perform grid_display.
      elseif rb2 = 'X'.
        perform list_display.
      else.
        perform hierseq_display.
      endif.
    endform.                    " ALV_GRID_DISPLAY
    *&      Form  GENERATE_LAYOUT
          LAYOUT
    form generate_layout .
      wa_layout-colwidth_optimize = 'X'.           "OPTIMIZING FIELD WIDTH
      wa_layout-zebra = 'X'.                       "PUTTING ZEBRA COLORS
    <b>  wa_layout-totals_text = 'Total'.</b>
    <b>  wa_layout-subtotals_text = 'SUB TOTAL'.</b>
      wa_layout-info_fieldname = 'LINE_COLOR'.
    endform.                    " GENERATE_LAYOUT
    *&      Form  GENERATE_SORT
          SORT
    form generate_sort .
      wa_sort-fieldname = 'EBELN'.
      wa_sort-spos = '1'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.
      append wa_sort to it_sort.
    endform.                    " GENERATE_SORT
    *&      Form  GRID_DISPLAY
          GRID DISPLAY
    form grid_display .
      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           = 'IT_USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
       i_grid_title                      = 'Purchase Order Details'
      I_GRID_SETTINGS                   = I_GRID_SETTINGS
       is_layout                         = wa_layout
       it_fieldcat                       = it_fieldcat
      IT_EXCLUDING                      = IT_EXCLUDING
      IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
       it_sort                           = it_sort
      IT_FILTER                         = IT_FILTER
      IS_SEL_HIDE                       = IS_SEL_HIDE
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        = IS_VARIANT
       it_events                         = it_event
      IT_EVENT_EXIT                     = IT_EVENT_EXIT
      IS_PRINT                          = IS_PRINT
      IS_REPREP_ID                      = 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_ALV_GRAPHICS
      IT_HYPERLINK                      = IT_HYPERLINK
      IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
      IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
      IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
        tables
          t_outtab                          = it_final
    exceptions
       program_error                     = 1
       others                            = 2
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " GRID_DISPLAY
    *&      Form  LIST_DISPLAY
          LIST DISPLAY
    form list_display .
      call function 'REUSE_ALV_LIST_DISPLAY'
       exporting
        I_INTERFACE_CHECK              = ' '
        I_BYPASSING_BUFFER             = I_BYPASSING_BUFFER
        I_BUFFER_ACTIVE                = ' '
         i_callback_program             = v_repid
        I_CALLBACK_PF_STATUS_SET       = ' '
         i_callback_user_command        = 'IT_USER_COMMAND'
        I_STRUCTURE_NAME               = I_STRUCTURE_NAME
         is_layout                      = wa_layout
         it_fieldcat                    = it_fieldcat
        IT_EXCLUDING                   = IT_EXCLUDING
        IT_SPECIAL_GROUPS              = IT_SPECIAL_GROUPS
         it_sort                        = it_sort
        IT_FILTER                      = IT_FILTER
        IS_SEL_HIDE                    = IS_SEL_HIDE
        I_DEFAULT                      = 'X'
        I_SAVE                         = ' '
        IS_VARIANT                     = IS_VARIANT
         it_events                      = it_event
        IT_EVENT_EXIT                  = IT_EVENT_EXIT
        IS_PRINT                       = IS_PRINT
        IS_REPREP_ID                   = IS_REPREP_ID
        I_SCREEN_START_COLUMN          = 0
        I_SCREEN_START_LINE            = 0
        I_SCREEN_END_COLUMN            = 0
        I_SCREEN_END_LINE              = 0
        IR_SALV_LIST_ADAPTER           = IR_SALV_LIST_ADAPTER
        IT_EXCEPT_QINFO                = IT_EXCEPT_QINFO
        I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER        = E_EXIT_CAUSED_BY_CALLER
        ES_EXIT_CAUSED_BY_USER         = ES_EXIT_CAUSED_BY_USER
        tables
          t_outtab                       = it_final
       exceptions
         program_error                  = 1
         others                         = 2
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " LIST_DISPLAY
    *&      Form  HIERSEQ_DISPLAY
          HIERSEQ DISPLAY
    form hierseq_display .
      it_keyinfo-header01 = 'EBELN'.
      it_keyinfo-item01 = 'EBELN'.
      call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        exporting
      I_INTERFACE_CHECK              = ' '
         i_callback_program             = v_repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
         is_layout                      = wa_layout
         it_fieldcat                    = it_fieldcat
      IT_EXCLUDING                   = IT_EXCLUDING
      IT_SPECIAL_GROUPS              = IT_SPECIAL_GROUPS
         it_sort                        = it_sort
      IT_FILTER                      = IT_FILTER
      IS_SEL_HIDE                    = IS_SEL_HIDE
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     = IS_VARIANT
         it_events                      = it_event
      IT_EVENT_EXIT                  = IT_EVENT_EXIT
          i_tabname_header               = 'IT_EKKO'
          i_tabname_item                 = 'IT_EKPO'
      I_STRUCTURE_NAME_HEADER        = I_STRUCTURE_NAME_HEADER
      I_STRUCTURE_NAME_ITEM          = I_STRUCTURE_NAME_ITEM
          is_keyinfo                     = it_keyinfo
      IS_PRINT                       = IS_PRINT
      IS_REPREP_ID                   = IS_REPREP_ID
      I_BYPASSING_BUFFER             = I_BYPASSING_BUFFER
      I_BUFFER_ACTIVE                = I_BUFFER_ACTIVE
      IR_SALV_HIERSEQ_ADAPTER        = IR_SALV_HIERSEQ_ADAPTER
      IT_EXCEPT_QINFO                = IT_EXCEPT_QINFO
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER         = ES_EXIT_CAUSED_BY_USER
        tables
          t_outtab_header                = it_ekko
          t_outtab_item                  = it_ekpo
       exceptions
         program_error                  = 1
         others                         = 2
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " HIERSEQ_DISPLAY
    *& Form IT_USER_COMMAND
    text
    form it_user_command using r_ucomm like sy-ucomm
                               rs_selfield type slis_selfield.
    free it_fieldcat.
      case r_ucomm.
        when '&IC1'.
          read table it_final index rs_selfield-tabindex.
          perform get_EKBE.
          PERFORM GET_FIELD_CATALOG.
          perform get_list.
      endcase.
    endform.                               "IT_USER_COMMAND
    *&      Form  GET_EKBE
          text
    form get_EKBE .
      if not it_final[] is initial.
        select ebeln
               ebelp
               BELNR
               MENGE
               MATNR
          into table it_ekbe
          from EKBE
           for all entries in it_final
         where ebeln = it_final-ebeln
           and ebelp = it_final-ebelp.
      endif.
    endform.                    " GET_EKBE
    *&      Form  GET_FIELD_CATALOG
          text
    form GET_FIELD_CATALOG .
        wa_fieldcat-fieldname = 'EBELN'.
        wa_fieldcat-col_pos = '1'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'PO Number'.
        wa_fieldcat-lowercase = 'X'.
        wa_fieldcat-do_sum = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'EBELP'.
        wa_fieldcat-col_pos = '2'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'Item Number'.
        wa_fieldcat-lowercase = 'X'.
        wa_fieldcat-do_sum = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'BELNR'.
        wa_fieldcat-col_pos = '3'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'Material Document'.
        wa_fieldcat-lowercase = 'X'.
        wa_fieldcat-do_sum = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'MENGE'.
        wa_fieldcat-col_pos = '4'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'Quantity'.
        wa_fieldcat-lowercase = 'X'.
        wa_fieldcat-do_sum = 'X'.
        append wa_fieldcat to it_fieldcat.
        wa_fieldcat-fieldname = 'MATNR'.
        wa_fieldcat-col_pos = '5'.
        wa_fieldcat-just = 'R'.
        wa_fieldcat-seltext_l = 'Material Number'.
        wa_fieldcat-lowercase = 'X'.
        wa_fieldcat-do_sum = 'X'.
        append wa_fieldcat to it_fieldcat.
    endform.                    " GET_FIELD_CATALOG
    *&      Form  get_list
          text
    form get_list .
    IF RB1 = 'X'.
      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            = ' '
        I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  = I_STRUCTURE_NAME
        I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                      = 'SECONDARY LIST'
        I_GRID_SETTINGS                   = I_GRID_SETTINGS
        IS_LAYOUT                         = IS_LAYOUT
         IT_FIELDCAT                       = IT_FIELDCAT
        IT_EXCLUDING                      = IT_EXCLUDING
        IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
        IT_SORT                           = IT_SORT
        IT_FILTER                         = IT_FILTER
        IS_SEL_HIDE                       = IS_SEL_HIDE
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
        IS_VARIANT                        = IS_VARIANT
        IT_EVENTS                         = IT_EVENTS
        IT_EVENT_EXIT                     = IT_EVENT_EXIT
        IS_PRINT                          = IS_PRINT
        IS_REPREP_ID                      = 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_ALV_GRAPHICS
        IT_HYPERLINK                      = IT_HYPERLINK
        IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
        IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
        IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
        ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
        tables
          t_outtab                          = IT_EKBE
       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.
    ENDIF.
    IF RB2 = 'X'.
    call function 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             = I_BYPASSING_BUFFER
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = v_repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               = I_STRUCTURE_NAME
      IS_LAYOUT                      = IS_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT
      IT_EXCLUDING                   = IT_EXCLUDING
      IT_SPECIAL_GROUPS              = IT_SPECIAL_GROUPS
      IT_SORT                        = IT_SORT
      IT_FILTER                      = IT_FILTER
      IS_SEL_HIDE                    = IS_SEL_HIDE
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     = IS_VARIANT
      IT_EVENTS                      = IT_EVENTS
      IT_EVENT_EXIT                  = IT_EVENT_EXIT
      IS_PRINT                       = IS_PRINT
      IS_REPREP_ID                   = IS_REPREP_ID
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      IR_SALV_LIST_ADAPTER           = IR_SALV_LIST_ADAPTER
      IT_EXCEPT_QINFO                = IT_EXCEPT_QINFO
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER         = ES_EXIT_CAUSED_BY_USER
      tables
        t_outtab                       = it_ekbe
    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.
    ENDIF.
    endform.                    " get_list
    Thanks
    Vikranth Khimavath
    Message was edited by: Khimavath Vikranth

  • How to use at new in alv report

    Hi Experts,
    I am creating a ALV report in which i have to sorted the data with 1 field like " if there the one division that have multiple department , so i have to show the output like division name then next row contain the releted dept of that"
    can you plz suggest me how to i do this.
    Thanks....

    Hi Asamadhi,
    Using control break statement(At new or at end of)you can do this.
    At first sort the internal table by key field(for your case i think division).
    at first field(division)
    write:/  data.
    endat.
    Regards,
    Tutun

  • Example of how to call a BadI from an Abap and use the NEW OO ALV Grid

    Very easy to do.
    <b>REPORT  Z_BADI_TEST.
    test call Badi from standard abap.
    *Only from rel 6.40
    do the following
    1) define the Badi  (SE18).
    For Abap call test uncheck multiple use
    and filter boxes
    2) Implement the badi (SE19).
    Add any methods here in the implementation
    3) activate
    4)  define the standard class exithandler to the
    Abap. This class is the "Badi caller
    5)  define an exit variable referring to your Badi
    Implementation interface
    this interface  will normally be
    called something like 
    ZIF_EX***************
      You will see the actual name in SE18/SE19.
    6)  Instantiate your instance of the badi
    via  method call get_instance
    7)  Now call any method(s) in the Badi.
    *****************start of abap code **************
    Define the Badi calling class (standard sap class)
      class cl_exithandler definition load.   "Declaration
    *Interface reference  
      data exit type ref to zif_ex__jimbotest.    
         data yes type c.
    Used in Fmod call in Badi methods
        data: v_knvv type knvv.
        start-of-selection.
        yes = ' '.
      selection-screen  begin of block b1.
      parameters: r1  radiobutton  group rad1,
                  r2  radiobutton group rad1,
                  r3  radiobutton group rad1.
      selection-screen end of block b1.
        parameters: p_kunnr type knvv-kunnr.
        select  single * into v_knvv
        from knvv
         where kunnr eq p_kunnr.
         export v_knvv to memory id 'CUST6A'.
    *Save customer data for the function module call
    call method cl_exithandler=>get_instance 
           exporting 
           exit_name    = 'Z_JIMBOTEST' "Your Badi Name
           null_instance_accepted = yes
              changing instance = exit.
       if not exit is initial.
           if r1 = 'X'.
         call method exit->dispord .  "Badi call
          endif.
    if r2 = 'X'.
    call method exit->dispfakt.     "Badi Call
    endif.
    if r3 = 'X'.
    call method exit->dispmat.      "Badi call
    endif.
    end of calling abap******** </b>
    In the badi   methods code as shown
    1)
    method ZIF_EX__JIMBOTEST~DISPORD.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    2)
    method ZIF_EX__JIMBOTEST~DISPFAKT.
    CALL FUNCTION 'Z_DISPLAY_FAKT'.
    endmethod
    3)
    method ZIF_EX__JIMBOTEST~DISPMAT.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    Copy via SE 41 the status SALV_STANDARD from  standard SAP program SALV_DEMO_METADATA into the main program where you've created the 3 function modules below (SAP______TOP)
    Global Data for the three function modules I'm calling
    FUNCTION-POOL Z_BADI_KNVV.                  "MESSAGE-ID ..
    include <color>.
    include <icon>.
    include <symbol>.
    tables: zknvv.
    data: v_zzkvgr6  TYPE KNVV-ZZKVGR6.
    data: choice1  type c.
    data: choice2 type c.
    data: choice3 type c.
    data: choice4 Type c.
    data: ok-code(5) type c.
    data: answer type string.
    data: value1 type SPOP-VARVALUE1.
    data: answer1  type string.
    tables:  vbak, vbap,  vakpa, vbrk, vrkpa.
    data: lr_functions type ref to cl_salv_functions_list.
    constants: gc_true  type sap_bool value 'X',
               gc_false type sap_bool value space.
    add for colour displays
       data: ls_color type lvc_s_colo.
       DATA : LV_SALV_COLUMNS_TABLE TYPE REF TO CL_SALV_COLUMNS_TABLE.
      data: lr_columns type ref to cl_salv_columns_table,
            lr_column  type ref to cl_salv_column_table.
    Data:
            gr_table TYPE REF TO cl_salv_table.
    data: z_datum type sy-datum.
    data: v_knvv type knvv.
    data : begin of s_vbak,
              vkorg   type vakpa-vkorg,
              vkgrp   type vakpa-vkgrp,
              vtweg   type vakpa-vtweg,
              spart   type vakpa-spart,
              auart   type vakpa-auart,
              vbeln   type vakpa-vbeln,
              bstnk   type vakpa-bstnk,
              audat   type vakpa-audat,
              netwr   type vbak-netwr,
           end of s_vbak.
    data : begin of s_vbrk,
              vbeln   type vrkpa-vbeln,
              vkorg   type vrkpa-vkorg,
              fkart   type vrkpa-fkart,
              fkdat   type vrkpa-fkdat,
              netwr   type vbrk-netwr,
           end of s_vbrk.
      data: begin of s_vbap,
             matnr   type vbap-matnr,
             arktx   type vbap-arktx,
             netwr   type vbap-netwr,
             kwmeng  type vbap-kwmeng,
          end of s_vbap.
    data: t_vbap like table of s_vbap.
    data:   t_vbak
            like table of s_vbak.
      data:   t_vbrk
            like table of s_vbrk.
    data:   s_name  type tabname.
    data: gr_selections type ref to cl_salv_selections.
    data: gr_events type ref to cl_salv_events_table.
    Source code of the function modules.
    Function modules themselves
    FUNCTION Z_DISPLAY_CUST.
    s_name = 'S_VBAK'.
    orders in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avkorg aaudat avkgrp avtweg aspart aauart abstnk avbeln b~netwr
          into corresponding fields of  table t_vbak
          up to 100 rows
             from (  vakpa as a
              inner join vbak as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    sort t_vbak by audat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbak.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_FAKT.
    s_name = 'S_VBRK'.
    invoices in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avbeln afkart avkorg afkdat
         b~netwr
          into corresponding fields of  table t_vbrk
          up to 100 rows
             from (  vrkpa as a
              inner join vbrk as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'RG'
           and a~vkorg eq 'EN01'
            and a~vbtyp eq 'M'
            and a~fkdat gt z_datum.
    sort t_vbrk by fkdat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbrk.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
          catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_MATERIAL.
    s_name = 'S_VBAP'.
    invoicesrs in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
    select avbeln bmatnr barktx bnetwr b~kwmeng
    into corresponding fields of  table t_vbap
          up to 100 rows
    from (  vakpa as a
              inner join vbap as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbap.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'ARKTX' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    You can extend this as far as you like -- it's really easy and MUCH MUCH easier than the old way with fieldcatalogs etc etc.

    If the pagecontainer_mc holds another movieclip that contains the button you are trying to target, then you need to include that loaded movieclip in the targeting.  And if contacts is that movieclip, then you should be able to target it directly using...
    var contacts:contatti = new contatti;
    contacts.contacts_btn.addEventListener(MouseEvent.CLICK,showContacts);

  • AT NEW in ALV list

    Hi all,
    I am displaying an ALV list. I want my output to display the department in a new line for every new department.
    Example:
    no           name              dept
    department D1
    1             abc                 d1
    2             xyz                 d1
    3             xyz1               d1
    department D2
    1             abr                 d2
    2             xyg                d2
    3             xfz                 d2
    How can we do it in ALV list? Please help me.
    Dev.

    You cannot add that line("Department D1") in ALV,
    You can do this work around,
    declare wa_final and it_final just like your itab.
    1) sort itab by dept.
    2) Loop at itab into wa.
    3) at new dept.
    wa_final-name = 'Department'.
    wa_final-dept = wa-dept
    append wa_final to it_final.
    endat.
    wa_final = wa.
    append wa_final to it_final.
    endloop.
    Please refine the code. I have not tested it.
    Regards,
    Sumit

  • I am new to alv grid

    Can u tell me which document i have to refer so that in a short time i can know abt alv grid and can start my project work

    Hi check thes links.
    1. Please give me general info on ALV.
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    2. How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    3. How do I add subtotals (I have problem to add them)...
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    4. How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    5. How to print page number / total number of pages X/XX in ALV? http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
    6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
    http://www.sapfans.com/forums/viewtopic.php?t=64320
    http://www.sapfans.com/forums/viewtopic.php?t=44477
    7. How can I set the cell color in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    8. How do I print a logo/graphics in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=81149
    http://www.sapfans.com/forums/viewtopic.php?t=35498
    http://www.sapfans.com/forums/viewtopic.php?t=5013
    9. How do I create and use input-enabled fields in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=84933
    http://www.sapfans.com/forums/viewtopic.php?t=69878
    10. How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    11. How can I display an icon in ALV? (Common requirement is traffic light icon).
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    12. How can I display a checkbox in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=88376
    http://www.sapfans.com/forums/viewtopic.php?t=40968
    http://www.sapfans.com/forums/viewtopic.php?t=6919

  • Change column headers in ALV report

    Hi experts,
    I have created a new simple ALV report (it uses only internal tables, no structures). I would like to change the names of column headers in the ALV report. Is this possible? How can I do it?
    Thanks in advanced.

    Thanks for your reply,
    I am trying to use the code mentioned in the link but I think that something
    is missing, probably a CASE statement before WHEN in the LOOP.
    Can you help me? What do I have to put before WHEN statement?
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = <program name>
          i_structure_name       = <DDIC structure>
          i_bypassing_buffer     = 'X'
        CHANGING
          ct_fieldcat            = gi_fieldcat[]
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.                           "#EC *
      LOOP AT gi_fieldcat INTO wa_fieldcat.
          WHEN 'XXXX'.
            wa_fieldcat-seltext_s    = 'Fac'.
            wa_fieldcat-seltext_m    = 'Factory'.
            wa_fieldcat-seltext_l    = 'Factory'.
            wa_fieldcat-reptext_ddic = 'Factory'.
        MODIFY gi_fieldcat FROM wa_fieldcat.
      ENDLOOP.

  • ALV report in OO concept

    hi all
    I am working on ALV report in OO concept. and facing in some difficulties in sorting, subtotal, coloring etc.. so it would be great help if there some sample program which can handle all this..
    ***Create new instance ALV table object
        TRY.
            CALL METHOD cl_salv_table=>factory
              IMPORTING
                r_salv_table = o_alv
              CHANGING
                t_table      = i_mara.
          CATCH cx_salv_msg INTO lc_msg .
        ENDTRY.
    ***.Enable Generic ALV functions
        lo_functions = o_alv->get_functions( ).
        lo_functions->set_all( ).
    lo_functions->set_default( abap_true ).
    ***Sorting
        lo_sorts = o_alv->get_sorts( ).
    lo_sorts->add_sort( columnname = 'BRGEW' subtotal = abap_true ).
        o_alv->display( ).
    i tried this one but it is telling no column found and not doing subtotal..
    pls giude
    thanks
    Edited by: JaiKarthik on Dec 7, 2009 4:17 AM

    Hi You have to use ls_fieldcat-do_sum statement in your coding Check this sample report to display output in total & subtotal &---- *& Report ZALVTOTAL * *& * &---- *& * *& * &---- REPORT ZALVTOTAL . TYPES : BEGIN OF ty_vbak, vkorg TYPE vbak-vkorg, " Sales organization kunnr TYPE vbak-kunnr, " Sold-to party vbeln TYPE vbak-vbeln, " Sales document netwr TYPE vbak-netwr, " Net Value of the Sales Order waerk TYPE vbak-waerk, " Document currency END OF ty_vbak. DATA: vbak TYPE vbak, gt_vbak TYPE TABLE OF ty_vbak. SELECT-OPTIONS : s_vkorg FOR vbak-vkorg, " Sales organization s_kunnr FOR vbak-kunnr, " Sold-to party s_vbeln FOR vbak-vbeln. " Sales document SELECTION-SCREEN : SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY. SELECTION-SCREEN END OF LINE. ---- INITIALIZATION. v_1 = 'Maximum of records to read'. ---- START-OF-SELECTION. PERFORM f_read_data. PERFORM f_display_data. ---- * Form f_read_data ---- FORM f_read_data. SELECT vkorg kunnr vbeln netwr waerk UP TO p_max ROWS INTO TABLE gt_vbak FROM vbak WHERE kunnr IN s_kunnr AND vbeln IN s_vbeln AND vkorg IN s_vkorg. ENDFORM. " F_READ_DATA ---- * Form f_display_data ---- FORM f_display_data. TYPE-POOLS: slis. " ALV Global types DEFINE m_fieldcat. add 1 to ls_fieldcat-col_pos. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_tabname = 'VBAK'. ls_fieldcat-do_sum = &2. ls_fieldcat-cfieldname = &3. append ls_fieldcat to lt_fieldcat. END-OF-DEFINITION. DEFINE m_sort. add 1 to ls_sort-spos. ls_sort-fieldname = &1. ls_sort-up = 'X'. ls_sort-subtot = &2. append ls_sort to lt_sort. END-OF-DEFINITION. DATA: ls_fieldcat TYPE slis_fieldcat_alv, lt_fieldcat TYPE slis_t_fieldcat_alv, lt_sort TYPE slis_t_sortinfo_alv, ls_sort TYPE slis_sortinfo_alv, ls_layout TYPE slis_layout_alv. m_fieldcat 'VKORG' '' ''. m_fieldcat 'KUNNR' '' ''. m_fieldcat 'VBELN' '' ''. m_fieldcat 'NETWR' 'X' 'WAERK'. m_fieldcat 'WAERK' '' ''. m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal m_sort 'VBELN' ''. " Sort by vbeln ls_layout-cell_merge = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING is_layout = ls_layout it_fieldcat = lt_fieldcat it_sort = lt_sort TABLES t_outtab = gt_vbak. ENDFORM. " F_DISPLAY_DATA
    Regards,
    Arun.

  • ALV Report: How to pass the variable in Work area to the FM ? Please help !

    I want to pass the field in the work area which contains the floating point numbers to FM 'FLTP_CHAR_CONVERSION_FROM_SI'. This the correct FM, I have tested.
    If I specify the field with Tab name in FM , It says its not an internal table with header line.
    Please help me, How should can I proceed further and pass the field to FM and get it back in work area.
    And an other issue is I want to sum the particular field in the output.
    Is there a way to do using 'PF-STATUS', if so how ? or what is the alternative for this ?
    Please help me with my issues.
    I'm new to ALV reports.
    Thanks in Advance !

    Hi,
    For your FM issue, i think you are trying to pass the field in the FM as ITAB-field, while you should be taking the data in the work area first and then pass this work area in the FM as WA_ITAB-field.
    I hope this will resolve your prob.
    I mean loop at the table and take the values into work area, update the internal table with changed value. This way by the end of loop you will have all your fields converted.
    Please explain a little more about your second doubt, it is unclear(to me atleast).
    Edited by: DeepakNagar on Jul 28, 2011 6:08 PM

  • Directly creation of ALV Variant in Production - Whether possible

    Hi Friends,
    I have a requirement to display few more fields for the standard dunning report . The server version is 4.6C .
    All the required fields are available in field catalogue. I  have to create a new variant to access the new fields also.
    I am totally new to ALV Programs related activities.
    My question is  -
       Can I create the variant directly in Production , or I have to create the variant in Dev and move to TST and Production.
    Please advice.
    Thanks in advance,
    Vengal Rao.

    Hello Vengal,
    Check this thread: ALV layout name for details.
    BR,
    Suhas

  • Need help on ALV report

    hi,
    i am new to ALV programming,i awant to generate the report with three teable mseg,mkpf,mard.
    i need selection screen also.
    in the selection screen following is the field names.
    Matdoc number-mseg-mblnr
    mat number - mseg-matnr
    plant - mseg-werks
    sloc mseg-lgort
    movtype- mseg-bwart.
    batch number- mseg-charg.
    ordernumber -mseg-aufnr.
    costcenter- mseg-kostl.
    reservation number- mseg-rsnum.
    storage bin - mard-lgpbe.
    i want to fetch the data from three tables
    mseg,mard,mkpf.
    after featch report should disply in alv grid following items.
    Matdoc number-mseg-mblnr
    mat number - mseg-matnr
    plant - mseg-werks
    sloc mseg-lgort
    movtype- mseg-bwart.
    batch number- mseg-charg.
    ordernumber -mseg-aufnr.
    costcenter- mseg-kostl.
    reservation number- mseg-rsnum.
    storage bin - mard-lgpbe.
    posting date - mkpf-budat.
    if any body have the code kindly send it as early as posible.
    Thanks,
    Rammohan.

    here is a sample program i think almost containing the same tables and fields
    *& Report  ZSD_R_ENHANCEMENT2                                           *
    *& REPORT PROGRAMMING FOR THE FURTHER ENHANCEMENT OF THE PRE-GENERATED
    *& MB51. REQUIREMENT IS TO ADD FIVE MORE FIELDS.
    *& OLD MATERIAL ON THE TOP LEFT CORNER OF THE HEADER AND
    *& Batch number the right of material document.
    *& Serial number if found should be placed to the right of the batch number.
    *& Handling unit/ storage unit to the right of serial number.
    *& Transaction description at the last of the report.
    REPORT  ZSD_R_ENHANCEMENT2 MESSAGE-ID ZB6T2                      .
    *& STRUCTURE CREATION FOR INTERNAL TABLES                              *
    *STRUCUTRE CREATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
    TYPES: BEGIN OF TY_MKPF_MSEG,
           MBLNR TYPE MBLNR,   " NUMBER OF MATERIAL DOC
           MJAHR TYPE MJAHR,   " MATERIAL DOCUMENT YEAR
           VGART TYPE VGART,   " TRANSACTION EVENT TYPE
           BLART TYPE BLART,   " DOCUMENT TYPE
           BUDAT TYPE BUDAT,   " POSTING DATE INT THE DOC
           USNAM TYPE USNAM,   " USERNAME
           XBLNR TYPE XBLNR1,  " REFERENCE DOCUMENT NUMBER
           MATNR TYPE MATNR,   " MATERIAL NUMBER
           WERKS TYPE WERKS_D, " PLANT
           LGORT TYPE LGORT_D, " STORAGE LOCATION
           CHARG TYPE CHARG_D, " BATCH NUM
           LIFNR TYPE ELIFN,   " ACC OF VENDOR
           KUNNR TYPE EKUNN,   " CUSTOMER NUM
           SOBKZ TYPE SOBKZ,   " SPECIAL STOKING
           BWART TYPE BWART,   " MOVEMENT TYPE
           ZEILE TYPE MBLPO,   " ITEM IN MATERIAL DOCUMENT
           ERFMG TYPE ERFMG,   " QUANTITY IN UNIT OF ENTERY
           ERFME TYPE ERFME,   " UNIT OF ENTRY
           END OF TY_MKPF_MSEG,
    *STRUCTURE FOR MATERIAL MASTER DATA
           BEGIN OF TY_MARA,
           MATNR TYPE MATNR,   " MATERIAL TYPE
           BISMT TYPE BISMT,   " OLD MATERIAL NUMBER
           END OF TY_MARA,
    *STRUCTURE DECLARATION FOR MATERIAL DESCRIPTION
           BEGIN OF TY_MAKT,
           MATNR TYPE MATNR,   " MATERIAL NUM
           SPRAS TYPE SPRAS,    " LANGUAGE KEY
           MAKTX TYPE MAKTX,   " MATERIAL DESC
           END OF TY_MAKT,
    *STRUCTURE DECLARATION FOR MOVEMENT TYPE TEXT
           BEGIN OF TY_T156T,
           BWART TYPE BWART,   " MOVEMENT TYPE
           BTEXT TYPE BTEXT,   " MOVEMENT TYPE TEXT
           SPRAS TYPE SPRAS,   " LANGUAGE KEY
           END OF TY_T156T,
    *STRUCTURE CREATION FOR DOCUMENT HEADER FOR SERIALNUMBERS FOR GOOD MOVEMENTS
           BEGIN OF TY_SER03,
           MBLNR TYPE MBLNR,   " NUMBER OF MATERIAL DOC
           MJAHR TYPE MJAHR,   " MATERIAL DOCU YEAR
           ZEILE TYPE MBLPO,   " OUTPUT IN MATERIAL DOC
           OBKNR TYPE OBJKNR,  " OBJECT LIST NUMBER
           END OF TY_SER03,
    *STRUCUTRE DECLARATION FOR PLANTS MAINTANENCE OBKECT LIST
           BEGIN OF TY_OBJK,
           OBKNR TYPE OBJKNR,  " OBJECT LIST NUMBER
           OBZAE TYPE OBJZA,   " OBLECT LIST COUNTERS
           SERNR TYPE GERNR,   " SERIAL NUMBER
           END OF TY_OBJK,
    *STRUCUTRE DECLARATION FOR PLANTS/BRANCHES
           BEGIN OF TY_T001W,
           WERKS TYPE WERKS_D, " PLANT
           NAME1 TYPE NAME1,   " NAME
           END OF TY_T001W,
    *STRUCUTRE DECLARATION FOR OUTPUT TABLE
          BEGIN OF TY_OUTPUT,
           MATNR TYPE MATNR,   " MATERIAL NUMBER
           BISMT TYPE BISMT,   " OLD MATERIAL NUMBER
           MAKTX TYPE MAKTX,   " MATERIAL DESC
           WERKS TYPE WERKS_D, " PLANT
           NAME1 TYPE NAME1,   " NAME
           LGORT TYPE LGORT_D, " Storage Location
           BWART TYPE BWART,   " Movement Type
           MBLNR TYPE MBLNR,   " NUMBER OF MATERIAL DOC
           CHARG TYPE CHARG_D, " BATCH NUM
           SERNR TYPE GERNR,   " SERIAL NUMBER
           ZEILE TYPE MBLPO,   " OUTPUT IN MATERIAL DOC
           BUDAT TYPE BUDAT,   " POSTING DOCU DATE
           ERFMG TYPE ERFMG,   " QUANTITY IN UNIT OF ENTRY
           ERFME TYPE ERFME,   " UNINT OF ENTRY
           BTEXT TYPE BTEXT,   " MOVEMENT TYPE TEXT
           MJAHR TYPE MJAHR,   " MATEREIAL DOC YEAR
           VGART TYPE VGART,   " TRANSACTION EVENT TYPE
           BLART TYPE BLART,   " DOCUMENT TYPE
           USNAM TYPE USNAM,   " USERNAME
           XBLNR TYPE XBLNR1,  " REFERENCE DOCUMENT NUM
           SOBKZ TYPE SOBKZ,   " SPECIAL STOCKING
           LIFNR TYPE ELIFN,   " ACC OF VENDOR
           KUNNR TYPE EKUNN,   " CUSTOMER
           OBKNR TYPE OBJKNR,  " OBJECT LIST NUMBER
           END OF TY_OUTPUT.
    *&INTERNAL TABLE DECLARATION FOR STRUCUTRES                            *
    INTERNAL TABLE DECLARATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
    DATA : T_MKPF_MSEG TYPE STANDARD TABLE OF TY_MKPF_MSEG INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR MATERIAL MASTER DAT
           T_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR MATERIAL TYPE DESC
           T_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR MOVEMENT TYPE TEXT
           T_T156T TYPE STANDARD TABLE OF TY_T156T INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR Document Header for Serial Numbers for Goods Movements
           T_SER03 TYPE STANDARD TABLE OF TY_SER03 INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR Plant Maintenance Object List
           T_OBJK TYPE STANDARD TABLE OF TY_OBJK INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR Plants/Branches
           T_T001W TYPE STANDARD TABLE OF TY_T001W INITIAL SIZE 0,
    *INTERNAL TABLE DECLARATION FOR OUTPUT
           T_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT INITIAL SIZE 0,
    *&WORK AREA DECLARATIONS FOR INTERNAL TABLES                           *
    *WORK AREA DECLARATION HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
           W_MKPF_MSEG TYPE TY_MKPF_MSEG,
    *WORK AREA DECLARATION MATERIAL MASTER DATA
           W_MARA TYPE TY_MARA,
    *WORK AREA DECLARATION MATERIAL TYPE DESC
           W_MAKT TYPE TY_MAKT,
    *WORK AREA DECLARATION MOVEMENT TYPE TEXT\
           W_T156T TYPE TY_T156T,
    *WORK AREA DECLARATION Document Header for Serial Numbers for Goods Movements
           W_SER03 TYPE TY_SER03,
    *WORK AREA DECLARATION PLANT MAINTENANCE OBJECT LIST
           W_OBJK TYPE TY_OBJK,
    *WORK AREA DECLARATION PLANTS AND BRANCHES
           W_T001W TYPE TY_T001W,
    *WORK AREA DECLARATION FOR OUTPUT TABLE.
          W_OUTPUT TYPE TY_OUTPUT,
    *& GLOBAL VARIABLE DECLARATIONS                                        *
           G_MATNR TYPE MSEG-MATNR,
           G_WERKS TYPE MSEG-WERKS,
           G_LGORT TYPE MSEG-LGORT,
           G_CHARG TYPE MSEG-CHARG,
           G_LIFNR TYPE MSEG-LIFNR,
           G_KUNNR TYPE MSEG-KUNNR,
           G_BWART TYPE MSEG-BWART,
           G_SOBKZ TYPE MSEG-SOBKZ,
           G_BUDAT TYPE MKPF-BUDAT,
           G_USNAM TYPE MKPF-USNAM,
           G_VGART TYPE MKPF-VGART,
           G_XBLNR TYPE MKPF-XBLNR.
    *& SELECTION SCREEN EVENT                                              *
    *SELECT OPTIONS EVENTS FOR ITEM DETAILS
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    SELECT-OPTIONS: S_MATNR FOR G_MATNR,
                    S_WERKS FOR G_WERKS,
                    S_LGORT FOR G_LGORT,
                    S_CHARG FOR G_CHARG,
                    S_LIFNR FOR G_LIFNR,
                    S_KUNNR FOR G_KUNNR,
                    S_BWART FOR G_BWART,
                    S_SOBKZ FOR G_SOBKZ.
    SELECTION-SCREEN END OF BLOCK B1.
    *SELECT OPTIONS EVENTS FOR HEADER DETAILS
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
    SELECT-OPTIONS: S_BUDAT FOR G_BUDAT,
                    S_USNAM FOR G_USNAM,
                    S_VGART FOR G_VGART,
                    S_XBLNR FOR G_XBLNR.
    SELECTION-SCREEN END OF BLOCK B2.
    *&INITIALIZATION EVENTS                                                *
    INITIALIZATION.
      CLEAR: W_MKPF_MSEG,
             W_MARA,
             W_MAKT,
             W_T156T,
             W_SER03,
             W_OBJK,
             W_T001W,
             W_OUTPUT.
      REFRESH: T_MKPF_MSEG,
               T_MARA,
               T_MAKT,
               T_T156T,
               T_SER03,
               T_OBJK,
               T_T001W,
               T_OUTPUT.
    *&  At Selection screen Event
    AT SELECTION-SCREEN.
      PERFORM SUB_VALID_MATNR.
      PERFORM SUB_VALID_WERKS.
      PERFORM SUB_VALID_LGORT.
      PERFORM SUB_VALID_CHARG.
      PERFORM SUB_VALID_LIFNR.
      PERFORM SUB_VALID_KUNNR.
      PERFORM SUB_VALID_BWART.
      PERFORM SUB_VALID_SOBKZ.
      PERFORM SUB_VALID_BUDAT.
      PERFORM SUB_VALID_USNAM.
      PERFORM SUB_VALID_VGART.
      PERFORM SUB_VALID_XBLNR.
    *&  Start of selection event.
    START-OF-SELECTION.
      PERFORM SUB_GET_MKPF_MSEG.
      PERFORM SUB_GET_MARA.
      PERFORM SUB_GET_MAKT.
      PERFORM SUB_GET_T156T.
      PERFORM SUB_GET_SER03.
      PERFORM SUB_GET_T001W.
      PERFORM SUB_BSLIST_DISP.
    *&      Form  SUB_VALID_MATNR
    *VALIDATION FOR MATERIAL NUM
    FORM SUB_VALID_MATNR .
      DATA : L_MATNR TYPE MATNR.
      SELECT SINGLE MATNR
             FROM MARA
             INTO L_MATNR
             WHERE MATNR IN S_MATNR.
      IF SY-SUBRC <> 0.
       MESSAGE E001.
      ENDIF.
    ENDFORM.                    " SUB_VALID_MATNR
    *&      Form  SUB_VALID_WERKS
          text
    FORM SUB_VALID_WERKS .
      DATA L_WERKS TYPE WERKS_D.
      SELECT SINGLE WERKS
             FROM T001W
             INTO L_WERKS
             WHERE WERKS IN S_WERKS.
      IF SY-SUBRC <> 0.
        MESSAGE E002.
      ENDIF.
    ENDFORM.                    " SUB_VALID_WERKS
    *&      Form  SUB_VALID_LGORT
          text
    FORM SUB_VALID_LGORT .
      DATA L_LGORT TYPE LGORT_D.
      SELECT SINGLE LGORT
             FROM T001L
             INTO L_LGORT
             WHERE LGORT IN S_LGORT.
      IF SY-SUBRC <> 0.
       MESSAGE E003.
      ENDIF.
    ENDFORM.                    " SUB_VALID_LGORT
    *&      Form  SUB_VALID_CHARG
          text
    FORM SUB_VALID_CHARG .
      DATA L_CHARG TYPE CHARG_D.
      SELECT SINGLE CHARG
             FROM MCHA
             INTO L_CHARG
             WHERE CHARG IN S_CHARG.
      IF SY-SUBRC <> 0.
       MESSAGE E004.
      ENDIF.
    ENDFORM.                    " SUB_VALID_CHARG
    *&      Form  SUB_VALID_LIFNR
          text
    FORM SUB_VALID_LIFNR .
      DATA L_LIFNR TYPE LIFNR.
      SELECT SINGLE LIFNR
             FROM LFA1
             INTO L_LIFNR
             WHERE LIFNR IN S_LIFNR.
      IF SY-SUBRC <> 0.
       MESSAGE E005.
      ENDIF.
    ENDFORM.                    " SUB_VALID_LIFNR
    *&      Form  SUB_VALID_KUNNR
          text
    FORM SUB_VALID_KUNNR .
      DATA L_KUNNR TYPE KUNNR.
      SELECT SINGLE KUNNR
             FROM KNA1
             INTO L_KUNNR
             WHERE KUNNR IN S_KUNNR.
      IF SY-SUBRC <> 0.
       MESSAGE E006.
      ENDIF.
    ENDFORM.                    " SUB_VALID_KUNNR
    *&      Form  SUB_VALID_BWART
          text
    FORM SUB_VALID_BWART .
      DATA L_BWART TYPE BWART.
      SELECT SINGLE BWART
             FROM T156
             INTO L_BWART
             WHERE BWART IN S_BWART.
      IF SY-SUBRC <> 0.
       MESSAGE E007.
      ENDIF.
    ENDFORM.                    " SUB_VALID_BWART
    *&      Form  SUB_VALID_SOBKZ
          text
    FORM SUB_VALID_SOBKZ .
    DATA L_SOBKZ TYPE SOBKZ.
    SELECT SINGLE SOBKZ
           FROM T148
           INTO L_SOBKZ
           WHERE SOBKZ IN S_SOBKZ.
    IF SY-SUBRC <> 0.
    MESSAGE E008.
    ENDIF.
    ENDFORM.                    " SUB_VALID_SOBKZ
    *&      Form  SUB_VALID_BUDAT
          text
    FORM SUB_VALID_BUDAT .
      DATA L_BUDAT TYPE BUDAT.
      SELECT SINGLE BUDAT
             FROM MKPF
             INTO L_BUDAT
             WHERE BUDAT IN S_BUDAT.
      IF SY-SUBRC <> 0.
       MESSAGE E009.
      ENDIF.
    ENDFORM.                    " SUB_VALID_BUDAT
    *&      Form  SUB_VALID_USNAM
          text
    FORM SUB_VALID_USNAM .
      DATA L_USNAM TYPE USNAM.
      SELECT SINGLE USNAM
             FROM MKPF
             INTO L_USNAM
             WHERE USNAM IN S_USNAM.
      IF SY-SUBRC <> 0.
       MESSAGE E010.
      ENDIF.
    ENDFORM.                    " SUB_VALID_USNAM
    *&      Form  SUB_VALID_VGART
          text
    FORM SUB_VALID_VGART .
      DATA L_VGART TYPE VGART.
      SELECT SINGLE VGART
             FROM MKPF
             INTO L_VGART
             WHERE VGART IN S_VGART.
      IF SY-SUBRC <> 0.
       MESSAGE E011.
      ENDIF.
    ENDFORM.                    " SUB_VALID_VGART
    *&      Form  SUB_VALID_XBLNR
          text
    FORM SUB_VALID_XBLNR .
      DATA L_XBLNR TYPE XBLNR.
      SELECT SINGLE XBLNR
             FROM MKPF
             INTO L_XBLNR
             WHERE XBLNR IN S_XBLNR.
      IF SY-SUBRC <> 0.
        MESSAGE E012.
      ENDIF.
    ENDFORM.                    " SUB_VALID_XBLNR
    *&      Form  SUB_GET_MKPF_MSEG
          text
    FORM SUB_GET_MKPF_MSEG .
      REFRESH T_MKPF_MSEG.
      SELECT KMBLNR KMJAHR K~VGART
             KBLART KBUDAT K~USNAM
             K~XBLNR
             SMATNR SWERKS S~LGORT
             SCHARG SLIFNR S~KUNNR
             SSOBKZ SBWART S~ZEILE
             SERFMG SERFME
         INTO TABLE T_MKPF_MSEG
         FROM MKPF AS K INNER JOIN MSEG AS S
           ON KMBLNR = SMBLNR AND KMJAHR = SMJAHR
        WHERE    K~VGART IN S_VGART
             AND K~BUDAT IN S_BUDAT
             AND K~USNAM IN S_USNAM
             AND K~XBLNR IN S_XBLNR
             AND S~MATNR IN S_MATNR
             AND S~WERKS IN S_WERKS
             AND S~LGORT IN S_LGORT
             AND S~CHARG IN S_CHARG
             AND S~SOBKZ IN S_SOBKZ
             AND S~LIFNR IN S_LIFNR
             AND S~KUNNR IN S_KUNNR.
    ENDFORM.                    " SUB_GET_MKPF_MSEG
    *&      Form  SUB_GET_MARA
          text
    FORM SUB_GET_MARA .
      IF T_MKPF_MSEG IS NOT INITIAL.
        SORT T_MKPF_MSEG BY MATNR.
        REFRESH T_MARA.
      SELECT MATNR
             BISMT
             FROM MARA
             INTO TABLE T_MARA
             FOR ALL ENTRIES IN T_MKPF_MSEG
             WHERE MATNR = T_MKPF_MSEG-MATNR.
    ENDIF.
    ENDFORM.                    " SUB_GET_MARA
    *&      Form  SUB_GET_MAKT
          text
    FORM SUB_GET_MAKT .
    REFRESH T_MAKT.
      SELECT MATNR
             SPRAS
             MAKTX
             FROM MAKT
             INTO TABLE T_MAKT
             FOR ALL ENTRIES IN T_MKPF_MSEG
             WHERE SPRAS = SY-LANGU AND  MATNR = T_MKPF_MSEG-MATNR.
    ENDFORM.                    " SUB_GET_MAKT
    *&      Form  SUB_GET_T156T
          text
    FORM SUB_GET_T156T .
      SELECT BWART
             BTEXT
             SPRAS
             FROM T156T
             INTO TABLE T_T156T
             FOR ALL ENTRIES IN T_MKPF_MSEG
             WHERE SPRAS = SY-LANGU AND BWART = T_MKPF_MSEG-BWART.
    ENDFORM.                    " SUB_GET_T156T
    *&      Form  SUB_GET_SER03
          text
    FORM SUB_GET_SER03 .
      SELECT MBLNR
             MJAHR
             ZEILE
             OBKNR
             FROM SER03
             INTO TABLE T_SER03
             FOR ALL ENTRIES IN T_MKPF_MSEG
             WHERE MBLNR = T_MKPF_MSEG-MBLNR
             AND MJAHR = T_MKPF_MSEG-MJAHR
             AND ZEILE = T_MKPF_MSEG-ZEILE.
    IF T_SER03 IS NOT INITIAL.
      SELECT OBKNR
             OBZAE
             SERNR
             FROM OBJK
             INTO CORRESPONDING FIELDS OF TABLE T_OBJK
             FOR ALL ENTRIES IN T_SER03
             WHERE OBKNR = T_SER03-OBKNR.
    ENDIF.
    ENDFORM.                    " SUB_GET_SER03
    *&      Form  SUB_GET_T001W
          text
    FORM SUB_GET_T001W .
      SELECT WERKS
             NAME1
             FROM T001W
             INTO TABLE T_T001W
             FOR ALL ENTRIES IN T_MKPF_MSEG
             WHERE WERKS = T_MKPF_MSEG-WERKS.
    ENDFORM.                    " SUB_GET_T001W
    *&      Form  SUB_BSLIST_DISP
    FOR DISPLAY OUT
    FORM SUB_BSLIST_DISP .
    REFRESH T_OUTPUT.
      CLEAR W_MKPF_MSEG.
      SORT T_MKPF_MSEG BY MBLNR MJAHR ZEILE MATNR.
      LOOP AT T_MKPF_MSEG INTO W_MKPF_MSEG.
        W_OUTPUT-MBLNR = W_MKPF_MSEG-MBLNR .
        W_OUTPUT-MJAHR = W_MKPF_MSEG-MJAHR.
        W_OUTPUT-VGART = W_MKPF_MSEG-VGART.
        W_OUTPUT-BLART = W_MKPF_MSEG-BLART.
        W_OUTPUT-BUDAT = W_MKPF_MSEG-BUDAT.
        W_OUTPUT-USNAM = W_MKPF_MSEG-USNAM.
        W_OUTPUT-XBLNR = W_MKPF_MSEG-XBLNR.
        W_OUTPUT-ZEILE = W_MKPF_MSEG-ZEILE.
        W_OUTPUT-BWART = W_MKPF_MSEG-BWART.
        W_OUTPUT-MATNR = W_MKPF_MSEG-MATNR.
        W_OUTPUT-WERKS = W_MKPF_MSEG-WERKS.
        W_OUTPUT-LGORT = W_MKPF_MSEG-LGORT.
        W_OUTPUT-CHARG = W_MKPF_MSEG-CHARG.
        W_OUTPUT-SOBKZ = W_MKPF_MSEG-SOBKZ.
        W_OUTPUT-LIFNR = W_MKPF_MSEG-LIFNR.
        W_OUTPUT-KUNNR = W_MKPF_MSEG-KUNNR.
        W_OUTPUT-ERFMG = W_MKPF_MSEG-ERFMG.
        W_OUTPUT-ERFME = W_MKPF_MSEG-ERFME.
        CLEAR W_MARA.
        READ TABLE T_MARA INTO W_MARA WITH KEY MATNR = W_OUTPUT-MATNR.
        IF SY-SUBRC = 0.
          W_OUTPUT-BISMT = W_MARA-BISMT.
        ENDIF.
        CLEAR W_MAKT.
        READ TABLE T_MAKT INTO W_MAKT WITH KEY MATNR = W_OUTPUT-MATNR .
        IF SY-SUBRC = 0.
          W_OUTPUT-MAKTX = W_MAKT-MAKTX.
        ENDIF.
        CLEAR W_T156T.
        READ TABLE T_T156T INTO W_T156T WITH KEY  BWART = W_OUTPUT-BWART  .
        IF SY-SUBRC = 0.
          W_OUTPUT-BTEXT = W_T156T-BTEXT.
        ENDIF.
        CLEAR W_T001W.
        READ TABLE T_T001W INTO W_T001W WITH KEY WERKS = W_MKPF_MSEG-WERKS.
        IF SY-SUBRC = 0.
          W_OUTPUT-NAME1 = W_T001W-NAME1.
        ENDIF.
        CLEAR W_SER03.
        READ TABLE T_SER03 INTO W_SER03 WITH KEY MBLNR = W_OUTPUT-MBLNR
                                                  MJAHR = W_OUTPUT-MJAHR
                                                  ZEILE = W_OUTPUT-ZEILE.
        IF SY-SUBRC = 0.
          W_OUTPUT-OBKNR = W_SER03-OBKNR.
        ENDIF.
        CLEAR W_OBJK.
        READ TABLE T_OBJK INTO W_OBJK WITH KEY OBKNR = W_OUTPUT-OBKNR.
        IF SY-SUBRC = 0.
        W_OUTPUT-SERNR = W_OBJK-SERNR .
        ENDIF.
        APPEND W_OUTPUT TO T_OUTPUT.
        CLEAR W_OUTPUT.
        ENDLOOP.
        PERFORM SUB_DISPLAY.
    ENDFORM.
    *&      Form  SUB_DISPLAY
    HIERARICAL DISPLAY
    FORM SUB_DISPLAY .
    SORT T_OUTPUT BY MATNR BISMT MAKTX WERKS NAME1 LGORT BWART MBLNR CHARG SERNR ZEILE BUDAT ERFMG ERFME BTEXT.
    CLEAR W_OUTPUT.
    LOOP AT T_OUTPUT INTO W_OUTPUT.
    AT NEW NAME1.
    WRITE:/ W_OUTPUT-MATNR,
            W_OUTPUT-BISMT,
            W_OUTPUT-MAKTX,
            W_OUTPUT-WERKS,
            W_OUTPUT-NAME1.
    ENDAT.
    AT NEW BTEXT.
    WRITE:/ W_OUTPUT-LGORT,
            W_OUTPUT-BWART,
            W_OUTPUT-MBLNR,
            W_OUTPUT-CHARG,
            W_OUTPUT-SERNR,
            W_OUTPUT-ZEILE,
            W_OUTPUT-BUDAT,
            W_OUTPUT-ERFMG,
            W_OUTPUT-ERFME,
            W_OUTPUT-BTEXT.
    ENDAT.
    CLEAR W_OUTPUT.
    ENDLOOP.
    REFRESH T_OUTPUT.
    ENDFORM.                    " SUB_DISPLAY

  • How to use IT_special_groups in ALV Grid ?

    Hi Abapers,
    Am new to ALv's
    am passing almost all parameters to ALV_GRID FM..!
    i dont no how to use of options Groups , Filters and I_sel_hide .
    event i find an Demo example related to Groups ..
    but while displaying the out put i didnt find any Changes ?
    could any one give an Example with using GROUPS , Filters and SEL_INFO ?
    Pls help me out to resolve this problem ..!
    Thanks & Regrds
    Rajeshk

    Hi,
    you can group your ALV columns into various groups using field SP_GROUP in field catalog. You assign name to these groups in the table IT_SPECIAL_GROUPS. User can restrict column selection to one of these groups (using name from the table) on the current layout window. More info can be found in [SAP documentation|http://help.sap.com/saphelp_nw04/helpdata/en/a2/64f7a2ee4f11d2b484006094192fe3/frameset.htm]
    Probably as you know you can filter selected records in ALV (icon with funnel). You can use table IT_FILTER to set up this filter.
    I am not sure about I_SEL_HIDE but as far as I remember ALV can display selection criteria from report which call ALV FM. So I assume that you can use this table to control displaying of them.
    BTW there is a really nice [reference for ALV|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907?overridelayout=true].
    Cheers

  • At New in OOABAP Report

    Hi,
    Could anyone post solution for the given below issue.
    I have to handle control break command 'AT NEW' in ALV Reports using Global Classes(OOABAP), If possible with a small sample code which is more relative.

    Read first this documentation [ALV Grid Control (BC-SRV-ALE)|http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf] and then elaborate a little more on your actual requirement.
    Also perform some [search at sdn|https://www.sdn.sap.com/irj/scn/advancedsearch?cat=sdn_all&query=%22atNEW%22OO+ALV&adv=false&sortby=cm_rnd_rankvalue#] and please don't post too many threads.
    Regards

  • Doing subtotal in ALV manually

    Hi since in alv when calculation % the summing up is wrong
    i did the calculation manually buy inserting lines.
    but now all properties of ALV is gone.  i am aware of that but still i want to arrange the display to may it same as AVL would do it.
    since i am new to ALV can u plzz tell me how to
    color a cell in alv?
    make the value in bold formal?
    thinker the cell border?

    Hi,
    <b>Coloring a Cell in ALV:</b>
    The structure that should be included must be of type “LVC_T_SCOL”. If you want to color the entire row, this inner table should contain only one row with field “fname” is set to space, some color value at field “col”, “0” or “1” at fields “int” (intensified) and “inv” (inverse). If you want to color individual cells, then for each cell column, append a line to this inner table which also contains the column name at field “fname”. It is obvious that you can color an entire column by filling this inner table with a row for that column for each row in the list data table. . Again key field coloring will override your settings. That’s why, we have another field in this inner table called “nokeycol”. For each field represented in the inner table, set this field to ‘X’ to prevent overriding of key color settings. In this procedure, again we must tell the control the name of the inner table containing color data. The field “CTAB_FNAME” of the layout structure is used for this purpose.
    Code Part 14 – Adding inner table that will contain cell color data *--- Internal table holding list data
    DATA BEGIN OF gt_list OCCURS 0 .
    INCLUDE STRUCTURE SFLIGHT .
    DATA rowcolor(4) TYPE c .
    DATA cellcolors TYPE lvc_t_scol .
    DATA END OF gt_list .
    Code Part 15 – A sample code to make the cell at row 5 and column ‘SEATSOCC’ colored
    DATA ls_cellcolor TYPE lvc_s_scol .
    READ TABLE gt_list INDEX 5 .
    ls_cellcolor-fname = 'SEATSOCC' .
    ls_cellcolor-color-col = '7' .
    ls_cellcolor-color-int = '1' .
    APPEND ls_cellcolor TO gt_list-cellcolors .
    MODIFY gt_list INDEX 5 .
    Check this
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    <b>Value in Bold Format:</b>
    You need to have a nested internal table as a part of your DATA table which will be of type LVC_T_STYL.
    Fill that table for the field that you want to be BOLD, fill the row in the STYLE table and append it to the MAIN table. You might have to use a combination of the styles provided as attributes in the class CL_GUI_ALV_GRID.
    If you want to make entire column bold you can set the style in field catalog to
    ls_fieldcat-style = '0000016'
    this makes the entire column bold...
    Just look at the where used list for LVC_T_STYL, you will get multiple programs.
    It is used in the following programs.
    BCALV_EDIT_02
    BCALV_EDIT_04
    BCALV_GRID_EDIT
    BCALV_TEST_FULLSCREEN
    BCALV_TEST_GRID
    BCALV_TEST_GRID_DRAG_DROP
    BCALV_TEST_GRID_EDITABLE
    BCALV_TEST_GRID_FIELDS
    BCALV_TEST_GRID_INDEX
    BCALV_TEST_GRID_PRINT
    BCALV_TEST_GRID_TOOLBAR
    BCALV_VERIFY_DATATYPES
    Regards,
    Padmam.

Maybe you are looking for