кто-нибудь знает как работать с cl_salv_tree ?.....какие особенности?...какие методы для настроек есть и как их использовать?....куда, в каком виде и что заносить?...и.т.д. ....может есть литература какая-то...курсы?
Ну продам явки адреса и пароли 8) электронный кошелек чуть позже опубликую... по картинке в SE80 там столько всего интересного будет.
спасибо....буду разберать примеры)))
у меня вопрос такой:
если событие на нажатие не по полю, а по узлу?....
есть событие link_click которое срабатывает если тип ячейки установить как button или link ... но это я так понимаю только для ячейки таблицы...
а вот как сделать на сам узел...родительский и дочерний?...не знаю....и не получается(((
Цитата: jacknk88 від Листопад 30, 2012, 01:21:21 ПП
а вот как сделать на сам узел...родительский и дочерний?...не знаю....и не получается(((
BCALV_GRID_DND_TREE - В этом примере при двойном клике на ветке дерева выполняется перерисовка ALV-таблицы рядом с деревом, можно взять за основу этот пример.
спасибо...самое то, что нужно)).....
есть вопросик один....в этом примере ALV выходит справа от дерева..а сделал чтобы она была снизу .....для этого прописал параметр SIDE при создании контейнера для ветки
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 осталась маленькой.....пытался растенуть ее методом
call method grid->SET_WIDTH
exporting
width = 1000
EXCEPTIONS
OTHERS = 1.
ничего не вышло...не знаете как можно ее растенуть по ширине?
все...сделал....нашел на одном форуме :)...все лишь надо было прописать cl_gui_container=>screen0 при создании ALV....
в BCALV_GRID_DND_TREE есть экран 0100 .... в PROCESS BEFORE OUTPUT идет вызов MODULE ALV_DISPLAY. где создается объект grid в качестве родительского контейнера котрого идет g_custom_container....так вот вместо него я прописал cl_gui_container=>screen0
create object grid
exporting
i_appl_events = selected "application event
i_parent = cl_gui_container=>screen0
в программу BCALV_GRID_DND_TREE я решил добавить checkbox-ы на узлы (ну я скопировал прогу всю ;D)....так вот....для этого я добавил в FORM REGISTER_EVENTS
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
SET HANDLER TREE_EVENT_RECEIVER->HANDLE_CHECKBOX_CHANGE FOR TREE1.
в CLASS CL_TREE_EVENT_RECEIVER DEFINITION
METHODS HANDLE_CHECKBOX_CHANGE
FOR EVENT CHECKBOX_CHANGE OF CL_GUI_ALV_TREE
IMPORTING CHECKED.
в CLASS CL_TREE_EVENT_RECEIVER IMPLEMENTATION.
METHOD HANDLE_CHECKBOX_CHANGE.
CHECK NOT CHECKED is INITIAL.
MESSAGE 'YESSS!!!' TYPE 'I'. " ну для проверки сойдет))
ENDMETHOD.
также в FORM ADD_CARRID_LINE
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.
вот и ответ)))
http://scn.sap.com/message/13712885
Цитата: jacknk88 від Грудень 11, 2012, 08:53:48 ДП
вот и ответ)))
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 = ''
в стандартном отчете BCALV_TREE_VERIFY есть много чего интересного: события, кнопки, ссылки, пиктограммы, checkbox-ы.
при желании можно посмотреть все стандартные отчеты при поиске по BCALV_*TREE*