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

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.

  • 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

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

  • 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

  • My IPad is Disabled and can't get it on.

    My IPad is Disabled and says connect to Itunes. I don't know how to get it working again.

  • Function Module Extractor

    Hi All, There is this function module which is used to extract values into BW. "FCIW_HIERARCHY_TRANSFER_CSIT" I guess this is a standard SAP FM. I want to know if there are table names mentioned for extracting the Nodes of the hierarchies, in this co

  • Is it possible to use the JS coding in webdynpro java application!!!

    Hi Experts, Is it possible to use the JS coding in webdynpro java application by any means? If yes, kindly suggest the procedure or any pointers for the same. Thanks in advance. Regards, Anurag

  • In Develop Mode, how do I reduce glare?

    I have a photo of a glass plate that has too much light glare. How do I reduce it? Can I polarize filter it somehow?

  • IE10 PDF ISSUES

    Visitors using IE10 and Windows 7 can't download pdf brochure from our web site.  Visitors using other browsers are able to download it.  Can the file be modified to enable IE10 users to download it?