안녕하세요.
지금 Tree(Column Tree) To Tree(Column Tree) Drag&Drop 프로그램을
BCALV_DND_01~04 프로그램을 참고해서 만들고 있는데요,
CLASS lcl_dnd_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
drag FOR EVENT on_drag OF cl_gui_column_tree
IMPORTING node_key item_name drag_drop_object,
drop FOR EVENT on_drop OF cl_gui_column_tree
IMPORTING node_key drag_drop_object,
위와 같이 Event Receiver 클래스를 만들고,
SET HANDLER: g_dnd_receiver->drag FOR g_tree1,
g_dnd_receiver->drop FOR g_tree1.
위와 같이 Event 등록 하고,
DATA: l_effect TYPE i.
CREATE OBJECT g_behaviour_tree1.
l_effect = cl_dragdrop=>copy + cl_dragdrop=>move.
CALL METHOD g_behaviour_tree1->add
EXPORTING
flavor = 'Move'
dragsrc = 'X'
droptarget = 'X'
effect = l_effect.
CALL METHOD g_behaviour_tree1->get_handle
IMPORTING
handle = g_handle_tree1.
위와 같이 Behaviour를 Add 한 후에(테스트를 위해 같은 Tree 내에서 Drag&Drop하는 걸로 코딩)
node-dragdropid = g_handle_tree1.
위와 같이 Handle을 Tree Node의 dragdropid로 등록했습니다.
그리고 프로그램 실행 후, Drag&Drop을 해보면 위에 등록한 Event Receiver의 Method
'drag', 'drop'이 실행되지 않고 PBO로 넘어가서 결국 Drag&Drop이 되지 않는데요.
일단, Event Set&Assign과 Behaviour Add 부분을 잘못 코딩한 것으로 생각되는데
고수님들께서 보시기에 어느부분이 잘못되었는지 지적주시고
혹시 Tree to Tree Drag&Drop 프로그램이 있으면 PBO와 Event Receiver CLASS 부분만
프로그램 소스 부탁드립니다.
감사합니다.