code as bellow

  1. *&---------------------------------------------------------------------*
  2. *& Include COLUMN_TREE_CONTROL_DEMOTOP *
  3. *& *
  4. *&---------------------------------------------------------------------*
  5.  
  6. REPORT SAPCOLUMN_TREE_CONTROL_DEMO MESSAGE-ID TREE_CONTROL_MSG.
  7.  
  8. CLASS LCL_APPLICATION DEFINITION DEFERRED.
  9. CLASS CL_GUI_CFW DEFINITION LOAD.
  10.  
  11. * CAUTION: MTREEITM is the name of the item structure which must
  12. * be defined by the programmer. DO NOT USE MTREEITM!
  13. TYPES: ITEM_TABLE_TYPE LIKE STANDARD TABLE OF MTREEITM
  14. WITH DEFAULT KEY.
  15.  
  16. DATA: G_APPLICATION TYPE REF TO LCL_APPLICATION,
  17. G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
  18. G_TREE TYPE REF TO CL_GUI_COLUMN_TREE,
  19. G_OK_CODE TYPE SY-UCOMM.
  20.  
  21. * Fields on Dynpro 100
  22. DATA: G_EVENT(30),
  23. G_NODE_KEY TYPE TV_NODEKEY,
  24. G_ITEM_NAME TYPE TV_ITMNAME,
  25. G_HEADER_NAME TYPE TV_HDRNAME.
  26.  
  27. CONSTANTS:
  28. BEGIN OF c_nodekey,
  29. root type tv_nodekey value 'Root', "#EC NOTEXT
  30. child1 TYPE tv_nodekey VALUE 'Child1', "#EC NOTEXT
  31. * child2 type tv_nodekey value 'Child2', "#EC NOTEXT
  32. new1 TYPE tv_nodekey VALUE 'New1', "#EC NOTEXT
  33. new2 TYPE tv_nodekey VALUE 'New2', "#EC NOTEXT
  34. * new3 type tv_nodekey value 'New3', "#EC NOTEXT
  35. * new4 type tv_nodekey value 'New4', "#EC NOTEXT
  36. END OF c_nodekey,
  37. BEGIN OF c_column,
  38. column1 TYPE tv_itmname VALUE 'Column1', "#EC NOTEXT
  39. column2 TYPE tv_itmname VALUE 'Column2', "#EC NOTEXT
  40. column3 TYPE tv_itmname VALUE 'Column3', "#EC NOTEXT
  41. END OF c_column.
  42.  
  43. *** INCLUDE COLUMN_TREE_CONTROL_DEMOTOP
  1. *----------------------------------------------------------------------*
  2. * INCLUDE COLUMN_TREE_CONTROL_DEMOCL1 *
  3. *----------------------------------------------------------------------*
  4.  
  5. CLASS LCL_APPLICATION DEFINITION.
  6.  
  7. PUBLIC SECTION.
  8. METHODS:
  9. HANDLE_NODE_DOUBLE_CLICK
  10. FOR EVENT NODE_DOUBLE_CLICK
  11. OF CL_GUI_COLUMN_TREE
  12. IMPORTING NODE_KEY,
  13. HANDLE_HEADER_CLICK
  14. FOR EVENT HEADER_CLICK
  15. OF CL_GUI_COLUMN_TREE
  16. IMPORTING HEADER_NAME,
  17. HANDLE_EXPAND_NO_CHILDREN
  18. FOR EVENT EXPAND_NO_CHILDREN
  19. OF CL_GUI_COLUMN_TREE
  20. IMPORTING NODE_KEY,
  21. HANDLE_ITEM_DOUBLE_CLICK
  22. FOR EVENT ITEM_DOUBLE_CLICK
  23. OF CL_GUI_COLUMN_TREE
  24. IMPORTING NODE_KEY ITEM_NAME,
  25. HANDLE_BUTTON_CLICK
  26. FOR EVENT BUTTON_CLICK
  27. OF CL_GUI_COLUMN_TREE
  28. IMPORTING NODE_KEY ITEM_NAME,
  29. HANDLE_LINK_CLICK
  30. FOR EVENT LINK_CLICK
  31. OF CL_GUI_COLUMN_TREE
  32. IMPORTING NODE_KEY ITEM_NAME,
  33. HANDLE_CHECKBOX_CHANGE
  34. FOR EVENT CHECKBOX_CHANGE
  35. OF CL_GUI_COLUMN_TREE
  36. IMPORTING NODE_KEY ITEM_NAME CHECKED.
  37. ENDCLASS. "LCL_APPLICATION DEFINITION
  38.  
  39. *----------------------------------------------------------------------*
  40. * CLASS LCL_APPLICATION IMPLEMENTATION
  41. *----------------------------------------------------------------------*
  42. *
  43. *----------------------------------------------------------------------*
  44. CLASS LCL_APPLICATION IMPLEMENTATION.
  45.  
  46. METHOD HANDLE_NODE_DOUBLE_CLICK.
  47. " this method handles the node double click event of the tree
  48. " control instance
  49.  
  50. " show the key of the double clicked node in a dynpro field
  51. G_EVENT = 'NODE_DOUBLE_CLICK'.
  52. G_NODE_KEY = NODE_KEY.
  53. CLEAR: G_ITEM_NAME, G_HEADER_NAME.
  54. ENDMETHOD. "HANDLE_NODE_DOUBLE_CLICK
  55.  
  56. METHOD HANDLE_HEADER_CLICK.
  57. " this method handles header click event of the tree
  58. " control instance
  59.  
  60. " show the name of the clicked header in a dynpro field
  61. G_EVENT = 'HEADER_CLICK'.
  62. G_HEADER_NAME = HEADER_NAME.
  63. CLEAR: G_NODE_KEY, G_ITEM_NAME.
  64. ENDMETHOD. "HANDLE_HEADER_CLICK
  65.  
  66. METHOD HANDLE_ITEM_DOUBLE_CLICK.
  67. " this method handles the item double click event of the tree
  68. " control instance
  69.  
  70. " show the key of the node and the name of the item
  71. " of the double clicked item in a dynpro field
  72. G_EVENT = 'ITEM_DOUBLE_CLICK'.
  73. G_NODE_KEY = NODE_KEY.
  74. G_ITEM_NAME = ITEM_NAME.
  75. CLEAR G_HEADER_NAME.
  76. ENDMETHOD. "HANDLE_ITEM_DOUBLE_CLICK
  77.  
  78. METHOD HANDLE_LINK_CLICK.
  79. " this method handles the link click event of the tree
  80. " control instance
  81.  
  82. " show the key of the node and the name of the item
  83. " of the clicked link in a dynpro field
  84. G_EVENT = 'LINK_CLICK'.
  85. G_NODE_KEY = NODE_KEY.
  86. G_ITEM_NAME = ITEM_NAME.
  87. CLEAR G_HEADER_NAME.
  88. ENDMETHOD. "HANDLE_LINK_CLICK
  89.  
  90. METHOD HANDLE_BUTTON_CLICK.
  91. " this method handles the button click event of the tree
  92. " control instance
  93.  
  94. " show the key of the node and the name of the item
  95. " of the clicked button in a dynpro field
  96. G_EVENT = 'BUTTON_CLICK'.
  97. G_NODE_KEY = NODE_KEY.
  98. G_ITEM_NAME = ITEM_NAME.
  99. CLEAR G_HEADER_NAME.
  100. ENDMETHOD. "HANDLE_BUTTON_CLICK
  101.  
  102. METHOD HANDLE_CHECKBOX_CHANGE.
  103. " this method handles the checkbox_change event of the tree
  104. " control instance
  105.  
  106. " show the key of the node and the name of the item
  107. " of the clicked checkbox in a dynpro field
  108. G_EVENT = 'CHECKBOX_CHANGE'.
  109. G_NODE_KEY = NODE_KEY.
  110. G_ITEM_NAME = ITEM_NAME.
  111. CLEAR G_HEADER_NAME.
  112. ENDMETHOD. "HANDLE_CHECKBOX_CHANGE
  113.  
  114. METHOD HANDLE_EXPAND_NO_CHILDREN.
  115. DATA: NODE_TABLE TYPE TREEV_NTAB,
  116. NODE TYPE TREEV_NODE,
  117. ITEM_TABLE TYPE ITEM_TABLE_TYPE,
  118. ITEM TYPE MTREEITM.
  119.  
  120. * show the key of the expanded node in a dynpro field
  121. G_EVENT = 'EXPAND_NO_CHILDREN'.
  122. G_NODE_KEY = NODE_KEY.
  123. CLEAR: G_ITEM_NAME, G_HEADER_NAME.
  124.  
  125. IF node_key = c_nodekey-child1.
  126. * add two nodes
  127.  
  128. * Node with key 'New1'
  129. CLEAR NODE.
  130. node-node_key = c_nodekey-New1.
  131. node-relatkey = c_nodekey-child1.
  132. NODE-RELATSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD.
  133. APPEND NODE TO NODE_TABLE.
  134.  
  135. * Node with key 'New2'
  136. CLEAR NODE.
  137. node-node_key = c_nodekey-New2.
  138. node-relatkey = c_nodekey-child1.
  139. NODE-RELATSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD.
  140. NODE-N_IMAGE = '@10@'.
  141. APPEND NODE TO NODE_TABLE.
  142.  
  143. * Items of node with key 'New1'
  144. CLEAR ITEM.
  145. item-node_key = c_nodekey-New1.
  146. item-item_name = c_column-Column1.
  147. item-class = cl_gui_column_tree=>item_class_text.
  148. item-text = 'New1 Col. 1'(n11).
  149. APPEND ITEM TO ITEM_TABLE.
  150.  
  151. CLEAR ITEM.
  152. item-node_key = c_nodekey-New1.
  153. item-item_name = c_column-Column2.
  154. ITEM-CLASS = CL_GUI_COLUMN_TREE=>ITEM_CLASS_LINK.
  155. item-t_image = '@3C@'.
  156. APPEND ITEM TO ITEM_TABLE.
  157.  
  158. CLEAR ITEM.
  159. item-node_key = c_nodekey-New1.
  160. item-item_name = c_column-Column3.
  161. item-class = cl_gui_column_tree=>item_class_text.
  162. item-text = 'New1 Col. 3'(n13).
  163. APPEND ITEM TO ITEM_TABLE.
  164.  
  165. * Items of node with key 'New2'
  166. CLEAR ITEM.
  167. item-node_key = c_nodekey-New2.
  168. item-item_name = c_column-Column1.
  169. item-class = cl_gui_column_tree=>item_class_text.
  170. item-text = 'New2 Col. 1'(n21).
  171. APPEND ITEM TO ITEM_TABLE.
  172.  
  173. CLEAR ITEM.
  174. item-node_key = c_nodekey-New2.
  175. item-item_name = c_column-Column2.
  176. item-class = cl_gui_column_tree=>item_class_text.
  177. item-text = 'New2 Col. 2'(n22).
  178. APPEND ITEM TO ITEM_TABLE.
  179.  
  180. CLEAR ITEM.
  181. item-node_key = c_nodekey-New2.
  182. item-item_name = c_column-Column3.
  183. item-class = cl_gui_column_tree=>item_class_text.
  184. item-text = 'New2 Col. 3'(n23).
  185. APPEND ITEM TO ITEM_TABLE.
  186.  
  187. CALL METHOD G_TREE->ADD_NODES_AND_ITEMS
  188. EXPORTING
  189. NODE_TABLE = NODE_TABLE
  190. ITEM_TABLE = ITEM_TABLE
  191. ITEM_TABLE_STRUCTURE_NAME = 'MTREEITM'
  192. EXCEPTIONS
  193. FAILED = 1
  194. CNTL_SYSTEM_ERROR = 3
  195. ERROR_IN_TABLES = 4
  196. DP_ERROR = 5
  197. TABLE_STRUCTURE_NAME_NOT_FOUND = 6.
  198. IF SY-SUBRC <> 0.
  199. MESSAGE A000.
  200. ENDIF.
  201. endif.
  202. ENDMETHOD. "HANDLE_EXPAND_NO_CHILDREN
  203.  
  204. ENDCLASS. "LCL_APPLICATION IMPLEMENTATION
  1. *-------------------------------------------------------------------
  2. ***INCLUDE column_tree_control_demoO01 .
  3. *-------------------------------------------------------------------
  4. *&---------------------------------------------------------------------*
  5. *& Module PBO_0400 OUTPUT
  6. *&---------------------------------------------------------------------*
  7. * text
  8. *----------------------------------------------------------------------*
  9. MODULE PBO_100 OUTPUT.
  10. SET PF-STATUS 'MAIN'.
  11. IF G_TREE IS INITIAL.
  12. " The Tree Control has not been created yet.
  13. " Create a Tree Control and insert nodes into it.
  14. PERFORM CREATE_AND_INIT_TREE.
  15. ENDIF.
  16. ENDMODULE. " PBO_0100 OUTPUT
  17. *** INCLUDE column_tree_control_demoO01
  1. *-------------------------------------------------------------------
  2. ***INCLUDE column_tree_control_demoI01 .
  3. *-------------------------------------------------------------------
  4. *&---------------------------------------------------------------------*
  5. *& Module PAI_0400 INPUT
  6. *&---------------------------------------------------------------------*
  7. * text
  8. *----------------------------------------------------------------------*
  9. MODULE PAI_100 INPUT.
  10. data: return_code type i.
  11. * CL_GUI_CFW=>DISPATCH must be called if events are registered
  12. * that trigger PAI
  13. * this method calls the event handler method of an event
  14. CALL METHOD CL_GUI_CFW=>DISPATCH
  15. importing return_code = return_code.
  16. if return_code <> cl_gui_cfw=>rc_noevent.
  17. " a control event occured => exit PAI
  18. clear g_ok_code.
  19. exit.
  20. endif.
  21.  
  22. CASE G_OK_CODE.
  23. WHEN 'BACK'. " Finish program
  24. IF NOT G_CUSTOM_CONTAINER IS INITIAL.
  25. " destroy tree container (detroys contained tree control, too)
  26. CALL METHOD G_CUSTOM_CONTAINER->FREE
  27. EXCEPTIONS
  28. CNTL_SYSTEM_ERROR = 1
  29. CNTL_ERROR = 2.
  30. IF SY-SUBRC <> 0.
  31. MESSAGE A000.
  32. ENDIF.
  33. CLEAR G_CUSTOM_CONTAINER.
  34. CLEAR G_TREE.
  35. ENDIF.
  36. LEAVE PROGRAM.
  37. ENDCASE.
  38.  
  39. * CAUTION: clear ok code!
  40. CLEAR G_OK_CODE.
  41. ENDMODULE. " PAI_0100 INPUT
  42. *** INCLUDE column_tree_control_demoI01
  1. *-------------------------------------------------------------------
  2. ***INCLUDE column_tree_control_demoF01 .
  3. *-------------------------------------------------------------------
  4.  
  5. *&---------------------------------------------------------------------*
  6. *& Form CREATE_AND_INIT_TREE
  7. *&---------------------------------------------------------------------*
  8. * text
  9. *----------------------------------------------------------------------*
  10. * --> p1 text
  11. * <-- p2 text
  12. *----------------------------------------------------------------------*
  13. FORM CREATE_AND_INIT_TREE.
  14. DATA: NODE_TABLE TYPE TREEV_NTAB,
  15. ITEM_TABLE TYPE ITEM_TABLE_TYPE,
  16. event type cntl_simple_event,
  17. EVENTS TYPE CNTL_SIMPLE_EVENTS,
  18. HIERARCHY_HEADER TYPE TREEV_HHDR.
  19.  
  20. * create a container for the tree control
  21. CREATE OBJECT G_CUSTOM_CONTAINER
  22. EXPORTING
  23. " the container is linked to the custom control with the
  24. " name 'TREE_CONTAINER' on the dynpro
  25. CONTAINER_NAME = 'TREE_CONTAINER'
  26. EXCEPTIONS
  27. CNTL_ERROR = 1
  28. CNTL_SYSTEM_ERROR = 2
  29. CREATE_ERROR = 3
  30. LIFETIME_ERROR = 4
  31. LIFETIME_DYNPRO_DYNPRO_LINK = 5.
  32. IF SY-SUBRC <> 0.
  33. MESSAGE A000.
  34. ENDIF.
  35. * setup the hierarchy header
  36. hierarchy_header-heading = 'Hierarchy Header'(roo).
  37. " heading
  38. HIERARCHY_HEADER-WIDTH = 30. " width: 30 characters
  39.  
  40. * create a tree control
  41.  
  42. * After construction, the control contains one column in the
  43. * hierarchy area. The name of this column
  44. * is defined via the constructor parameter HIERACHY_COLUMN_NAME.
  45. CREATE OBJECT G_TREE
  46. EXPORTING
  47. PARENT = G_CUSTOM_CONTAINER
  48. NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
  49. ITEM_SELECTION = 'X'
  50. hierarchy_column_name = c_column-Column1
  51. HIERARCHY_HEADER = HIERARCHY_HEADER
  52. EXCEPTIONS
  53. CNTL_SYSTEM_ERROR = 1
  54. CREATE_ERROR = 2
  55. FAILED = 3
  56. ILLEGAL_NODE_SELECTION_MODE = 4
  57. ILLEGAL_COLUMN_NAME = 5
  58. LIFETIME_ERROR = 6.
  59. IF SY-SUBRC <> 0.
  60. MESSAGE A000.
  61. ENDIF.
  62.  
  63. * define the events which will be passed to the backend
  64. " node double click
  65. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_NODE_DOUBLE_CLICK.
  66. event-appl_event = 'X'. " process PAI if event occurs
  67. append event to events.
  68.  
  69. " item double click
  70. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_ITEM_DOUBLE_CLICK.
  71. event-appl_event = 'X'.
  72. append event to events.
  73.  
  74. " expand no children
  75. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_EXPAND_NO_CHILDREN.
  76. event-appl_event = 'X'.
  77. append event to events.
  78.  
  79. " link click
  80. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_LINK_CLICK.
  81. event-appl_event = 'X'.
  82. append event to events.
  83.  
  84. " button click
  85. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_button_click.
  86. event-appl_event = 'X'.
  87. append event to events.
  88.  
  89. " checkbox change
  90. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_checkbox_change.
  91. event-appl_event = 'X'.
  92. append event to events.
  93.  
  94. " header click
  95. event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_header_click.
  96. event-appl_event = 'X'.
  97. append event to events.
  98.  
  99. CALL METHOD G_TREE->SET_REGISTERED_EVENTS
  100. EXPORTING
  101. EVENTS = EVENTS
  102. EXCEPTIONS
  103. CNTL_ERROR = 1
  104. CNTL_SYSTEM_ERROR = 2
  105. ILLEGAL_EVENT_COMBINATION = 3.
  106. IF SY-SUBRC <> 0.
  107. MESSAGE A000.
  108. ENDIF.
  109.  
  110. * assign event handlers in the application class to each desired event
  111. SET HANDLER G_APPLICATION->HANDLE_NODE_DOUBLE_CLICK FOR G_TREE.
  112. SET HANDLER G_APPLICATION->HANDLE_ITEM_DOUBLE_CLICK FOR G_TREE.
  113. SET HANDLER G_APPLICATION->HANDLE_EXPAND_NO_CHILDREN FOR G_TREE.
  114. SET HANDLER G_APPLICATION->HANDLE_LINK_CLICK FOR G_TREE.
  115. SET HANDLER G_APPLICATION->HANDLE_BUTTON_CLICK FOR G_TREE.
  116. SET HANDLER G_APPLICATION->HANDLE_CHECKBOX_CHANGE FOR G_TREE.
  117. SET HANDLER G_APPLICATION->HANDLE_HEADER_CLICK FOR G_TREE.
  118.  
  119. * insert two additional columns
  120.  
  121. * Column2
  122. CALL METHOD G_TREE->ADD_COLUMN
  123. EXPORTING
  124. name = c_column-Column2
  125. width = 21
  126. header_text = 'Column2'(co2)
  127. EXCEPTIONS
  128. COLUMN_EXISTS = 1
  129. ILLEGAL_COLUMN_NAME = 2
  130. TOO_MANY_COLUMNS = 3
  131. ILLEGAL_ALIGNMENT = 4
  132. DIFFERENT_COLUMN_TYPES = 5
  133. CNTL_SYSTEM_ERROR = 6
  134. FAILED = 7
  135. PREDECESSOR_COLUMN_NOT_FOUND = 8.
  136. IF SY-SUBRC <> 0.
  137. MESSAGE A000.
  138. ENDIF.
  139. * Column3
  140. CALL METHOD G_TREE->ADD_COLUMN
  141. EXPORTING
  142. name = c_column-Column3
  143. width = 21
  144. alignment = cl_gui_column_tree=>align_right
  145. header_text = 'Column3'(co3)
  146. EXCEPTIONS
  147. COLUMN_EXISTS = 1
  148. ILLEGAL_COLUMN_NAME = 2
  149. TOO_MANY_COLUMNS = 3
  150. ILLEGAL_ALIGNMENT = 4
  151. DIFFERENT_COLUMN_TYPES = 5
  152. CNTL_SYSTEM_ERROR = 6
  153. FAILED = 7
  154. PREDECESSOR_COLUMN_NOT_FOUND = 8.
  155. IF SY-SUBRC <> 0.
  156. MESSAGE A000.
  157. ENDIF.
  158.  
  159. * add some nodes to the tree control
  160. * NOTE: the tree control does not store data at the backend. If an
  161. * application wants to access tree data later, it must store the
  162. * tree data itself.
  163.  
  164. PERFORM BUILD_NODE_AND_ITEM_TABLE USING NODE_TABLE ITEM_TABLE.
  165.  
  166. CALL METHOD G_TREE->ADD_NODES_AND_ITEMS
  167. EXPORTING
  168. NODE_TABLE = NODE_TABLE
  169. ITEM_TABLE = ITEM_TABLE
  170. ITEM_TABLE_STRUCTURE_NAME = 'MTREEITM'
  171. EXCEPTIONS
  172. FAILED = 1
  173. CNTL_SYSTEM_ERROR = 3
  174. ERROR_IN_TABLES = 4
  175. DP_ERROR = 5
  176. TABLE_STRUCTURE_NAME_NOT_FOUND = 6.
  177. IF SY-SUBRC <> 0.
  178. MESSAGE A000.
  179. ENDIF.
  180.  
  181. * expand the node with key 'Root'
  182. CALL METHOD G_TREE->EXPAND_NODE
  183. EXPORTING
  184. node_key = c_nodekey-Root
  185. EXCEPTIONS
  186. FAILED = 1
  187. ILLEGAL_LEVEL_COUNT = 2
  188. CNTL_SYSTEM_ERROR = 3
  189. NODE_NOT_FOUND = 4
  190. CANNOT_EXPAND_LEAF = 5.
  191. IF SY-SUBRC <> 0.
  192. MESSAGE A000.
  193. ENDIF.
  194.  
  195. ENDFORM. " CREATE_AND_INIT_TREE
  196.  
  197. *&---------------------------------------------------------------------*
  198. *& Form build_node_and_item_table
  199. *&---------------------------------------------------------------------*
  200. * text
  201. *----------------------------------------------------------------------*
  202. * --> p1 text
  203. * <-- p2 text
  204. *----------------------------------------------------------------------*
  205.  
  206. FORM BUILD_NODE_AND_ITEM_TABLE
  207. USING
  208. NODE_TABLE TYPE TREEV_NTAB
  209. ITEM_TABLE TYPE ITEM_TABLE_TYPE.
  210.  
  211. DATA: NODE TYPE TREEV_NODE,
  212. ITEM TYPE MTREEITM.
  213.  
  214. * Build the node table.
  215.  
  216. * Caution: The nodes are inserted into the tree according to the order
  217. * in which they occur in the table. In consequence, a node must not
  218. * must not occur in the node table before its parent node.
  219.  
  220. * Node with key 'Root'
  221. node-node_key = c_nodekey-Root.
  222. " Key of the node
  223. CLEAR NODE-RELATKEY. " Special case: A root node has no parent
  224. CLEAR NODE-RELATSHIP. " node.
  225.  
  226. NODE-HIDDEN = ' '. " The node is visible,
  227. NODE-DISABLED = ' '. " selectable,
  228. NODE-ISFOLDER = 'X'. " a folder.
  229. CLEAR NODE-N_IMAGE. " Folder-/ Leaf-Symbol in state "closed":
  230. " use default.
  231. CLEAR NODE-EXP_IMAGE. " Folder-/ Leaf-Symbol in state "open":
  232. " use default
  233. CLEAR NODE-EXPANDER. " see below.
  234. APPEND NODE TO NODE_TABLE.
  235.  
  236. * Node with key 'Child1'
  237. node-node_key = c_nodekey-child1.
  238. " Key of the node
  239. " Node is inserted as child of the node with key 'Root'.
  240. node-relatkey = c_nodekey-Root.
  241. NODE-RELATSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD.
  242.  
  243. NODE-HIDDEN = ' '.
  244. NODE-DISABLED = ' '.
  245. NODE-ISFOLDER = 'X'.
  246. CLEAR NODE-N_IMAGE.
  247. CLEAR NODE-EXP_IMAGE.
  248. NODE-EXPANDER = 'X'. " The node is marked with a '+', although
  249. " it has no children. When the user clicks on the
  250. " + to open the node, the event expand_nc is
  251. " fired. The programmerr can
  252. " add the children of the
  253. " node within the event handler of the expand_nc
  254. " event (see callback handle_expand_nc).
  255. APPEND NODE TO NODE_TABLE.
  256.  
  257. * The items of the nodes:
  258.  
  259. * Node with key 'Root'
  260. CLEAR ITEM.
  261. item-node_key = c_nodekey-Root.
  262. item-item_name = c_column-Column1. " Item of Column 'Column1'
  263. item-class = cl_gui_column_tree=>item_class_text. " Text Item
  264. item-text = 'Root Col. 1'(ro1).
  265. APPEND ITEM TO ITEM_TABLE.
  266.  
  267. CLEAR ITEM.
  268. item-node_key = c_nodekey-Root.
  269. item-item_name = c_column-Column2. " Item of Column 'Column2'
  270. item-class = cl_gui_column_tree=>item_class_text.
  271. item-text = 'Root Col. 2'(ro2).
  272. APPEND ITEM TO ITEM_TABLE.
  273.  
  274. CLEAR ITEM.
  275. item-node_key = c_nodekey-Root.
  276. item-item_name = c_column-Column3. " Item of Column 'Column3'
  277. " Item is a link (click on link fires event LINK_CLICK)
  278. item-class = cl_gui_column_tree=>item_class_link.
  279. item-text = 'Root Col. 3'(ro3).
  280. APPEND ITEM TO ITEM_TABLE.
  281.  
  282. * Node with key 'Child1'
  283. CLEAR ITEM.
  284. item-node_key = c_nodekey-Child1.
  285. item-item_name = c_column-Column1.
  286. item-class = cl_gui_column_tree=>item_class_text.
  287. item-text = 'Child1 Col. 1'(c11).
  288. APPEND ITEM TO ITEM_TABLE.
  289.  
  290. CLEAR ITEM.
  291. item-node_key = c_nodekey-Child1.
  292. item-item_name = c_column-Column2. "
  293. item-class = cl_gui_column_tree=>item_class_button. " Item is a button
  294. item-text = 'Child1 Col. 2'(c12).
  295. ITEM-T_IMAGE = '@0B@'.
  296. APPEND ITEM TO ITEM_TABLE.
  297.  
  298. CLEAR ITEM.
  299. item-node_key = c_nodekey-Child1.
  300. item-item_name = c_column-Column3.
  301. " Item is a checkbox
  302. ITEM-CLASS = CL_GUI_COLUMN_TREE=>ITEM_CLASS_CHECKBOX.
  303. ITEM-EDITABLE = 'X'.
  304. item-text = 'Child1 Col. 3'(c13).
  305. ITEM-T_IMAGE = '@0C@'.
  306. APPEND ITEM TO ITEM_TABLE.
  307.  
  308. ENDFORM. " build_node_and_item_table
  309.  
  310. *** INCLUDE column_tree_control_demoF01
  1. START-OF-SELECTION.
  2. * create the application object
  3. * this object is needed to handle the ABAP Objects Events of
  4. * Controls
  5. CREATE OBJECT G_APPLICATION.
  6.  
  7. SET SCREEN 100.

SAP Column tree的更多相关文章

  1. SAP Easy tree

    *&---------------------------------------------------------------------* *& Include SIMPLE_T ...

  2. SAP Tree editor(树形结构)

    SAP List Tree 效果 源代码 *&---------------------------------------------------------------------* *& ...

  3. 屏幕 Dynpro

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. ALV详解:OO ALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. SAP CRM 树视图(TREE VIEW)

    树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view) ...

  6. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number

    100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...

  7. U面经Prepare: Print Binary Tree With No Two Nodes Share The Same Column

    Give a binary tree, elegantly print it so that no two tree nodes share the same column. Requirement: ...

  8. SAP Material Type on Classification Tree(ClassMaster management)

    SAP Material Type on Classification Tree(ClassMaster management) 1. Classification Tree 是 luxottica ...

  9. SAP Drag or drop tree

    1 *&---------------------------------------------------------------------* 2 *& Report RSDEM ...

随机推荐

  1. 高精度减法(C++实现)

    高精度减法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式减法计算 注:在本文中,我们默认输入的第一个数为被减数,且被减数大于减数 原理基本上与高精度加法相同,仅 ...

  2. vue 组件复用 - component

    vue 组件复用 - component vue 组件复用 就是对 component 标签的使用 先看图 下图看使用 结果: 可以看到 在箱包 这一项,我将banner 组件用了两次,我 每次 点击 ...

  3. css的过渡transition和动画animation

    过渡 过渡(transition)是CSS3中具有颠覆性的特性之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时元素添加效果.过渡动画:是从一个状态 ...

  4. Ubuntu 系统安装,VMware

    系统版本   ubuntu-18.04.5-server-amd64.iso 1.自定义安装 2.默认下一步 3. 稍后安装操作系统 4.选择ubuntu 64位 5.选额安装的目录 6.设置虚拟机c ...

  5. NS2中couldn‘t read file “../tcl/mobility/scene/cbr-3-test“: no such file or directory解决方法

    运行wireless.tcl 文件时报错:couldn't read file "../../uAMPS/ns-leach.tcl": no such file or direct ...

  6. linux下虚拟环境venv的创建与使用以及virtualenvwrapper

    1.linux安装学习python虚拟环境 linux提供的虚拟环境工具 有virtualenv pipenv 2.我们需求是在linux上可以运行 一个django2 运行一个django1 3.安 ...

  7. linux的简介与安装

    linux简介: https://www.cnblogs.com/pyyu/p/9277153.html Linux就是个操作系统:它和Windows XP.Windows7.8.10什么的一样就是一 ...

  8. Flutter网络请求和数据解析

    一:前言 - 什么是反射机制,Flutter为什么禁用反射机制? 在Flutter中它的网络请求和数据解析稍微的比较麻烦一点,因为Flutter不支持反射机制.相信大家都看到这么一条,就是Flutte ...

  9. CentOS6安装PLEX

    CentOS6安装PLEX 一.安装使用PLEX 1.1 安装 1)下载 https://www.plex.tv/downloads/ plexmediaserver-1.11.3.4803-c40b ...

  10. linux篇-linux修改网卡名(亲测有效)

    1查看网卡ip addr 2cd /etc/sysconfig/network-scripts Ls查看 3mv ifcfg-eno16777736 ifcfg-eth0重命名,然后编辑 最后一行加入 ...