FORM build_node_table
USING
node_table TYPE node_table_type.
DATA: node LIKE mtreesnode.
CLEAR node.
node-node_key = 'Root'.
node-isfolder = 'X'. " a folder.
node-text = 'AIRPLANE'.
APPEND node TO node_table.
** LOOP AT gt_pa9701.
* CLEAR node.
* node-node_key = 'Root'.
** node-relatkey = 'Root'.
* node-isfolder = 'X'.
* node-text = gt_pa9701-pernr.
* node-expander = 'X' .
* APPEND node TO node_table.
** ENDLOOP.
BREAK-POINT.
CLEAR node.
node-node_key = 'AA'.
node-relatkey = 'Root'.
node-n_image = '@10@'.
node-text = 'AA'.
APPEND node TO node_table.
CLEAR node.
node-node_key = 'AZ'.
node-relatkey = 'Root'.
node-style = cl_gui_simple_tree=>style_emphasized.
node-text = 'AZ'.
APPEND node TO node_table.
CLEAR node.
node-node_key = 'DL'.
node-relatkey = 'Root'.
node-expander = ' '.
* NODE-HIDDEN = ' '.
node-disabled = 'X'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-text = 'DL'.
APPEND node TO node_table.
상기와 같이 수정하니 되네요.
조금 설명이 부족했는지...
node_key가 계속 중복이란 말씀을 드렸는데 여전히 올려주신 코드도 그러네요.
소스 한번 보세요..
loop을 돌던 안돌던간에
tree, 즉 나무 가지에서 자기 부모가 뭐고 자기를 뭘로 한다라고 설정하는
값들이 잘못들어가서 그렇습니다.
node_key도 중복되면 안되는거 같구요(loop 앞에서 root, loop에서 root를 선언하고 있어서 에러)
댓글 4
-
SD2
2009.03.26 20:52
-
정군
2009.03.26 21:16
simple말고 다른것은 어떤식으로 되는지는 잘 모르겠습니다만...
A
B
C
D
E
라고 보이고 싶다면
relatkey node_key
A A
A B
B C
A D
D E
라는 식으로 node_table 데이터가 있어야지 loop을 돌면서 relatkey와 node_key를 넣어줄 수 있겠죠..
위에 댓글 달듯이 하면 loop 도는 수만큼 node_key는 빈 값이면서
relatkey = 'Root'인 것이 node_table에 계속 들어가니 문제지요.
loop을 돌려서 나오고 싶은 결과가 제가 위에 그런것 처럼
node_table에 어떻게 데이터가 들어가야 할지 고민해 보는게 좋을 듯 합니다.
-
SD2
2009.03.26 22:02
위에는 정리를 안해서 소스를 올린거 같습니나. 노드간의 연결은 일단 뒤로 미뤄두고요~
clear node.
node-node_key = 'Root'.
node-isfolder = 'X'.
node-text = '계층구조'.
append node to node_table.
loop at gt_pa0001 into gs_pa0001.
clear node.
node-node_key = 'Child1'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
endloop.
break-point.
이런식으로 하나만 루프를 돌려도 에러가 나느것두
위에서 말씀하신 에러인가여?
-
SD2
2009.03.26 22:26
감사합니다. 정군님.
해결된것 같습니다. loop돌리면서 node_key를 Child1이라고 지정해 두고 계속 사용하니 런타임 오류가 났네요.
변수처리해서 해결했습니다.
답변 감사합니다.
제가 이해력이 부족해 잘 못하는것 같습니다.
제가 하고 싶은것은 노드에서 노드를 타고 들어가는 것을 하고 싶습니다. 제가 첨부한 사진처럼요..
loop를 안하면 잘 됩니다.
그러나 여기에 이렇게 loop만 쒸우면 덤프~
clear node.
node-node_key = 'Root'.
node-isfolder = 'X'. " a folder.
node-text = gs_pa9701-pernr.
append node to node_table.
loop at gt_pa0001 into gs_pa0001.
clear node.
* node-node_key = 'Child1'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
clear node.
* node-node_key = 'Child2'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
clear node.
* node-node_key = 'Child3'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
clear node.
* node-node_key = 'Child4'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
clear node.
* node-node_key = 'Child5'.
node-relatkey = 'Root'.
node-isfolder = 'X'.
node-text = gs_pa0001-pernr.
node-expander = 'X' .
append node to node_table.
endloop.