Posted: Wed Sep 30, 2009 2:22 pm Post subject: Название формата в заголовке отчета
Добрый день.
Необходимо выводить название формата в заголовок отчета. Формат задается на СЭ или стандартной кнопкой "Выбрать формат...". Отчет строю при помощи CL_SALV_TABLE, проблем при задании формата с СЭ нет, загвоздка с выбором.
Вот что я делал:
Скопировал стандартный GUI-статус и в нем для кнопки загрузки формата присвоил свой код функции, повесил обработчик с инициацией стандартного события на выбор формата. В обработке:
Code:
METHOD on_added_function.
DATA:
s_layout TYPE SALV_S_LAYOUT.
CASE e_salv_function.
WHEN '&OAD_H'.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
FUNCTIONCODE = '&OAD'.
s_layout = G_layout->GET_CURRENT_LAYOUT( ).
ENDCASE.
ENDMETHOD. "on_added_function
После этого при нажатии на кнопку открывается диалог выбора формата, но запускается он после выполнения всего последующего в обработчике кода и формат в заголовок при этом выводится старый.
Можно ли действовать таким способом?
Была идея проводить загрузку через 'LVC_VARIANT_SAVE_LOAD' (придется производить конвертацию типов и сомневаюсь, получится ли), использовал ряд других ФМ для загрузки, но, выбрав с их помощью формат, не получалось обновить таблицу (метод REFRESH FULL и SOFT).
Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
Posted: Wed Sep 30, 2009 2:41 pm Post subject:
Попробуйте ничего не изменять со статусом, а разместить свою обработку в событии AFTER_SALV_FUNCTION.
Добавил:
Code:
DATA: ispfli TYPE TABLE OF spfli.
DATA: xspfli TYPE spfli.
DATA: gr_table TYPE REF TO cl_salv_table.
DATA: gr_functions TYPE REF TO cl_salv_functions_list.
DATA: gr_events TYPE REF TO cl_salv_events_table.
DATA: gr_selections TYPE REF TO cl_salv_selections.
DATA: gr_display TYPE REF TO cl_salv_display_settings.
DATA: gr_layout TYPE REF TO cl_salv_layout.
DATA: key TYPE salv_s_layout_key.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT after_salv_function
OF cl_salv_events IMPORTING e_salv_function.
ENDCLASS. "lcl_handle_events DEFINITION
DATA: event_handler TYPE REF TO lcl_handle_events.
START-OF-SELECTION.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ispfli FROM spfli UP TO 100 ROWS.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = ispfli.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
DATA: command TYPE lvc_title,
layout TYPE salv_s_layout.
CASE e_salv_function.
WHEN '&OAD'.
layout = gr_layout->get_current_layout( ).
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.