Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV

Former Member
0 Likes
628

Hi,

Can anybody send me simple ALV program which consists of minimum 3 database table.

Thanks,

Bala.

5 REPLIES 5
Read only

Former Member
0 Likes
596

Hi Balakrishna,




*&---------------------------------------------------------------------*
*& 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,
            i_variant like disvariant,
            i_variant1 like disvariant.
data :            w_save(1) type c,
            w_default(1) type c,
            w_exit(1) type c.

** 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,
  chk(1) type c,
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 modif id z1,
             rb2 radiobutton group g1 modif id z2,
             rb3 radiobutton group g1 modif id z3.
selection-screen end of block blk.

* Variant for ALV display
selection-screen begin of block 0 with frame title text-000.
parameters: p_varnt like disvariant-variant.
selection-screen end of block 0.

at selection-screen output.
  perform modify_screen.

at selection-screen on value-request for p_varnt.
  perform f4_for_variant.

start-of-selection.
  perform get_details.
  perform get_alv.

*&---------------------------------------------------------------------*
*&      Form  modify_screen
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form modify_screen .

*  IF RB1 = 'X'.
*    LOOP AT SCREEN.
*      IF SCREEN-GROUP1 = 'Z1' .
*        SCREEN-INVISIBLE = 1.
*        SCREEN-ACTIVE = 0.
*      ELSE.
*        SCREEN-INVISIBLE = 0.
*        SCREEN-ACTIVE = 1.
*      ENDIF.
*      MODIFY SCREEN.
*    ENDLOOP.
*  ENDIF.

endform.                    " modify_screen

*&---------------------------------------------------------------------*
*&      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
*           chk
      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.

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'.
    wa_fieldcat-do_sum = 'X'.
    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'.
    wa_fieldcat-edit = '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               = sy-repid
       i_internal_tabname           = 'IT_EKKO'
*     I_STRUCTURE_NAME             = I_STRUCTURE_NAME
*     I_CLIENT_NEVER_DISPLAY       = 'X'
       i_inclname                   = sy-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               = sy-repid
       i_internal_tabname           = 'IT_EKPO'
*   I_STRUCTURE_NAME             = I_STRUCTURE_NAME
*   I_CLIENT_NEVER_DISPLAY       = 'X'
       i_inclname                   = sy-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.

    read table it_event into wa_event with key name = 'USER_COMMAND'.
    if sy-subrc = 0.
      wa_event-form = 'IT_USER_COMMAND'.
      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.
  data : v_concate(50) type c.
  data : v_space(10) type c.
*Concatenate 'vikranth' 'rajesh' 'date:' 'khimavath' into wa_comment-info separated by space .
*append wa_comment to it_comment.
*clear wa_comment.
*concatenate 'srikanth' 'khimavath' into wa_comment-info.
*append wa_comment to it_comment.
*clear wa_comment.
*concatenate 'prashanth' 'khimavath' into wa_comment-info.
*append wa_comment to it_comment.
*clear wa_comment.


  concatenate 'VIKRANTH' 'rajesh' into v_concate.
  wa_comment-typ = 'S'.
  wa_comment-key = 'USER :'.
  wa_comment-info = v_concate.
  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
  wa_layout-totals_text = 'Total'.
  wa_layout-subtotals_text = 'SUB TOTAL'.
  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                            = w_save
   is_variant                        = i_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
*&---------------------------------------------------------------------*
*&      Form  f4_for_variant
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form f4_for_variant .

call function 'REUSE_ALV_VARIANT_F4'
  exporting
    is_variant                = i_variant
*   I_TABNAME_HEADER          = I_TABNAME_HEADER
*   I_TABNAME_ITEM            = I_TABNAME_ITEM
*   IT_DEFAULT_FIELDCAT       = IT_DEFAULT_FIELDCAT
   i_save                    = w_save
*   I_DISPLAY_VIA_GRID        = ' '
 importing
   e_exit                    = w_exit
   es_variant                = i_variant1
 exceptions
   not_found                 = 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.


endform.                    " f4_for_variant

Thanks

Vikranth khimavath

Read only

Former Member
0 Likes
596

Hi,

see code,

REPORT  z_alv_so  MESSAGE-ID z7new .

************************************************************************
*TABLE DECLARATION*
************************************************************************
TABLES: vbak ,             "Sales Document: Header Data
        vbap ,             "Sales Document: Item Data
        makt ,             "Material Descriptions
        lips .             "SD document: Delivery: Item data
************************************************************************
*DECLARATION OF TYPE-POOL*
*THIS TYPE-POOL CONTAINS THE EVENTS,
************************************************************************
TYPE-POOLS : slis.
************************************************************************
*DECLARATION OF EVENTS*
************************************************************************
DATA: i_event TYPE slis_t_event.
DATA: t_event TYPE slis_alv_event.
************************************************************************
*DECLARATION OF LIST HEADER*
************************************************************************
DATA: i_listheader TYPE slis_t_listheader.
************************************************************************
*DECLARATION OF FIELD CATALOG FOR SCREEN 1*
************************************************************************
DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
************************************************************************
*DECLARATION OF FIELD CATALOG FOR SCREEN 2*
************************************************************************
DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.
************************************************************************
*DECLARATION OF FIELD LAYOUT*
************************************************************************
DATA: i_layout TYPE slis_layout_alv.
************************************************************************
*SORTING OF OUTPUT*
************************************************************************
DATA: i_sort TYPE slis_t_sortinfo_alv.
************************************************************************
*DATA DECLARATION
************************************************************************
DATA: v_auart TYPE tvak-auart,
      v_vkorg TYPE tvko-vkorg,
      v_kunnr TYPE kna1-kunnr,
      v_matnr TYPE mara-matnr ,
      v_spart TYPE tvta-spart .

TYPES: BEGIN OF it_so ,

       vbeln TYPE vbeln_va ,          "SALES ORDER NO.
       auart TYPE auart ,             "SALES DOC. TYPE
       vkorg TYPE vkorg ,             "SALES ORG.
       spart TYPE spart ,             "DIVISION
       kunnr TYPE kunag ,             "SOLD TO PARTY
       posnr TYPE posnr_va ,          "SALES DOC. ITEM
       matnr TYPE matnr ,             "MATERIAL NO
       maktx TYPE maktx ,             "DESCRIPTION
       kwmeng TYPE kwmeng ,           "QUANTITY
       vrkme TYPE vrkme ,             "SALES UNIT
       line_color(4) TYPE c ,

       END OF it_so .

TYPES: BEGIN OF it_del ,

       vbeln TYPE vbeln_vl ,         "SALES ORDER NO.
       posnr TYPE posnr_vl ,         "SALES DOC. ITEM
       matnr TYPE matnr ,            "MATERIAL NO
       werks TYPE werks_d ,          "PLANT
       lgort TYPE lgort_d ,          "STORAGE LOCATION
       charg TYPE charg_d ,          "BATCH NO.
       lfimg TYPE lfimg ,            "ACTUAL DELIVERY QTY.
       vrkme TYPE vrkme ,            "SALES UNIT

       END OF it_del .

TYPES: BEGIN OF type_vbfa ,

      vbelv TYPE vbeln_von , "Preceding sales and distribution document
      posnv TYPE posnr_von , "Preceding item of an SD document
      vbeln TYPE vbeln_nach, "Subsequent sales and distribution document
      posnn TYPE posnr_nach, "Document category of subsequent document
      vbtyp_n TYPE vbtyp_n ,

      END OF type_vbfa .

DATA: it_so1 TYPE STANDARD TABLE OF it_so ,
      it_del1 TYPE STANDARD TABLE OF it_del ,
      it_vbfa TYPE STANDARD TABLE OF type_vbfa,
      it_del_ful TYPE STANDARD TABLE OF it_del.

DATA: wa_so TYPE it_so ,
      wa_del TYPE it_del ,
      wa_vbfa TYPE type_vbfa,
      wa_it_del_ful TYPE it_del.

DATA:  i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.
DATA:  i_title_vbpa TYPE lvc_title VALUE
'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.


************************************************************************
*SELECTION SCREEN                                                      *
************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,
                s_auart FOR v_auart ,
                s_vkorg FOR v_vkorg ,
                s_spart FOR v_spart ,
                s_kunnr FOR v_kunnr ,
                s_matnr FOR v_matnr .
SELECTION-SCREEN END OF BLOCK blk1 .

************************************************************************
*AT SELECTION SCREEN                                                   *
************************************************************************
AT SELECTION-SCREEN.

  SELECT SINGLE vbeln
                 FROM vbak INTO vbak-vbeln
                 WHERE vbeln IN s_vbeln.

  IF sy-subrc <> 0.
    MESSAGE e202.
  ENDIF.
************************************************************************
*START OF SELECTION                                                    *
************************************************************************
START-OF-SELECTION .

  PERFORM data_select.
  PERFORM t_sort USING i_sort .
  PERFORM event_cat USING i_event .
  PERFORM fld_cat USING i_fldcat[] .
  PERFORM t_layout USING i_layout .
  PERFORM fld_cat2 USING i_fldcat2[] .
  PERFORM call_alv.
************************************************************************
* DATA SELECT                                                          *
************************************************************************

*&---------------------------------------------------------------------*
*&      Form  DATA_SELECT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM data_select .

  REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .
  BREAK-POINT.
  SELECT
        a~vbeln
        a~auart
        a~vkorg
        a~spart
        a~kunnr
        b~posnr
        b~matnr
        c~maktx
        b~kwmeng
        b~vrkme
        INTO TABLE it_so1 FROM vbak AS a
              JOIN vbap AS b ON b~vbeln = a~vbeln
              JOIN makt AS c ON c~matnr = b~matnr
              AND c~spras = sy-langu
              WHERE a~vbeln IN s_vbeln .

************************************************************************
* COLURING DISPLAY                                                     *
************************************************************************

  DATA: ld_color(1) TYPE  c .
  LOOP AT it_so1 INTO wa_so.
* Populate color variable with colour properties
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
*           i.e. wa_ekko-line_color = 'C410'
    ld_color = ld_color + 1.

* Only 7 colours so need to reset color value
    IF ld_color = 8.
      ld_color = 1.
    ENDIF.
    CONCATENATE 'C' ld_color '10' INTO wa_so-line_color.
*  wa_ekko-line_color = 'C410'.
    MODIFY it_so1 FROM wa_so.
  ENDLOOP .

  IF sy-subrc = 0.

    SELECT vbelv
           posnv
           vbeln
           posnn
           vbtyp_n
           INTO TABLE it_vbfa
           FROM vbfa
           FOR ALL ENTRIES IN it_so1
           WHERE vbelv = it_so1-vbeln
           AND   posnn = it_so1-posnr
           AND vbtyp_n ='J' .

    IF sy-subrc = 0.

      SELECT vbeln
             posnr
             matnr
             werks
             lgort
             charg
             lfimg
             vrkme
             FROM lips INTO TABLE it_del_ful
             FOR ALL ENTRIES IN it_vbfa
             WHERE vbeln = it_vbfa-vbeln
             AND   posnr = it_vbfa-posnn.

    ENDIF.

  ENDIF.

ENDFORM.                    " DATA_SELECT

***********************************************************************
**************** EVENT CATALOG ****************************************
***********************************************************************

*&---------------------------------------------------------------------*
*&      Form  EVENT_CAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_EVENT  text
*----------------------------------------------------------------------*

FORM event_cat  USING    p_i_event TYPE slis_t_event .

  REFRESH p_i_event .

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
*   I_LIST_TYPE           = 0
   IMPORTING
      et_events             = p_i_event
* EXCEPTIONS
*   LIST_TYPE_WRONG       = 1
*   OTHERS                = 2
            .
*  IF sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

  READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.

  IF sy-subrc = 0.

    MOVE 'TOP_OF_PAGE' TO t_event-form.
    MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.

  ENDIF.

  CLEAR t_event .

ENDFORM.                    " EVENT_CAT


**********************************************************************
**********FORM FOR EVENT TOP_OF_PAGE**********************************
**********************************************************************

FORM top_of_page .

  REFRESH i_listheader.
  DATA: t_header TYPE slis_listheader.
  DATA: v_text(50).

  WRITE sy-datum TO v_text.
  CLEAR t_header.
  t_header-typ = 'S'.
  t_header-key = 'Date'.
  t_header-info = v_text.
  APPEND t_header TO i_listheader.

  CLEAR t_header.
  CLEAR v_text.

*  WRITE:  'SALES ORDER REPORT  ' TO v_text .

*  t_header-typ = 'S'.
*  t_header-key = 'TITLE'.
*  t_header-info = v_text.
*  APPEND t_header TO i_listheader.


  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = i_listheader.
*      I_LOGO             = 'ALV_BACKGROUND'.
*   I_END_OF_LIST_GRID       =

ENDFORM.                    "TOP_OF_PAGE

************************************************************************
********  FIRST ALV GRID DISPLAY ***************************************
************************************************************************

*&---------------------------------------------------------------------*
*&      Form  CALL_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

FORM call_alv .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING
     i_callback_program                = sy-repid
*    I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
     i_callback_user_command           = 'USER_COMMAND1'
     i_callback_top_of_page            = 'TOP_OF_PAGE'
     I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
     i_grid_title                      = i_title_vbfa
     is_layout                         = i_layout
     it_fieldcat                       = i_fldcat[]
     it_sort                           = i_sort
     it_events                         = i_event
    TABLES
     t_outtab                          = it_so1
            .
*  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.                    " CALL_ALV
***********************************************************************
************** FIRST FIELDCATALOG *************************************
***********************************************************************
*&---------------------------------------------------------------------*
*&      Form  FLD_CAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_FLDCAT[]  text
*----------------------------------------------------------------------*

FORM fld_cat  USING    p_i_fldcat TYPE slis_t_fieldcat_alv.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'."TABLE NAME
  i_fldcat-seltext_m   = 'SALES ORDER NO.'.
  i_fldcat-col_pos     = 1.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.

  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'."TABLE NAME
  i_fldcat-seltext_m   = 'SALES DOC. TYPE'.
  i_fldcat-col_pos     = 2.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.

  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'SALES ORG.'.
  i_fldcat-col_pos     = 3.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 12.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'DIVISION'.
  i_fldcat-col_pos     = 4.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 10.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'SOLD TO PARTY'.
  i_fldcat-col_pos     = 5.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'SALES DOC. ITEM'.
  i_fldcat-col_pos     = 6.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 17.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.

  i_fldcat-fieldname   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'MATERIAL NO.'.
  i_fldcat-col_pos     = 7.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'DESCRIPTION'.
  i_fldcat-col_pos     = 8.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'QUANTITY'.
  i_fldcat-col_pos     = 9.        " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 15.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-do_sum    = 'X'.        " For doing "SUM"
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

  CLEAR i_fldcat.
  i_fldcat-fieldname   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat-tabname     = 'IT_SO1'.
  i_fldcat-seltext_m   = 'SALES UNIT'.
  i_fldcat-col_pos     = 10.       " POSITION OF THE COLUMN.
  i_fldcat-outputlen   = 10.       " SET THE OUTPUT LENGTH.
  i_fldcat-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat-just(1)     = 'C'.
  APPEND i_fldcat.

ENDFORM.                    " FLD_CAT

***********************************************************************
****************** ALV SORTING  ***************************************
***********************************************************************
*&---------------------------------------------------------------------*
*&      Form  SORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_SORT  text
*----------------------------------------------------------------------*

FORM t_sort  USING    p_i_sort TYPE slis_t_sortinfo_alv .

  DATA: i_sort TYPE slis_sortinfo_alv .
  REFRESH p_i_sort .

  CLEAR i_sort.
  i_sort-spos = 1.
  i_sort-tabname = 'IT_SO1'.
  i_sort-fieldname = 'VBELN'.
  i_sort-up = 'X'.
  i_sort-subtot = 'X'.
  i_sort-group = '*'.
  APPEND i_sort TO p_i_sort.

ENDFORM.                    " SORT

*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
*  SET PF-STATUS 'ZSTANDARD'.
*ENDFORM. "Set_pf_status

***********************************************************************
***********FORM FOR EVENT USER_COMMAND1********************************
***********************************************************************

FORM user_command1 USING r_ucomm LIKE sy-ucomm
                         rs_selfield TYPE slis_selfield.

*CASE R_UCOMM .
*    WHEN '&IC1' .
*
*    IF rs_selfield-FIELDNAME = 'VBELN' .
*
*    ENDIF .
*
* WHEN OTHERS .
*
* ENDCASE .

  CLEAR wa_so.

  REFRESH: it_del1 .

  IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
  rs_selfield-value IS NOT INITIAL.

    READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

    IF sy-subrc = 0.

      LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln
                                   AND   posnv = wa_so-posnr.
        READ TABLE it_del_ful INTO wa_it_del_ful
             WITH KEY vbeln = wa_vbfa-vbelv
                      posnr = wa_vbfa-posnn.

        IF sy-subrc = 0.

          CLEAR wa_del.
          MOVE wa_it_del_ful TO wa_del.
          APPEND wa_del TO it_del1.

        ENDIF.

      ENDLOOP.
    ENDIF.
  ENDIF.

*********************************************************************
********* SECOND ALV GRID DISPLAY ***********************************
*********************************************************************
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING
    i_callback_program                = sy-repid
*   I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
    i_callback_user_command           = 'USER_COMMAND2'
    i_callback_top_of_page            = 'TOP_OF_PAGE'
    I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
     i_grid_title                      = i_title_vbpa
    it_fieldcat                       = i_fldcat2[]
    it_sort                           = i_sort
    TABLES
    t_outtab                          = it_del_ful
            .
*  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 .                    "USER_COMMAND1
***********************************************************************
********** FORM FOR EVENT USER_COMMAND 2 ******************************
***********************************************************************

FORM user_command2 USING r_ucomm LIKE sy-ucomm
                         rs_selfield TYPE slis_selfield.

  CLEAR wa_so.

  REFRESH: it_del1 .

  IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
  rs_selfield-value IS NOT INITIAL.

    READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

*    IF SY-SUBRC = 0.
*
*       LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln
*                                    AND   posnv = WA_SO-posnr.
    READ TABLE it_del_ful INTO wa_it_del_ful
         WITH KEY vbeln = rs_selfield-value
                  posnr = wa_vbfa-posnn.

    IF rs_selfield-fieldname = 'VBELN'.

      SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .
      CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.

    ENDIF .

*       ENDLOOP.
*    ENDIF.
  ENDIF.
ENDFORM .                    "USER_COMMAND2

************************************************************************
********* SECOND FIELDCATALOG ******************************************
************************************************************************

*&---------------------------------------------------------------------*
*&      Form  FLD_CAT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_FLDCAT2[]  text
*----------------------------------------------------------------------*

FORM fld_cat2  USING    p_i_fldcat2 TYPE slis_t_fieldcat_alv .

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-tabname     = 'IT_DEL_FUL'."TABLE NAME
  i_fldcat2-seltext_m   = 'DELIVERY NO.'.
  i_fldcat2-col_pos     = 1.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-hotspot     = 'X'.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'DELIVERY ITEM'.
  i_fldcat2-col_pos     = 2.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'MATERIAL NO.'.
  i_fldcat2-col_pos     = 3.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'PLANT.'.
  i_fldcat2-col_pos     = 4.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'ST. LOCATION'.
  i_fldcat2-col_pos     = 5.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'BATCH NO.'.
  i_fldcat2-col_pos     = 6.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'ACT. DEL. QTY.'.
  i_fldcat2-col_pos     = 7.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

  CLEAR i_fldcat2.
  i_fldcat2-fieldname   = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
  i_fldcat2-seltext_m   = 'SALES UNIT.'.
  i_fldcat2-col_pos     = 8.        " POSITION OF THE COLUMN.
  i_fldcat2-outputlen   = 20.       " SET THE OUTPUT LENGTH.
  i_fldcat2-emphasize   = 'X'.      " COLOR OF THIS COLUMN.
  i_fldcat2-key         = 'X'.      " SO THAT THIS FIELD IS NOT
  "SCROLLABLE AND HIDDABLE.
  i_fldcat2-just(1)     = 'C'.
  APPEND i_fldcat2.

ENDFORM.                                                    " FLD_CAT2

************************************************************************
***************** ALV LAYOUT *******************************************
************************************************************************
*&---------------------------------------------------------------------*
*&      Form  LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_LAYOUT  text
*----------------------------------------------------------------------*

FORM t_layout  USING    p_i_layout TYPE slis_layout_alv .

  p_i_layout-zebra  = 'X'.
  p_i_layout-totals_text = 'GRAND TOTAL ='.
*  p_i_layout-CONFIRMATION_PROMPT = 'X'.
*  p_i_layout-DEF_STATUS  = ' '.
  p_i_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM.                    " LAYOUT

reward if useful.

Read only

p291102
Active Contributor
0 Likes
596

Hi,

REPORT YMS_EXCISE MESSAGE-ID E4 NO STANDARD PAGE HEADING LINE-SIZE 350. .

TABLES : J_1IEXCHDR, " header table

J_1IEXCDTL, " item table

J_1IPART2, " Excise Part II details

LFA1, " vendor master table

J_1IMOVEND, " vendor excise details table

MSEG, " Document Segment: Material

MKPF, " Header: Material Document

DD07T, " domain text table

T001W. " Plant and Branch Details

DATA : BEGIN OF IT_CHDR OCCURS 100,

DOCNO LIKE J_1IEXCHDR-DOCNO,

DOCYR LIKE J_1IEXCHDR-DOCYR,

EXNUM LIKE J_1IEXCHDR-EXNUM,

EXDAT LIKE J_1IEXCHDR-EXDAT,

WERKS LIKE J_1IEXCHDR-WERKS,

EXBED LIKE J_1IEXCHDR-EXBED,

EXCCD LIKE J_1IEXCHDR-EXCCD,

ECS LIKE J_1IEXCHDR-ECS,

END OF IT_CHDR.

DATA : BEGIN OF IT_CDTL OCCURS 100,

DOCYR LIKE J_1IEXCDTL-DOCYR,

DOCNO LIKE J_1IEXCDTL-DOCNO,

EXNUM LIKE J_1IEXCDTL-EXNUM,

EXDAT LIKE J_1IEXCDTL-EXDAT,

LIFNR LIKE J_1IEXCDTL-LIFNR,

MATNR LIKE J_1IEXCDTL-MATNR,

MAKTX LIKE J_1IEXCDTL-MAKTX,

CHAPID LIKE J_1IEXCDTL-CHAPID,

EXBAS LIKE J_1IEXCDTL-EXBAS,

EXBED LIKE J_1IEXCDTL-EXBED,

ECS LIKE J_1IEXCDTL-ECS,

MENGE LIKE J_1IEXCDTL-MENGE,

MEINS LIKE J_1IEXCDTL-MEINS,

RDOC2 LIKE J_1IEXCDTL-RDOC2,

END OF IT_CDTL.

DATA TEXT(10).

DATA : BEGIN OF IT_OUT OCCURS 0,

SERIALNO LIKE J_1IPART2-SERIALNO,

TEXT1 LIKE TEXT,

EXNUM LIKE J_1IEXCDTL-EXNUM,

EXDAT LIKE J_1IEXCDTL-EXDAT,

NAME LIKE LFA1-NAME1,

DDTEXT LIKE DD07T-DDTEXT,

EXCCD LIKE J_1IEXCHDR-EXCCD,

BUDAT LIKE MKPF-BUDAT,

EXBAS LIKE IT_CDTL-EXBAS,

EXBED LIKE IT_CDTL-EXBED,

ECS LIKE IT_CDTL-ECS,

MATNR LIKE IT_CDTL-MATNR,

MAKTX LIKE IT_CDTL-MAKTX,

CHAPID LIKE IT_CDTL-CHAPID,

MENGE LIKE IT_CDTL-MENGE,

MEINS LIKE IT_CDTL-MEINS,

DEL_IND(1),

END OF IT_OUT.

DATA IT_PART2 LIKE J_1IPART2 OCCURS 0 WITH HEADER LINE.

DATA S_NO(4) .

DATA DB_CNT LIKE SY-TABIX.

DATA EBELN_T LIKE MSEG-EBELN .

*----


TYPE-POOLS : SLIS.

DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.

DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

LS_FTCAT TYPE LVC_S_FCAT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

SORTCAT_LN LIKE LINE OF SORTCAT,

G_REPID LIKE SY-REPID,

G_BACK_GROUND(70), "like bapibds01-objkey,

GS_VARIANT LIKE DISVARIANT,

G_SAVE ,

GT_EVENTS TYPE SLIS_T_EVENT,

ALV_EVENT TYPE SLIS_ALV_EVENT,

EVENTCAT TYPE SLIS_T_EVENT,

EVENTCAT_LN LIKE LINE OF EVENTCAT,

LAYOUT_IN TYPE SLIS_LAYOUT_ALV,

LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.

CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE

'TOP_OF_PAGE',

GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE

'USER_COMMAND',

GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE

'BEFORE_OUTPUT'.

  • ALV_EVENT TYPE SLIS_ALV_EVENT,

*----


DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.

DATA REGTYP_1 LIKE J_1IPART2-REGTYP.

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.

PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.

SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.

PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',

R2 RADIOBUTTON GROUP GRP.

SELECTION-SCREEN END OF BLOCK B.

INITIALIZATION.

G_REPID = SY-REPID.

G_SAVE = 'A'.

  • PERFORM BUILD_EVENT USING GT_EVENTS[].

PERFORM ALV_EVENT_INIT.

AT SELECTION-SCREEN.

REFRESH LIST_HEADER.

PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.

START-OF-SELECTION.

  • PERFORM ALV_EVENT_INIT.

G_REPID = SY-REPID.

G_BACK_GROUND = ' ' .

IF R1 = 'X'.

CLEAR R2. CLEAR : REGTYP_1.

REGTYP_1 = 'A'.

  • set titlebar 'BALAJI' with DB_CNT.

ELSEIF R2 = 'X'.

CLEAR R1.CLEAR : REGTYP_1.

REGTYP_1 = 'C'.

  • set titlebar 'BALAJI1' with DB_CNT.

ENDIF.

SELECT * FROM J_1IPART2

INTO CORRESPONDING FIELDS OF TABLE IT_PART2

WHERE REGTYP = REGTYP_1 AND

TRNTYP = 'GRPO' AND

BUDAT IN BUDAT.

  • DOCYR = IT_CDTL-DOCYR AND

  • DOCNO = IT_CDTL-DOCNO.

LOOP AT IT_PART2.

SELECT SINGLE * FROM J_1IEXCHDR

INTO CORRESPONDING FIELDS OF IT_CHDR

WHERE TRNTYP = 'GRPO' AND

DOCYR = IT_PART2-DOCYR AND

DOCNO = IT_PART2-DOCNO AND

WERKS = WERKS AND

exdat IN BUDAT.

  • ORDER BY EXDAT.

IF SY-SUBRC = 0.

APPEND IT_CHDR.

ELSE.

CONTINUE.

ENDIF.

  • IF SY-SUBRC <> 0.

  • MESSAGE E084.

  • ENDIF.

ENDLOOP.

LOOP AT IT_CHDR.

SELECT * FROM J_1IEXCDTL

INTO CORRESPONDING FIELDS OF IT_CDTL

  • FOR ALL ENTRIES IN IT_CHDR

WHERE

TRNTYP = 'GRPO' AND

DOCNO = IT_CHDR-DOCNO AND

DOCYR = IT_CHDR-DOCYR AND

EXNUM = IT_CHDR-EXNUM AND

EXDAT = IT_CHDR-EXDAT AND

WERKS = IT_CHDR-WERKS.

IF SY-SUBRC = 0.

APPEND IT_CDTL.

ELSE.

CONTINUE.

ENDIF.

ENDSELECT.

ENDLOOP.

LOOP AT IT_CDTL.

CLEAR TEXT.

DB_CNT = DB_CNT + 1.

READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM.

READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .

IT_OUT-SERIALNO = IT_PART2-SERIALNO.

SELECT SINGLE NAME1 FROM LFA1

INTO IT_OUT-NAME

WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM LFA1

WHERE LIFNR = IT_CDTL-LIFNR.

IF LFA1-LAND1 EQ 'IN'.

TEXT = 'INVOICE'.

IT_OUT-TEXT1 = TEXT.

ELSE.

TEXT = 'BOE'.

IT_OUT-TEXT1 = TEXT.

ENDIF.

SELECT SINGLE * FROM J_1IMOVEND

WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM DD07T

  • INTO IT_OUT-DDTEXT

WHERE DOMNAME = 'J_1IVTYP' AND

DDLANGUAGE = 'EN' AND

DOMVALUE_L = J_1IMOVEND-J_1IVTYP.

IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'

OR

DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.

DD07T-DDTEXT = 'Dealer'.

ENDIF.

IT_OUT-DDTEXT = DD07T-DDTEXT.

  • ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable

*goods'.

  • DD07T-DDTEXT =

CLEAR EBELN_T.

SELECT SINGLE LFBNR FROM MSEG

INTO EBELN_T

WHERE MBLNR = IT_CDTL-RDOC2 .

SELECT SINGLE * FROM MSEG

WHERE BWART = '106' AND

LFBNR = EBELN_T ."and

  • ebeln = ebeln_t.

IF SY-SUBRC = 0.

IT_OUT-DEL_IND = 'X'.

ELSE.

IT_OUT-DEL_IND = ' '.

ENDIF.

SELECT SINGLE BUDAT FROM MKPF

INTO IT_OUT-BUDAT

WHERE MBLNR = EBELN_T ."MSEG-LFBNR.

IT_OUT-EXNUM = IT_CDTL-EXNUM.

IT_OUT-EXDAT = IT_CDTL-EXDAT.

IT_OUT-EXCCD = IT_CHDR-EXCCD.

IT_OUT-EXBAS = IT_CDTL-EXBAS.

IT_OUT-EXBED = IT_CDTL-EXBED.

IT_OUT-ECS = IT_CDTL-ECS.

IT_OUT-MATNR = IT_CDTL-MATNR.

IT_OUT-MAKTX = IT_CDTL-MAKTX.

IT_OUT-CHAPID = IT_CDTL-CHAPID.

IT_OUT-MENGE = IT_CDTL-MENGE.

IT_OUT-MEINS = IT_CDTL-MEINS.

APPEND IT_OUT.

  • EX_NO = IT_CDTL-EXNUM.

ENDLOOP.

*----


  • Title Portion

IF REGTYP_1 = 'A'.

SET TITLEBAR 'BALAJI' WITH DB_CNT.

ELSEIF REGTYP_1 = 'C'.

SET TITLEBAR 'BALAJI1' WITH DB_CNT.

ENDIF.

*----


AFIELD-COL_POS = 1.

AFIELD-FIELDNAME = 'SERIALNO'.

AFIELD-SELTEXT_L = 'INPUTS'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 2.

AFIELD-FIELDNAME = 'TEXT1'.

AFIELD-SELTEXT_L = 'TYPE OF DOC'.

AFIELD-JUST = 'L'.

AFIELD-DECIMALS_OUT = '0'.

AFIELD-NO_ZERO = 'X'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 3.

AFIELD-FIELDNAME = 'EXNUM'.

AFIELD-SELTEXT_L = 'DOC.NO'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 4.

AFIELD-FIELDNAME = 'EXDAT'.

AFIELD-SELTEXT_L = 'DOC.DATE'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 5.

AFIELD-FIELDNAME = 'NAME'.

AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.

AFIELD-NO_ZERO = 'X'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 6.

AFIELD-FIELDNAME = 'DDTEXT'.

AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 7.

AFIELD-FIELDNAME = 'EXCCD'.

AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.

AFIELD-NO_ZERO = 'X'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 8.

AFIELD-FIELDNAME = 'BUDAT'.

AFIELD-SELTEXT_L = 'INPUT RECV DATE'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 9.

AFIELD-FIELDNAME = 'EXBAS'.

AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.

AFIELD-DO_SUM = 'X'.

AFIELD-JUST = 'R'.

AFIELD-DECIMALS_OUT = '2'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 10.

AFIELD-FIELDNAME = 'EXBED'.

AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.

AFIELD-JUST = 'R'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 11.

AFIELD-FIELDNAME = 'ECS'.

AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.

AFIELD-JUST = 'R'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 12.

AFIELD-FIELDNAME = 'MATNR'.

AFIELD-SELTEXT_L = 'MATERIAL-CODE'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 13.

AFIELD-FIELDNAME = 'MAKTX'.

AFIELD-SELTEXT_L = 'DESCRIPTION'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 14.

AFIELD-FIELDNAME = 'CHAPID'.

AFIELD-SELTEXT_L = 'TARIFF-ID'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 15.

AFIELD-FIELDNAME = 'MENGE'.

AFIELD-SELTEXT_L = 'QUANTITY'.

AFIELD-JUST = 'R'.

AFIELD-DO_SUM = ' '.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 16.

AFIELD-FIELDNAME = 'MEINS'.

AFIELD-SELTEXT_L = 'UOM'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 17.

AFIELD-FIELDNAME = 'DEL_IND'.

AFIELD-SELTEXT_L = 'Deleted'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

  • * LAYOUT FOR ZEBRA CATLOG

LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.

LAYOUT_IN-ZEBRA = 'X'.

LAYOUT_IN-GET_SELINFOS = 'X'.

LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.

LAYOUT_IN-DETAIL_POPUP = 'X' .

  • SORTCAT-decimals = '0'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_SAVE = G_SAVE

IS_VARIANT = GS_VARIANT

IT_FIELDCAT = FIELDCAT

IT_SORT = SORTCAT

IS_LAYOUT = LAYOUT_IN

IT_EVENTS = EVENTCAT

  • I_BACKGROUND_ID = g_back_ground

TABLES

T_OUTTAB = IT_OUT.

&----


*& Form TOP_OF_PAGE_LIST_HEADER

&----


  • text

----


  • -->LIST_HEADERtext

----


FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.

DATA : HLINE TYPE SLIS_LISTHEADER,

TEXT(60) TYPE C.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

  • WRITE 'ROOTS INDUSTRIES LTD' TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE 'PLANT :' TO TEXT.

WRITE WERKS TO TEXT+8.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-NAME1 TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-STRAS TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-ORT01 TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE 'DATE :' TO TEXT.

WRITE BUDAT-LOW TO TEXT+7.

IF BUDAT-HIGH NE ''.

WRITE 'TO' TO TEXT+18.

WRITE BUDAT-HIGH TO TEXT+22.

ENDIF.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

ENDFORM. "TOP_OF_PAGE_LIST_HEADER

&----


*& Form ALV_EVENT_INIT

&----


  • text

----


FORM ALV_EVENT_INIT .

CLEAR ALV_EVENT.

ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.

APPEND ALV_EVENT TO EVENTCAT.

CLEAR ALV_EVENT.

ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.

APPEND ALV_EVENT TO EVENTCAT.

  • CLEAR ALV_EVENT.

  • ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.

  • ALV_EVENT-FORM = 'ALV_END_OF_LIST'.

  • APPEND ALV_EVENT TO GT_EVENTS.

  • CLEAR ALV_EVENT.

  • ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.

  • ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.

  • APPEND ALV_EVENT TO GT_EVENTS.

ENDFORM. "ALV_EVENT_INIT

&----


*& Form ALV_TOP_OF_PAGE

&----


  • text

----


FORM ALV_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LIST_HEADER

I_LOGO = 'ENJOYSAP_LOGO'.

ENDFORM. "ALV_TOP_OF_PAGE

&----


*& Form BUILD_EVENT

&----


  • text

----


  • -->P_GT_EVENTS[] text

----


FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_EVENTS

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO

ALV_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.

APPEND ALV_EVENT TO P_EVENTS.

ENDIF.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO

ALV_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.

APPEND ALV_EVENT TO P_EVENTS.

ENDIF.

ENDFORM. " BUILD_EVENT

Thanks,

Shankar

Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
596

Hi

Go to SE38 -> give BALV*->press F4 -> You can get all the ALV programs which contains all the options.

Regards,

kumar

Read only

Former Member
0 Likes
596

Hello Bala,

You can create a join of the three tables and then display in a single ALV:

To create a join of three tables:

http://www.sap-img.com/abap/inner-joins.htm

You could also display three different ALV grids on the same screen:

http://www.geocities.com/mpioud/Z_DEMO_3_ALV_LIST.html

Regards,

Beejal

**reward if this helps