воскресенье, 14 июля 2013 г.

Инициализация скрина с ALV Grid



Глобальные переменные:

*------VARIABLES------------------------------------------------------*

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  

Комментариев нет:

Отправить комментарий