You are on page 1of 11

*---------------------------------------------------------------------* Program: ZZ_ALV_REPORT_STUB

* Author : Clayton Mergen


* Date
:
*
* Purpose: Report using ALV function
*
* Notes:
* 1) Logos & wallpapers can be found in table BDS_CONN05
*
with class = PICTURES
*
* 2) Transaction OAER can be used to create PICTURES.
*
Run transaction OAER with class name = PICTURES, Class type = OT,
*
and Object key with whatever name you want to create. In the
*
next screen, right clicking on screen and import
*
*---------------------------------------------------------------------*
Revisions
*---------------------------------------------------------------------* Name
:
* Date
:
* Comments:
*---------------------------------------------------------------------report zz_alv_report_stub
no standard page heading
line-size 200
line-count 65
message-id zz.
*-------------------------------* Tables
*-------------------------------tables:
ekpo,
trdir.
*-------------------------------* Global Types
*-------------------------------type-pools: slis.
*-------------------------------* Global Internal Tables
*-------------------------------data:
i_fieldcat_alv type slis_t_fieldcat_alv,
i_events
type slis_t_event,
i_event_exit
type slis_t_event_exit,
i_list_comments type slis_t_listheader,
i_excluding
type slis_t_extab.
* Display data
data: begin of i_data occurs 0,
name
like trdir-name,
clas
like trdir-clas,
subc
like trdir-subc,
cnam
like trdir-cnam,

cdat
like trdir-cdat,
myfield(1) type c,
end of i_data.
*-------------------------------* Global Variables
*-------------------------------data:
w_variant
like disvariant,
wx_variant
like disvariant,
w_variant_save(1) type c,
w_exit(1)
type c,
w_repid
like sy-repid,
w_user_specific(1) type c,
w_callback_ucomm
type slis_formname,
w_print
type slis_print_alv,
w_layout
type slis_layout_alv,
w_html_top_of_page type slis_formname,
w_fieldcat_alv
like line of i_fieldcat_alv,
w_excluding
like line of i_excluding,
w_events
like line of i_events,
w_event_exit
like line of i_event_exit,
w_list_comments
like line of i_list_comments.
*-------------------------------* Global Constants
*-------------------------------*constants:
*-------------------------------* Selection Screen
*-------------------------------selection-screen begin of block blk_criteria with frame title text-f01.
select-options:
s_name for trdir-name.
selection-screen end of block blk_criteria.
selection-screen begin of block blk_params with frame title text-f02.
parameters:
p_vari like disvariant-variant.
selection-screen skip 1.
parameters:
p_grid radiobutton group rb01 default 'X',
p_html as checkbox.
selection-screen skip 1.
parameters:
p_list radiobutton group rb01.
selection-screen end of block blk_params.
*-------------------------------* Initialization
*-------------------------------initialization.
perform init_variant.
perform variant_default using p_vari.
clear: s_name[].

s_name-sign
= 'I'.
s_name-option = 'CP'.
s_name-low
= 'Z*'.
append s_name.
*-------------------------------* At Selection Screen PBO
*-------------------------------at selection-screen output.
*---------------------------------* At Selection Screen Value Request
*---------------------------------at selection-screen on value-request for p_vari.
perform variant_f4 using p_vari.
*-------------------------------* At Selection Screen
*-------------------------------at selection-screen.
perform variant_fill.
*-------------------------------* Start of Selection
*-------------------------------start-of-selection.
perform get_data.
end-of-selection.
perform fieldcat_build.
perform event_build.
perform event_exit_build.
perform exclude_build.
perform print_build.
perform layout_build.
perform display_data.
*-------------------------------* Top of Page
*-------------------------------top-of-page.
*-------------------------------* Top of Page During Line Sel
*-------------------------------top-of-page during line-selection.
*-------------------------------* At User Command
*-------------------------------at user-command.
*-------------------------------* At Line Selection
*-------------------------------at line-selection.

*-------------------------------* Macros
*-------------------------------define skip_1.
write: /001 sy-vline,
at sy-linsz sy-vline.
end-of-definition.
*---------------------------------------------------------------------*
Forms
*---------------------------------------------------------------------*&---------------------------------------------------------------------*
*&
Form variant_f4
*&---------------------------------------------------------------------*
form variant_f4 using p_variant.
call function 'LVC_VARIANT_F4'
exporting
is_variant
= w_variant
i_save
= w_variant_save
importing
e_exit
= w_exit
es_variant
= wx_variant
exceptions
not_found
= 1
program_error = 2
others
= 3.
if sy-subrc <> 0.
message i000(zz) with text-g01.
endif.
if w_exit is initial.
w_variant-variant = wx_variant-variant.
p_variant
= wx_variant-variant.
endif.
endform.
*&---------------------------------------------------------------------*
*&
Form init_variant
*&---------------------------------------------------------------------*
form init_variant.
clear: w_variant.
w_repid
w_variant-report
w_variant-username
w_variant_save

=
=
=
=

sy-repid.
w_repid.
sy-uname.
'A'. "All types

endform.
*&---------------------------------------------------------------------*
*&
Form variant_default
*&---------------------------------------------------------------------*
form variant_default using p_variant.
wx_variant = w_variant.

if not p_variant is initial.


wx_variant-variant = p_variant.
endif.
call function 'LVC_VARIANT_DEFAULT_GET'
exporting
i_save
= w_variant_save
changing
cs_variant
= wx_variant
exceptions
wrong_input
= 1
not_found
= 2
program_error = 3
others
= 4.
case sy-subrc.
when 0.
p_variant = wx_variant-variant.
when 2.
clear: p_variant.
endcase.
endform.
*&---------------------------------------------------------------------*
*&
Form variant_fill
*&---------------------------------------------------------------------*
form variant_fill.
clear: w_variant.
if p_vari is initial.
w_variant-variant = 'STANDARD'.
w_variant-report = w_repid.
else.
w_variant-variant = p_vari.
w_variant-report = w_repid.
call function 'LVC_VARIANT_EXISTENCE_CHECK'
exporting
i_save
= w_variant_save
changing
cs_variant = w_variant
exceptions
others
= 01.
if sy-subrc ne 0.
message i000(zz) with text-g02.
endif.
endif.
endform.
*&---------------------------------------------------------------------*
*&
Form fieldcat_build
*&---------------------------------------------------------------------*
form fieldcat_build.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting
i_program_name
i_structure_name
i_internal_tabname
i_inclname
changing
ct_fieldcat

=
=
=
=

w_repid
'TRDIR'
'I_DATA'
w_repid

= i_fieldcat_alv.

* Modify displayed fields


loop at i_fieldcat_alv into w_fieldcat_alv.
case w_fieldcat_alv-fieldname.
when 'NAME'.
w_fieldcat_alv-hotspot
= 'X'.
when 'MYFIELD'.
w_fieldcat_alv-checkbox = 'X'.
w_fieldcat_alv-seltext_s = 'MyChkBox'.
when others.
endcase.
modify i_fieldcat_alv from w_fieldcat_alv.
endloop.
endform.
*&---------------------------------------------------------------------*
*&
Form display_data
*&---------------------------------------------------------------------*
form display_data.
w_callback_ucomm

= 'CALLBACK_UCOMM'.

case 'X'.
when p_grid.
if p_html = 'X'.
w_html_top_of_page = 'HTML_TOP_OF_PAGE'.
endif.

*
*
*
*

call function 'REUSE_ALV_GRID_DISPLAY'


exporting
i_background_id
=
i_background_id
=
i_callback_program
=
i_callback_html_top_of_page =
i_structure_name
=
i_default
=
i_save
=
is_variant
=
is_layout
=
i_callback_user_command
=
it_fieldcat
=
it_events
=
it_event_exit
=
it_excluding
=
is_print
=
i_screen_start_column
=
i_screen_start_line
=
i_screen_end_column
=
i_screen_end_line
=

'SIWB_WALLPAPER'
'SIWB_WALLPAPER'
w_repid
w_html_top_of_page
'TRDIR'
'X'
'A'
w_variant
w_layout
w_callback_ucomm
i_fieldcat_alv
i_events
i_event_exit
i_excluding
w_print
1
1
70
30

tables
t_outtab

= i_data.

when p_list.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_background_id
= 'ALV_BACKGROUND'
i_callback_program
= w_repid
i_default
= 'X'
i_save
= 'A'
is_variant
= w_variant
is_layout
= w_layout
i_callback_user_command = w_callback_ucomm
it_fieldcat
= i_fieldcat_alv
it_events
= i_events
it_event_exit
= i_event_exit
is_print
= w_print
tables
t_outtab
= i_data.
endcase.
endform.
*---------------------------------------------------------------------*
*
FORM user_command
*
*---------------------------------------------------------------------*
form callback_ucomm using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
message i000(zz) with r_ucomm.
case r_ucomm.
when '&IC1'.
set parameter id 'RID' field rs_selfield-value.
call transaction 'SE38'.
when others.
endcase.
endform.
*&---------------------------------------------------------------------*
*&
Form get_data
*&---------------------------------------------------------------------*
form get_data.
select * up to 15 rows from trdir
into corresponding fields of table i_data
where name in s_name.
endform.
*---------------------------------------------------------------------*
*
FORM ALV_TOP_OF_PAGE
*
*---------------------------------------------------------------------*
form alv_top_of_page.
clear: i_list_comments[].
w_list_comments-typ
w_list_comments-key

= 'H'. "H=Header, S=Selection, A=Action


= ''.

w_list_comments-info = 'Info 1'.


append w_list_comments to i_list_comments.
w_list_comments-typ =
w_list_comments-key =
w_list_comments-info =
append w_list_comments

'A'. " H = Header, S = Selection, A = Action


''.
'Begin of list'.
to i_list_comments.

call function 'REUSE_ALV_COMMENTARY_WRITE'


exporting
i_logo
= 'ENJOYSAP_LOGO'
it_list_commentary = i_list_comments.
endform.
*&---------------------------------------------------------------------*
*&
Form event_build
*&---------------------------------------------------------------------*
form event_build.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events
= i_events.
read table i_events
with key name = slis_ev_top_of_page
into w_events.
if sy-subrc = 0.
move 'ALV_TOP_OF_PAGE' to w_events-form.
modify i_events from w_events index sy-tabix.
endif.
read table i_events
with key name = slis_ev_end_of_list
into w_events.
if sy-subrc = 0.
move 'ALV_END_OF_LIST' to w_events-form.
modify i_events from w_events index sy-tabix.
endif.
read table i_events
with key name = slis_ev_end_of_page
into w_events.
if sy-subrc = 0.
move 'ALV_END_OF_PAGE' to w_events-form.
modify i_events from w_events index sy-tabix.
endif.
endform.
*---------------------------------------------------------------------*
*
FORM alv_end_of_list
*
*---------------------------------------------------------------------*
form alv_end_of_list.
clear: i_list_comments[].

w_list_comments-typ = 'A'. "H = Header, S = Selection, A = Action


w_list_comments-key = ''.
w_list_comments-info = 'End of list'.
append w_list_comments to i_list_comments.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_list_comments
i_logo
= 'ZMYOBJECTKEY'
i_end_of_list_grid = 'X'.
endform.
*---------------------------------------------------------------------*
*
FORM alv_end_of_page
*
*---------------------------------------------------------------------*
form alv_end_of_page.
endform.
*&---------------------------------------------------------------------*
*&
Form print_build
*&---------------------------------------------------------------------*
form print_build.
w_print-no_print_listinfos = 'X'.
endform.
*&---------------------------------------------------------------------*
*&
Form layout_build
*&---------------------------------------------------------------------*
form layout_build.
w_layout-zebra
w_layout-no_vline
w_layout-colwidth_optimize
w_layout-detail_popup
w_layout-detail_initial_lines
w_layout-detail_titlebar

=
=
=
=
=
=

'X'.
'X'.
'X'.
'X'.
'X'.
'Detail Title Bar'.

endform.
*&---------------------------------------------------------------------*
*&
Form event_exit_build
*&---------------------------------------------------------------------*
form event_exit_build.
clear: i_event_exit[].
* Pick
w_event_exit-ucomm
w_event_exit-before
w_event_exit-after
append w_event_exit

= '&ETA'.
= ' '.
= 'X'.
to i_event_exit.

endform.
*---------------------------------------------------------------------*
*
FORM HTML_TOP_OF_PAGE
*
*---------------------------------------------------------------------*
form html_top_of_page using r_top type ref to cl_dd_document.

data:
text
s_table
col_key
col_info
a_logo

type
type
type
type
type

sdydo_text_element,
ref to cl_dd_table_element,
ref to cl_dd_area,
ref to cl_dd_area,
ref to cl_dd_area.

* Split TOP-Document
call method r_top->vertical_split
exporting split_area = r_top
split_width = '30%'
importing right_area = a_logo.
* Fill TOP-Document
call method r_top->add_text
exporting text = 'Example of a Heading'
sap_style
= 'HEADING'.
call method r_top->new_line.
call method r_top->new_line.
call method r_top->add_table
exporting no_of_columns
with_heading
border
importing table

=
=
=
=

2
' '
'1'
s_table.

call method s_table->add_column importing column = col_key.


call method s_table->add_column importing column = col_info.
text = 'A key value marked'.
call method col_key->add_text
exporting text
= text
sap_emphasis = 'Strong'.
call method col_info->add_gap exporting width = 6.
text = '600' .
call method col_info->add_text
exporting text
= text
sap_style = 'Key'.
call method col_info->add_gap

exporting width = 3.

text = 'Block brick units'.


call method col_info->add_text exporting text

= text.

call method s_table->new_row.


text = 'Storage Bin'.
call method col_key->add_text
exporting text
= text
sap_emphasis = 'Strong'.
call method col_info->add_gap exporting width = 7.
text = 'C-A-004'.

call method col_info->add_text exporting text = text.


call method s_table->new_row.
text = 'Warehouse number' .
call method col_key->add_text
exporting text
= text
sap_emphasis = 'Strong'.
call method col_info->add_gap

exporting width = 6.

text = '200' .
call method col_info->add_text
exporting text
= text
sap_style = 'Success'.
call method col_info->add_gap

exporting width = 3.

text = 'marked success'.


call method col_info->add_text exporting text = text.
call method s_table->new_row.
call method r_top->new_line.
text = 'This last line is a comment in italics.'.
call method r_top->add_text
exporting text
= text
sap_emphasis = 'EMPHASIS'.
call method r_top->new_line.
call method a_logo->add_picture
*
exporting picture_id = 'ZZTESTBMP'.
exporting picture_id = 'ENJOYSAP_LOGO'.
endform.
*&---------------------------------------------------------------------*
*&
Form exclude_build
*&---------------------------------------------------------------------*
form exclude_build.
w_excluding = '&GRAPH'. "Graphic
append w_excluding to i_excluding.
endform.

" exclude_build

You might also like