"! This is demo for FALV full screen with fully dynamic GUI STATUS
"! done by Lukasz Pegiel for http://abapblog.com
report zdemo_falv04.
data: sflight type standard table of sflight.
class lcl_test definition inheriting from zcl_falv.
public section.
protected section.
"redefinition of event handler
methods evt_user_command redefinition.
private section.
endclass.
class lcl_test implementation.
method evt_user_command.
case e_ucomm.
when zcl_falv_dynamic_status=>b_01.
call function 'POPUP_DISPLAY_MESSAGE'
exporting
titel = 'Popup' " Title
msgid = '00'
msgty = 'S'
msgno = '001'
msgv1 = 'Button 1 clicked'.
when zcl_falv_dynamic_status=>b_02.
call function 'POPUP_DISPLAY_MESSAGE'
exporting
titel = 'Popup' " Title
msgid = '00'
msgty = 'S'
msgno = '001'
msgv1 = 'Button 2 clicked'.
endcase.
endmethod.
endclass.
start-of-selection.
select * up to 100 rows
into corresponding fields of table @sflight
from sflight.
"creation of falv with local redefinition
data falv type ref to lcl_test.
falv ?= lcl_test=>create( exporting i_subclass = cl_abap_classdescr=>describe_by_name( p_name = 'LCL_TEST' )
changing ct_table = sflight ) .
"Add title variable
falv->title_v1 = 'ZDEMO_FALV04'.
"Set Gui status to fully dynamic (no standard buttons of ALV Grid)
falv->gui_status->fully_dynamic = abap_true.
"Add button into GUI status at for function F01 (in partial dynamic GUI Status we can have up to 19 buttons)
falv->gui_status->add_button(
exporting
iv_button = zcl_falv_dynamic_status=>b_01
iv_text = 'POPUP 01'
iv_icon = icon_abc
* iv_qinfo =
* iv_allowed = ABAP_TRUE
exceptions
button_already_filled = 1
button_does_not_exists = 2
icon_and_text_empty = 3
others = 4
).
if sy-subrc <> 0.
* message id sy-msgid type sy-msgty number sy-msgno
* with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
"Add button into GUI status at for function F02
falv->gui_status->add_button(
exporting
iv_button = zcl_falv_dynamic_status=>b_02
iv_text = 'POPUP 02'
iv_icon = icon_address
* iv_qinfo =
* iv_allowed = ABAP_TRUE
exceptions
button_already_filled = 1
button_does_not_exists = 2
icon_and_text_empty = 3
others = 4
).
if sy-subrc <> 0.
* message id sy-msgid type sy-msgty number sy-msgno
* with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
"Display full screen grid
falv->display( ).
ZDEMO_FALV04 - Full Screen with fully dynamic GUI Status
The latest version of each part of FALV can be found on github repository https://github.com/fidley/falv which you can use in abapGit for easier up to date handling.
Demo for fully dynamic GUI Status in case of full screen FALV. When you use full dynamic GUI status then you're allowed to use up to 35 button slots. Default buttons like SAVE, BACK, UP, EXIT, PRINT,... are already set. If they are disabled you need to enable them with show method of dynamic gui status.
Video with demo program: