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
*& 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
Post a Comment