Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE24 - Построитель объектов => Тема начата: jacknk88 от Ноябрь 29, 2012, 09:18:04 am

Название: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Ноябрь 29, 2012, 09:18:04 am
кто-нибудь знает как работать с cl_salv_tree ?.....какие особенности?...какие методы для настроек есть и как их использовать?....куда, в каком виде и что заносить?...и.т.д. ....может есть литература какая-то...курсы?
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: Uukrul от Ноябрь 29, 2012, 04:37:42 pm
Ну продам явки адреса и пароли  8) электронный кошелек чуть позже опубликую... по картинке в SE80 там столько всего интересного будет.
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Ноябрь 30, 2012, 01:00:19 pm
спасибо....буду разберать примеры)))
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Ноябрь 30, 2012, 01:21:21 pm
у меня вопрос такой:
если событие на нажатие не по полю, а по узлу?....

есть событие link_click которое срабатывает если тип ячейки установить как button   или link ... но это я так понимаю только для ячейки таблицы...
а вот как сделать на сам узел...родительский и дочерний?...не знаю....и не получается(((
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: Uukrul от Декабрь 02, 2012, 04:40:51 pm
You are not allowed to view links. Register or Login
а вот как сделать на сам узел...родительский и дочерний?...не знаю....и не получается(((
BCALV_GRID_DND_TREE - В этом примере при двойном клике на ветке дерева выполняется перерисовка ALV-таблицы рядом с деревом, можно взять за основу этот пример.
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Декабрь 03, 2012, 01:56:05 pm
спасибо...самое то, что нужно)).....
есть вопросик один....в этом примере ALV выходит справа от дерева..а сделал чтобы она была снизу .....для этого прописал параметр SIDE при создании контейнера для ветки

Код: You are not allowed to view links. Register or Login
Data: G_CONTAINER_OBJECT TYPE REF TO CL_GUI_DOCKING_CONTAINER.
...
...
...
  CREATE OBJECT G_CONTAINER_OBJECT
      EXPORTING SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP
                EXTENSION = 1000
                REPID     = G_REPID
                DYNNR     = sy-dynnr
                RATIO     = 50
однако ALV осталась маленькой.....пытался растенуть ее методом

Код: You are not allowed to view links. Register or Login
    call method grid->SET_WIDTH
        exporting
          width          = 1000
          EXCEPTIONS
            OTHERS        = 1.

ничего не вышло...не знаете как можно ее растенуть по ширине?
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Декабрь 03, 2012, 03:00:37 pm
все...сделал....нашел на одном форуме :)...все лишь надо было прописать cl_gui_container=>screen0 при создании ALV....
в BCALV_GRID_DND_TREE есть экран 0100 .... в PROCESS BEFORE OUTPUT идет вызов MODULE ALV_DISPLAY. где создается объект grid в качестве родительского контейнера котрого идет g_custom_container....так вот вместо него я прописал cl_gui_container=>screen0
Код: You are not allowed to view links. Register or Login

create object grid
       exporting
         i_appl_events = selected      "application event
         i_parent = cl_gui_container=>screen0

Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Декабрь 06, 2012, 11:07:27 am
в программу BCALV_GRID_DND_TREE я решил добавить checkbox-ы на узлы (ну я скопировал прогу всю ;D)....так вот....для этого я добавил в FORM REGISTER_EVENTS
Код: You are not allowed to view links. Register or Login
  CLEAR L_EVENT.
  L_EVENT-EVENTID = CL_GUI_COLUMN_TREE=>EVENTID_CHECKBOX_CHANGE.
    L_EVENT-APPL_EVENT = SELECTED.
   APPEND L_EVENT TO LT_EVENTS.

и в FORM CREATETREECONTROL

Код: You are not allowed to view links. Register or Login
  SET HANDLER TREE_EVENT_RECEIVER->HANDLE_CHECKBOX_CHANGE FOR TREE1.

в CLASS CL_TREE_EVENT_RECEIVER DEFINITION

Код: You are not allowed to view links. Register or Login
    METHODS HANDLE_CHECKBOX_CHANGE
      FOR EVENT CHECKBOX_CHANGE OF CL_GUI_ALV_TREE
      IMPORTING CHECKED.

в CLASS CL_TREE_EVENT_RECEIVER IMPLEMENTATION.

Код: You are not allowed to view links. Register or Login
METHOD HANDLE_CHECKBOX_CHANGE.
CHECK NOT CHECKED is INITIAL.

MESSAGE 'YESSS!!!' TYPE 'I'. " ну для проверки сойдет))

  ENDMETHOD.

также в FORM ADD_CARRID_LINE

Код: You are not allowed to view links. Register or Login
LS_ITEM_LAYOUT-class = cl_gui_column_tree=>item_class_checkbox.
LS_ITEM_LAYOUT-EDITABLE = 'X'.

и в FORM ADD_COMPLETE_LINE тоже самое

однако при вызове метода SET_REGISTERED_EVENTS вылезает ошибка и дамп

ILLEGAL_EVENT_COMBINATION = 3.

Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Декабрь 11, 2012, 08:53:48 am
вот и ответ)))

http://scn.sap.com/message/13712885
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: Uukrul от Декабрь 11, 2012, 01:52:00 pm
You are not allowed to view links. Register or Login
вот и ответ)))

http://scn.sap.com/message/13712885

Цитировать
Just ADD 'ITEM_SELECTION      = 'X' in Object tree1.
 
CREATE OBJECT TREE1
     EXPORTING
         PARENT              = G_CONTAINER_OBJECT
         NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
         ITEM_SELECTION      = 'X'
         NO_HTML_HEADER      = ''
         NO_TOOLBAR          = ''
Название: Re: cl_salv_tree - ALV таблица в виде иерархии
Отправлено: jacknk88 от Март 07, 2013, 08:44:42 am
в стандартном отчете BCALV_TREE_VERIFY есть много чего интересного: события, кнопки, ссылки, пиктограммы, checkbox-ы.

при желании можно посмотреть все стандартные отчеты при поиске по BCALV_*TREE*