Глобальные переменные:
DATA : gv_create_grid TYPE flag VALUE 'X'
.
*------CONSTANTS------------------------------------------------------*
DATA : gc_true TYPE flag VALUE 'X'
, gc_grid_title(40) VALUE 'Репорт наме'
.
*------OBJECT VARIABLES-----------------------------------------------*
DATA : go_grid1 TYPE REF TO cl_gui_alv_grid
, go_dockingbox1 TYPE REF TO cl_gui_docking_container
, go_dockingbox2 TYPE REF TO cl_gui_docking_container
, go_splitterbox1 TYPE REF TO cl_gui_splitter_container
, go_splitterbox2 TYPE REF TO cl_gui_splitter_container
, go_containerbox1 TYPE REF TO cl_gui_container
, go_containerbox2 TYPE REF TO cl_gui_container
, go_top_text TYPE REF TO cl_dd_document
, go_event_receiver TYPE REF TO alv_event_receiver
.
FORM init_src_0100 .
DATA lv_pos TYPE i.
* ВЫЧИСЛЯЕМ ПАРАМЕТР EXTENSION (КОЛ-ВО СТРОК НА ЭКРАНЕ * ПРОЦЕНТ ОТ
* ПОЛНОГО ЭКРАНА * ПОПРАВОЧНЫЙ КОЭФФИЦИЕНТ) / 100
lv_pos = ( sy-srows * 13 * 13 ) / 100.
CREATE OBJECT go_dockingbox1
EXPORTING
repid = sy-repid
extension = lv_pos
side = cl_gui_docking_container=>dock_at_top.
CREATE OBJECT go_splitterbox1
EXPORTING
parent = go_dockingbox1
link_repid = sy-repid
link_dynnr = sy-dynnr
rows = 1
columns = 1.
go_splitterbox1->get_container( EXPORTING row = 1 column = 1
RECEIVING container = go_containerbox1 ).
* ОПРЕДЕЛЯЕМ НИЖНЮЮ ЧАСТЬ ЭКРАНА
lv_pos = ( sy-srows * 82 * 13 ) / 100.
CREATE OBJECT go_dockingbox2
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
extension = lv_pos
side = cl_gui_docking_container=>dock_at_top.
CREATE OBJECT go_splitterbox2
EXPORTING
parent = go_dockingbox2
link_repid = sy-repid
link_dynnr = sy-dynnr
rows = 1
columns = 1.
go_splitterbox2->get_container( EXPORTING row = 1 column = 1
RECEIVING container = go_containerbox2 ).
* Создаем объекты
CREATE OBJECT go_top_text
EXPORTING
style = 'ALV_GRID'.
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_containerbox2 " РОДИТЕЛЬ
i_appl_events = gc_true. " ОБРАБАТЫВАТЬ
*Хэндлеры если надо
CREATE OBJECT go_event_receiver.
SET HANDLER go_event_receiver->lm_handle_double_click FOR go_grid1.
* Наполнение данными
PERFORM set_text_info USING go_top_text go_containerbox1.
PERFORM set_grid_info.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SET_TEXT_INFO
*&---------------------------------------------------------------------*
* Формирования заголовка
*----------------------------------------------------------------------*
* -->IP_TOP_TEXT текстовый объект
* -->IP_CONTAINERBOX1 контейнер
*----------------------------------------------------------------------*
FORM set_text_info USING ip_top_text TYPE REF TO cl_dd_document
ip_containerbox1 TYPE REF TO cl_gui_container.
DATA : lv_str TYPE sdydo_text_element
, lv_txt40(40)
.
lv_str = gc_grid_title.
ip_top_text->add_text( EXPORTING text = lv_str
sap_style = cl_dd_area=>heading
sap_fontsize = cl_dd_area=>large
).
ip_top_text->new_line( ).
ip_top_text->new_line( ).
CONCATENATE sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+0(4) INTO
lv_txt40.
CONCATENATE 'Дата запуска: ' lv_txt40 INTO lv_str SEPARATED BY space.
ip_top_text->add_text( EXPORTING text = lv_str ).
ip_top_text->new_line( ).
CONCATENATE sy-uzeit+0(2) ':' sy-uzeit+2(2) ':' sy-uzeit+4(2) INTO
lv_txt40.
CONCATENATE 'Время запуска:' lv_txt40 INTO lv_str SEPARATED BY space.
ip_top_text->add_text( EXPORTING text = lv_str ).
ip_top_text->new_line( ).
CONCATENATE 'Пользователь: ' sy-uname INTO lv_str SEPARATED BY space.
ip_top_text->add_text( EXPORTING text = lv_str ).
ip_top_text->display_document( EXPORTING reuse_control = 'X'
parent = ip_containerbox1
EXCEPTIONS html_display_error = 1 ).
ENDFORM. " SET_TEXT_INFO
Комментариев нет:
Отправить комментарий