ALV_INTERACTIVE_REPORT

*&---------------------------------------------------------------------*
*& Report  ZNDF
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZNDF.



type-pools : slis , icon.

types : begin of ty_dd02l,
        icon type icon_d,
        tabname type tabname,
        tabclass type tabclass,
        contflag type contflag,
        actflag type actflag,
        mainflag type maintflag,
        buffered type buffered,
        as4user type as4user,
        as4date type as4date,
        as4time type as4time,
        expand,
        end of ty_dd02l.

types : begin of ty_dd03l,
        tabname type tabname,
        fieldname type fieldname,
        keyflag type keyflag,
        mandatory type mandatory,
        checktable type checktable,
        rollname type rollname,
        end of ty_dd03l.


data : it_dd02l type standard table of ty_dd02l,
       wa_dd02l type ty_dd02l,
       it_dd03l type standard table of ty_dd03l,
       wa_dd03l type ty_dd03l.

data : it_fieldcat type slis_t_fieldcat_alv,
       wa_fieldcat type slis_fieldcat_alv,
       wa_layout type slis_layout_alv,
       key type slis_keyinfo_alv.
select-options : s_table for wa_dd02l-tabname no intervals.

start-of-selection.
  perform fetch_data.
  perform build_catalog.
  perform build_layout.
  perform build_key.
  perform dispaly_hier_alv.
*----------------------------------------------------------------------*
form fetch_data .
  select * from dd02l into corresponding fields of table it_dd02l                                            where tabname in s_table.
  if it_dd02l is not initial.
  select * from dd03l into corresponding fields of table it_dd03l     for all entries in it_dd02l where tabname = it_dd02l-tabname.
  endif.


  LOOP AT IT_DD02L INTO WA_DD02L.
    AT NEW TABNAME.
      WA_DD02L-ICON = '@3M@'.
      MODIFY IT_DD02L FROM WA_DD02L TRANSPORTING ICON WHERE TABNAME                                                = WA_DD02L-TABNAME.
      CLEAR WA_DD02L.
      ENDAT.
    ENDLOOP.
endform.                    " FETCH_DATA
*----------------------------------------------------------------------*
form build_catalog .
  clear wa_fieldcat.
  wa_fieldcat-col_pos = 1.
  wa_fieldcat-fieldname = 'TABNAME'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'Tablename'.
  wa_fieldcat-key = 'X'.
  wa_fieldcat-emphasize = 'C610'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 2.
  wa_fieldcat-fieldname = 'TABCLASS'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'Tablecategory'.
  wa_fieldcat-emphasize = 'C600'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 3.
  wa_fieldcat-fieldname = 'CONTFLAG'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'DeliveryClass'.
  wa_fieldcat-emphasize = 'C510'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 4.
  wa_fieldcat-fieldname = 'ACTFLAG'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'Activationstatus'.
  wa_fieldcat-emphasize = 'C500'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 5.
  wa_fieldcat-fieldname = 'MAINFLAG'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'MaintainenceFlag'.
  wa_fieldcat-emphasize = 'C410'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 6.
  wa_fieldcat-fieldname = 'BUFFERED'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'BufferFlag'.
  wa_fieldcat-emphasize = 'C400'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 7.
  wa_fieldcat-fieldname = 'AS4USER'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'User'.
  wa_fieldcat-emphasize = 'C310'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 8.
  wa_fieldcat-fieldname = 'AS4DATE'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'Date'.
  wa_fieldcat-emphasize = 'C300'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 9.
  wa_fieldcat-fieldname = 'AS4TIME'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'Time'.
  wa_fieldcat-emphasize = 'C210'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 10.
  wa_fieldcat-fieldname = 'ICON'.
  wa_fieldcat-tabname = 'IT_DD02L'.
  wa_fieldcat-seltext_m = 'ICON'.
  wa_fieldcat-icon = 'X'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 11.
  wa_fieldcat-fieldname = 'FIELDNAME'.
  wa_fieldcat-tabname = 'IT_DD03L'.
  wa_fieldcat-key = 'X'.
  wa_fieldcat-seltext_m = 'Field'.
  wa_fieldcat-emphasize = 'C600'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 12.
  wa_fieldcat-fieldname = 'KEYFLAG'.
  wa_fieldcat-tabname = 'IT_DD03L'.
  wa_fieldcat-seltext_m = 'Key'.
  wa_fieldcat-emphasize = 'C500'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 13.
  wa_fieldcat-fieldname = 'CHECKTABLE'.
  wa_fieldcat-tabname = 'IT_DD03L'.
  wa_fieldcat-seltext_m = 'Checktable'.
  wa_fieldcat-emphasize = 'C400'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-col_pos = 14.
  wa_fieldcat-fieldname = 'MANDATORY'.
  wa_fieldcat-tabname = 'IT_DD03L'.
  wa_fieldcat-seltext_m = 'Mandatory'.
  wa_fieldcat-emphasize = 'C300'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-col_pos = 15.
  wa_fieldcat-fieldname = 'ROLLNAME'.
  wa_fieldcat-tabname = 'IT_DD03L'.
  wa_fieldcat-seltext_m = 'Dataelement'.
  wa_fieldcat-emphasize = 'C200'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.
endform.                    " BUILD_CATALOG
*----------------------------------------------------------------------*
form build_layout .
  wa_layout-expand_fieldname = 'EXPAND'.
  wa_layout-window_titlebar = 'Hierarchical ALV list display'.
  wa_layout-lights_tabname = 'IT_DD03L'.
  wa_layout-colwidth_optimize = 'X'.
endform.                    " BUILD_LAYOUT


*----------------------------------------------------------------------*
form BUILD_KEY .
  key-header01 = 'TABNAME'.
  key-item01 = 'TABNAME'.
endform.                    " BUILD_KEY
*----------------------------------------------------------------------*
form DISPALY_HIER_ALV .
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
  exporting
   I_CALLBACK_PROGRAM             = sy-cprog
   IS_LAYOUT                      = wa_layout
   IT_FIELDCAT                    = it_fieldcat
    i_tabname_header               =  'IT_DD02L'
    i_tabname_item                 = 'IT_DD03L'
    is_keyinfo                     = key
  tables
    t_outtab_header                = it_dd02l
    t_outtab_item                  = it_dd03l.

endform.                    " DISPALY_HIER_ALV












Comments

Popular posts from this blog

FOR ALL ENTRIES (FAE) -4 TABLES USING ALV_GRID_DISPLAY

RADIO-BUTTONS IN BASIC REPORT