版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、COLUMN tree實(shí)例程序?qū)懺诤瘮?shù)里,在F4幫助時(shí)調(diào)用,效果:選擇屏幕定義SELECT-OPTIONS:s_proj for ZFIT1011-NODID NO INTERVALS .AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_proj-low." P_PROJ . PERFORM FRM_F4_HELP_PROJ .FORM FRM_F4_HELP_PRO
2、J . DATA: LT_BUKRS TYPE ZFITBBUKRS, LS_BUKRS TYPE ZFISBUKRS. DATA: LT_ZFIT1011 TYPE ZFITB1011, LS_ZFIT1
3、011 TYPE ZFIT1011. DATA LT_FIELD LIKE TABLE OF DYNPREAD. DATA LS_FIELD LIKE DYNPREAD. DATA:LV_LVVER TYPE ZFIT1011-LVVER . CLE
4、AR: LT_FIELD ,LV_LVVER , LS_FIELD . REFRESH S_PROJ. CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING DYNAME
5、; = SY-REPID DYNUMB = SY-DYNNR REQUEST
6、0; = 'A' "讀取全屏幕數(shù)據(jù) TABLES DYNPFIELDS = LT_FIELD EXCEPTIO
7、NS INVALID_ABAPWORKAREA = 1 INVALID_DYNPROFIELD = 2 INVALID_DYNPRONAME = 3 INVALID_DYNPRONUMMER = 4
8、60; INVALID_REQUEST = 5 NO_FIELDDESCRIPTION = 6 INVALID_PARAMETER = 7 UNDEFIND_ERR
9、OR = 8 DOUBLE_CONVERSION = 9 STEPL_NOT_FOUND = 10 OTHERS &
10、#160; = 11. LV_LVVER = LS_FIELD-FIELDVALUE . CALL FUNCTION 'ZFI_GRADE_F4_HELP' EXPORTING IV_LVCOD = &
11、#39;FI01' IV_LVVER = 'V01' TABLES TV_BUKRS = LT_BUKRS TV_TAB = LT_ZFIT1011. LOOP AT LT_ZFIT1011
12、160;INTO LS_ZFIT1011 WHERE BUKRS IS NOT INITIAL . GR_BUKRS-SIGN = 'I'. GR_BUKRS-OPTION = 'EQ'. GR_BUKRS-LOW = LS_ZFIT1011-BUKRS.
13、0; CLEAR GR_BUKRS-HIGH. APPEND GR_BUKRS. ENDLOOP. DELETE LT_ZFIT1011 WHERE DWNOD NOT IN GR_BUKRS.* IF LINES( LT_ZFIT1011 ) > 1.* MESSAGE
14、 S000 WITH TEXT-002 DISPLAY LIKE 'E'.* LEAVE LIST-PROCESSING.* ENDIF.* READ TABLE LT_ZFIT1011 INTO LS_ZFIT1011 INDEX 1.* IF SY-SUBRC = 0.*
15、 P_PROJ = LS_ZFIT1011-NODID.* ENDIF. LOOP AT LT_ZFIT1011 INTO LS_ZFIT1011. S_PROJ-SIGN = 'I'. S_PROJ-OPTION = 'EQ'. S_PROJ-LOW =
16、;LS_ZFIT1011-NODID. APPEND S_PROJ. ENDLOOP.ENDFORM. " FRM_F4_HELP_PROJCALL FUNCTION 'ZFI_GRADE_F4_HELP'
17、;CLEAR:GV_REGCT,GV_DISRC. GV_DISRC = IV_DISRC.*- 獲取數(shù)據(jù)源 PERFORM FRM_GET_DATA USING IV_LVCOD IV_LVVER
18、 CHANGING GT_TAB.*- 彈出窗口 CLEAR GT_BUKRS. CALL SCREEN 0100 STARTING AT 50 2 ENDING AT 95 20.* IF EV_REGCT IS SUPPLIED.* EV_REGCT = GV_REGCT.*
19、60; ENDIF. IF GT_BUKRS IS NOT INITIAL. CLEAR TV_BUKRS. LOOP AT GT_BUKRS INTO GS_BUKRS. APPEND GS_BUKRS TO TV_BUKRS. ENDL
20、OOP. ELSE. READ TABLE GT_ITEM_TAB INTO GS_ITEM_TAB WITH KEY CHOSEN = 'X'. IF SY-SUBRC <> 0. CLEAR TV_BUKRS.
21、0;ENDIF. ENDIF. PERFORM FRM_GET_RESULT_TAB CHANGING TV_TAB.FRM_GET_DATAFORM FRM_GET_DATA USING IV_LVCOD TYPE ZFILVCOD &
22、#160; IV_LVVER TYPE ZFILVVER CHANGING CT_TAB TYPE TT_TAB. CLEAR:CT_TAB. "獲取層
23、級(jí)數(shù)據(jù) SELECT * FROM ZFIT1011 INTO TABLE CT_TAB WHERE LVCOD = IV_LVCOD AND LVVER = IV_LVVER.ENDFORM.
24、160; " FRM_GET_DATAFRM_GET_RESULT_TABFORM FRM_GET_RESULT_TAB CHANGING P_TV_TAB TYPE ZFITB1011. CLEAR P_TV_TAB.* 從表中讀出所有打上選擇標(biāo)志的節(jié)點(diǎn) DATA: LS_TAB
25、0; TYPE TY_TAB, LT_P_TAB TYPE TT_TAB. LOOP AT GT_ITEM_TAB INTO GS_ITEM_TAB WHERE CHOSEN = 'X'. READ TABLE GT_TAB INTO LS_TAB W
26、ITH KEY NODID = GS_ITEM_TAB-NODE_KEY. APPEND LS_TAB TO P_TV_TAB. APPEND LS_TAB TO LT_P_TAB. ENDLOOP.* 找各個(gè)節(jié)點(diǎn)的父親節(jié)點(diǎn) PERFORM FIND_UP_NODE USING LT_P_TAB CHANGING
27、 P_TV_TAB.* 刪除多余的祖宗節(jié)點(diǎn)* CLEAR LS_TAB.* READ TABLE GT_TAB INTO LS_TAB WITH KEY UPNOD = ''.* PERFORM DELETE_P_NODE USING LS_TAB CHANGING P_TV_TAB.* 重新排序 IF
28、SY-UCOMM = 'WFTEST05'. PERFORM RE_SORT_NODE CHANGING P_TV_TAB. ENDIF.ENDFORM. " FRM_GET_RESULT_TABRE_SOR
29、T_NODEFORM RE_SORT_NODE CHANGING P_TV_TAB TYPE TT_TAB.* 思路: 從頂層節(jié)點(diǎn)開(kāi)始,遍歷查找下層節(jié)點(diǎn),如果直接第一個(gè)子節(jié)點(diǎn)沒(méi)有找到,* 就直接找子節(jié)點(diǎn)的下一個(gè)同級(jí)節(jié)點(diǎn),依次知道找到第一個(gè)同級(jí)節(jié)點(diǎn),然后調(diào)整* 指針,然后查找該節(jié)點(diǎn)的子節(jié)點(diǎn),按上面的遞推。 FIELD-SYMBOLS: <FS> TYPE TY_TAB. DATA: LS_TAB
30、60;TYPE TY_TAB.* 找到頂層節(jié)點(diǎn) READ TABLE P_TV_TAB ASSIGNING <FS> WITH KEY UPNOD = ''. PERFORM RE_SORT_NODE_METHOD USING <FS> .ENDFORM. &
31、#160; " RE_SORT_NODERE_SORT_NODE_METHODFORM RE_SORT_NODE_METHOD USING P_LS_TAB TYPE TY_TAB. DATA: LS_TAB TYPE TY_TAB.* 先找下級(jí)節(jié)點(diǎn) READ TABLE GT_TAB INTO&
32、#160;LS_TAB WITH KEY DWNOD = P_LS_TAB-NODID.ENDFORM. "re_sort_node_methodScreen 100PROCESS BEFORE OUTPUT. MODULE status_0100.
33、*PROCESS AFTER INPUT. MODULE user_command_0100.MODULE status_0100.MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STA_001'.* SET TITLEBAR 'xxx'. IF GO_TREE IS INITIAL.
34、160; " The Tree Control has not been created yet. " Create a Tree Control and insert nodes into it. PERFORM CREATE_AND_INIT_TREE. ELSE.
35、60; PERFORM FLUSH_TREE. ENDIF.ENDMODULE. " STATUS_0100 OUTPUTSET PF-STATUS 'STA_001'.PERFORM CREATE_AND_INIT_TREE.FORM
36、0;CREATE_AND_INIT_TREE . DATA:LS_HEADER TYPE TREEV_HHDR, LS_EVENT TYPE CNTL_SIMPLE_EVENT, LT_EVENTS TYPE CNTL_SIMPLE_EVENTS.* create a container f
37、or the tree control CREATE OBJECT GO_CONTAINER EXPORTING CONTAINER_NAME = 'CN_TREE' EXC
38、EPTIONS CNTL_ERROR = 1 CNTL_SYSTEM_ERROR = 2
39、0; CREATE_ERROR = 3 LIFETIME_ERROR = 4
40、0; LIFETIME_DYNPRO_DYNPRO_LINK = 5. IF SY-SUBRC <> 0.* MESSAGE a000. ENDIF.* setup the hierarchy header LS_HEADER-HEADING = '請(qǐng)選擇'. "
41、; heading LS_HEADER-WIDTH = 30. " width: 30 characters* create a tree control CREATE OBJECT GO_TREE EXPORTING
42、0; PARENT = GO_CONTAINER NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=
43、>NODE_SEL_MODE_SINGLE ITEM_SELECTION = 'X' HIERARCHY_COLUMN_NAME = 'NODID'
44、60; HIERARCHY_HEADER = LS_HEADER EXCEPTIONS CNTL_SYSTEM_ERROR = 1
45、160; CREATE_ERROR = 2 FAILED
46、 = 3 ILLEGAL_NODE_SELECTION_MODE = 4 ILLEGAL_COLUMN_NAME = 5 LIFETIME_ERROR
47、 = 6. IF SY-SUBRC <> 0.* MESSAGE a000. ENDIF.* create object IF GO_APPLICATION IS INITIAL. CREATE OBJ
48、ECT GO_APPLICATION EXPORTING HANDLE = GO_TREE CB_NODE_DOUBLE_CLICK
49、= 'X'. ENDIF.* assign event handlers in the application class to each desired event " header click CLEAR:LT_EVENTS,LS_EVENT. LS_EVENT-EVENTID = C
50、L_GUI_COLUMN_TREE=>EVENTID_ITEM_DOUBLE_CLICK. LS_EVENT-APPL_EVENT = 'X'. APPEND LS_EVENT TO LT_EVENTS.* 增加checkbox事件 LS_EVENT-EVENTID = CL_GUI_COLUMN_TREE=>EVENTID_CHECKBOX_CHANGE. LS_
51、EVENT-APPL_EVENT = 'X'. APPEND LS_EVENT TO LT_EVENTS. CALL METHOD GO_TREE->SET_REGISTERED_EVENTS EXPORTING EVENTS &
52、#160; = LT_EVENTS EXCEPTIONS CNTL_ERROR = 1 CNTL_
53、SYSTEM_ERROR = 2 ILLEGAL_EVENT_COMBINATION = 3. IF SY-SUBRC <> 0.* MESSAGE A000. ENDIF. IF GO_APPLICATION
54、;IS NOT INITIAL. SET HANDLER GO_APPLICATION->HANDLE_ITEM_DOUBLE_CLICK FOR GO_TREE. SET HANDLER GO_APPLICATION->HANDLE_CHECKBOX_CHANGE FOR GO_TREE. ENDIF.* build data
55、PERFORM BUILD_NODE_AND_ITEM_TABLE USING GT_TAB CHANG
56、ING GT_NODE_TAB GT_ITEM_TAB.*- 為T(mén)REE添加節(jié)點(diǎn) CALL METHOD GO_TREE->ADD_NODES_AND_ITEMS EXPORTING NODE_TABLE
57、; = GT_NODE_TAB ITEM_TABLE = GT_ITEM_TAB ITEM_TABLE_STRUCTURE_NAME
58、 = 'DEMO_ITEM' EXCEPTIONS FAILED = 1
59、0; CNTL_SYSTEM_ERROR = 3 ERROR_IN_TABLES = 4
60、0; DP_ERROR = 5 TABLE_STRUCTURE_NAME_NOT_FOUND = 6. CALL METHOD GO_TR
61、EE->EXPAND_ROOT_NODES* EXPORTING* level_count =* expand_subtree = EXCEPTIONS FAILED
62、; = 1 ILLEGAL_LEVEL_COUNT = 2 CNTL_SYSTEM_ERROR = 3 OTHERS
63、; = 4. IF SY-SUBRC <> 0.* Implement suitable error handling here ENDIF. CALL METHOD CL_GUI_CFW=>FLUSH.ENDFORM.
64、0; " CREATE_AND_INIT_TREEBUILD_NODE_AND_ITEM_TABLE取項(xiàng)目wbs的遞歸函數(shù)取數(shù)順序CT_NODE用于存儲(chǔ)父級(jí)和子節(jié)點(diǎn)關(guān)系CT_ITEM用于存儲(chǔ)每個(gè)節(jié)點(diǎn)的屬性FORM BUILD_NODE_AND_ITEM_TABLE USING IT_TAB TYPE TT_TAB &
65、#160; CHANGING CT_NODE TYPE TREEV_NTAB
66、160; CT_ITEM TYPE TT_DEMO_ITEM.* add by tianhaiguang on 20130423*找出根節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)* 找出根節(jié)點(diǎn)的第一個(gè)節(jié)點(diǎn)
67、0; DATA: LS_TAB1 TYPE TY_TAB, LS_TAB2 TYPE TY_TAB, LT_TAB2 TYPE TT_TAB.* UPNOD父節(jié)點(diǎn)、NXTND下一個(gè)同級(jí)節(jié)點(diǎn)、DWNOD下一級(jí)節(jié)點(diǎn)、NODID當(dāng)前節(jié)點(diǎn) LOOP AT IT_TAB
68、0;INTO LS_TAB1 WHERE UPNOD IS INITIAL. READ TABLE IT_TAB WITH KEY NXTND = LS_TAB1-NODID TRANSPORTING NO FIELDS. " 當(dāng)前節(jié)點(diǎn)有沒(méi)有同名的同級(jí)節(jié)點(diǎn) IF SY-SUBRC = 0.
69、60; CONTINUE. " 跳出本次循環(huán) ELSE. LS_TAB2 = LS_TAB1. " 因?yàn)楦父?jié)點(diǎn)只有一個(gè),所以不用append到表里 ENDIF. ENDLOOP. IF LS_TAB2-NODID IS NOT INITIAL.&
70、#160; APPEND LS_TAB2 TO LT_TAB2. ENDIF." IT_TAB存儲(chǔ)項(xiàng)目wbs結(jié)構(gòu),LT_TAB2目前只有跟節(jié)點(diǎn) PERFORM FRM_RECURSE_SORT USING IT_TAB LT_TAB2
71、60; CHANGING CT_NODE CT_ITEM LS_TAB2." 將取出來(lái)的WBS項(xiàng)目結(jié)構(gòu)賦值給IT_TAB CLEAR IT_TAB. MOVE LT_TAB2 TO IT_TAB.* end add* "當(dāng)有標(biāo)記時(shí),刪除區(qū)域中心記錄.
72、; IF GV_DISRC IS NOT INITIAL. DELETE IT_TAB WHERE RCFLG IS NOT INITIAL. ENDIF.* DATA:LS_TAB TYPE TY_TAB, LT_OUT TYPE
73、0;TT_TAB, LS_NODE TYPE TREEV_NODE, LS_ITEM TYPE TY_DEMO_ITEM, LV_NODID TYPE ZFINODID. "根節(jié)點(diǎn) LOOP AT
74、;IT_TAB INTO LS_TAB WHERE UPNOD IS INITIAL. LS_NODE-NODE_KEY = LS_TAB-NODID. LS_NODE-RELATKEY = ''. LS_NODE-ISFOLDER = ABAP_TRUE. LS_NODE-EX
75、PANDER = ABAP_TRUE.* add by tianhaiguang on 20130423* ls_node-n_image = '3S'.* ls_node-exp_image = '3T'.* end add . APPEND LS_NODE TO
76、160;CT_NODE. CLEAR:LS_NODE. LS_ITEM-ITEM_NAME = 'NODID'. LS_ITEM-NODE_KEY = LS_TAB-NODID. LS_ITEM-CLASS = 3. " '2' text; '3' checkbox;
77、160;'4' button; '5' link LS_ITEM-EDITABLE = 'X'. LS_ITEM-CHOSEN = ''.* modify by tianhaiguang on 20130422.* ls_item-text = ls_tab
78、-nodid && ' ' && ls_tab-ndtxt. CONCATENATE LS_TAB-NODID LS_TAB-NDTXT INTO LS_ITEM-TEXT SEPARATED BY SPACE.* end modify APPEND LS_ITEM TO CT
79、_ITEM. CLEAR:LS_ITEM. CLEAR:LS_TAB. ENDLOOP.* delete by tianhaiguang* SORT it_tab BY nodid upnod rcflg DESCENDING."" dwnod nxtnd.* SORT it_tab BY upnod no
80、did rcflg DESCENDING."" dwnod nxtnd.* end delete. LOOP AT IT_TAB INTO LS_TAB WHERE UPNOD IS NOT INITIAL. "判斷當(dāng)前層的上一級(jí)是否存在 READ TABLE IT_TAB
81、WITH KEY NODID = LS_TAB-UPNOD TRANSPORTING NO FIELDS. IF SY-SUBRC <> 0. CONTINUE. ENDIF. "判斷當(dāng)前層的下一級(jí)是否存在 READ
82、0;TABLE IT_TAB WITH KEY UPNOD = LS_TAB-NODID TRANSPORTING NO FIELDS. IF SY-SUBRC = 0. LS_NODE-ISFOLDER = ABAP_TRUE.* add by tianhaiguang on 2013042
83、3* ls_node-n_image = '3S'.* ls_node-exp_image = '3T'.* end add. ELSE. LS_NODE-ISFOLDER = ABAP_FALSE.* add
84、by tianhaiguang on 20130423 LS_NODE-N_IMAGE = '6D'. LS_NODE-EXP_IMAGE = '6D'.* end add ENDIF. LS_NODE-NODE_KEY =
85、LS_TAB-NODID. LS_NODE-RELATKEY = LS_TAB-UPNOD. APPEND LS_NODE TO CT_NODE. CLEAR:LS_NODE.*<-構(gòu)建節(jié)點(diǎn)信息表-> LS_ITEM-ITEM_NAME = 'NODID'. LS_ITEM-NODE_KEY =&
86、#160;LS_TAB-NODID. LS_ITEM-CLASS = 3."" cl_gui_column_tree=>item_class_checkbox. " '2' text; '3' checkbox; '4' button; '5' link
87、0;LS_ITEM-EDITABLE = 'X'. LS_ITEM-CHOSEN = ''.* modify by tianhaiguang on 20130422.* ls_item-text = ls_tab-nodid && '-' && ls_t
88、ab-ndtxt. CONCATENATE LS_TAB-NODID LS_TAB-NDTXT INTO LS_ITEM-TEXT SEPARATED BY SPACE.* end modify. APPEND LS_ITEM TO CT_ITEM. CLEAR:LS_ITEM. CLEAR:LS_TAB.
89、ENDLOOP.*gv_disrcENDFORM. " BUILD_NODE_AND_ITEM_TABLEFRM_RECURSE_SORTFORM FRM_RECURSE_SORT USING IT_TAB TYPE TT_TAB &
90、#160; IT_TAB2 TYPE TT_TAB CHANGING CT_NOD
91、E TYPE TREEV_NTAB CT_ITEM TYPE TT_DEMO_ITEM
92、0; VALUE(IS_TAB) TYPE TY_TAB. DATA: LS_TAB TYPE TY_TAB, LS_NODE TYPE TREEV_NODE,
93、160; LS_ITEM TYPE TY_DEMO_ITEM. DATA: LT_TAB TYPE TT_TAB.* UPNOD父節(jié)點(diǎn)、NXTND下一個(gè)同級(jí)節(jié)點(diǎn)、DWNOD下一級(jí)節(jié)點(diǎn)、NODID當(dāng)前節(jié)點(diǎn)* 在之前就派尋 IF IS_TAB-DWNOD IS NOT INITIAL. " 如果父節(jié)點(diǎn)的子節(jié)點(diǎn)不是空* 因?yàn)楦?jié)點(diǎn)關(guān)聯(lián)了其中一個(gè)下級(jí)節(jié)點(diǎn),所以直接取下一級(jí)節(jié)點(diǎn)
94、 READ TABLE IT_TAB WITH KEY NODID = IS_TAB-DWNOD INTO LS_TAB. IF LS_TAB-NODID IS NOT INITIAL. APPEND LS_TAB TO IT_TAB2. " IT_TAB2增加二級(jí)節(jié)點(diǎn)
95、、三級(jí)節(jié)點(diǎn)。直到底層 ENDIF. PERFORM FRM_RECURSE_SORT USING IT_TAB IT_TAB2
96、60; CHANGING CT_NODE CT_ITEM LS_TAB.* 沒(méi)有直接下一級(jí)節(jié)點(diǎn)* 找下一個(gè)同級(jí)節(jié)點(diǎn) IF IS_TAB-NXTND IS NOT INITIAL.* 有下一級(jí)同級(jí)節(jié)點(diǎn) READ TABLE IT_TAB WITH KEY NODID = IS_TA
97、B-NXTND INTO LS_TAB. IF LS_TAB-NODID IS NOT INITIAL. APPEND LS_TAB TO IT_TAB2. " IT_TAB2增加同級(jí)節(jié)點(diǎn) ENDIF.
98、60; PERFORM FRM_RECURSE_SORT USING IT_TAB IT_TAB2 CHANGING CT_NODE&
99、#160;CT_ITEM LS_TAB. ENDIF. ELSE. " 如果父節(jié)點(diǎn)的子節(jié)點(diǎn)是空,也就是最底層的節(jié)點(diǎn)* 沒(méi)有直接下一級(jí)節(jié)點(diǎn)* 找下一個(gè)同級(jí)節(jié)點(diǎn) IF IS_TAB-NXTND IS NOT INITIAL.* 有下一級(jí)同級(jí)節(jié)點(diǎn) READ TABLE IT_TAB WITH
100、 KEY NODID = IS_TAB-NXTND INTO LS_TAB. IF LS_TAB-NODID IS NOT INITIAL. APPEND LS_TAB TO IT_TAB2. ENDIF.
101、60; PERFORM FRM_RECURSE_SORT USING IT_TAB IT_TAB2 CHANGING
102、160;CT_NODE CT_ITEM LS_TAB. ENDIF. ENDIF.ENDFORM. "Recurse_sortPERFORM FLUSH_TREE當(dāng)checkbox選中時(shí),聯(lián)動(dòng)其他節(jié)點(diǎn)的動(dòng)作FORM FLUSH_TREE
103、0;. DATA:LT_NODE_KEY_TABLE TYPE TREEV_NKS, LS_NODE_KEY TYPE TV_NODEKEY. DATA:LV_YEAR1(4) TYPE C, LV_MONTH1(2) TYPE C, LV_
104、YEAR2(4) TYPE C, LV_MONTH2(2) TYPE C. DATA:LV_INT1 TYPE I, LV_INT2 TYPE I. DATA:LV_RC TYPE C. DATA: LT_NODE_EX TYPE TREE
105、V_NKS. REFRESH:LT_NODE_KEY_TABLE.* CALL METHOD GO_TREE->GET_NODE_KEY_TABLE* IMPORTING* NODE_KEY_TABLE = LT_NODE_KEY_TABLE.* 獲取key CALL METHOD GO_TREE->GET_EXPANDED_NODE
106、S CHANGING NODE_KEY_TABLE = LT_NODE_EX. DATA: LS_ITEM TYPE DEMO_ITEM. LOOP AT GT_ITEM_TAB INTO LS_ITEM. LS_NODE_KEY = LS_ITEM-NODE_KEY. &
107、#160; APPEND LS_NODE_KEY TO LT_NODE_KEY_TABLE. ENDLOOP. IF LT_NODE_KEY_TABLE IS NOT INITIAL. CALL METHOD GO_TREE->DELETE_ALL_ITEMS_OF_NODES EXPORTING
108、 NODE_KEY_TABLE = LT_NODE_KEY_TABLE EXCEPTIONS ERROR_IN_NODE_KEY_TABLE = 1
109、; OTHERS = 2. ENDIF. CALL METHOD GO_TREE->DELETE_ALL_NODES. CALL METHOD GO_TREE->ADD_NODES_AND_ITEMS
110、 EXPORTING NODE_TABLE = GT_NODE_TAB ITEM_TABLE &
111、#160; = GT_ITEM_TAB ITEM_TABLE_STRUCTURE_NAME = 'DEMO_ITEM'.* IF SY-UNAME <> 'WFTEST05'.* CALL METHOD GO_TREE->EXPAND_ROOT_NODES*
112、160; EXPORTING* EXPAND_SUBTREE = 'X'* LEVEL_COUNT = '0'* &
113、#160;EXCEPTIONS* ILLEGAL_LEVEL_COUNT = 1* OTHERS = 2.* ENDIF. CALL METHOD GO
114、_TREE->EXPAND_NODES EXPORTING NODE_KEY_TABLE = LT_NODE_EX.* IF GO_TREE IS NOT INITIAL.* CALL METHOD GO_TREE->SET_SCREEN_UPDATE*
115、;EXPORTING* UPDATE = 'X'.* ENDIF.ENDFORM. " FLUSH_TREEMODULE user_command_0100.MODULE
116、;user_command_0100 INPUT. gv_ok = ok_code. CALL METHOD cl_gui_cfw=>dispatch. CASE gv_ok. WHEN 'CANL'."取消 LEAVE TO SCREEN 0.
117、160;WHEN 'OK'. "確認(rèn) PERFORM frm_confirm_data USING gv_regct. WHEN 'EXPA'."展開(kāi) PERFORM frm_expand_node. WHEN 'C
118、OLL'."折疊 PERFORM frm_collapse_node. WHEN OTHERS. ENDCASE. CLEAR:gv_ok.ENDMODULE. PERFORM frm_confirm_data FORM FRM_CONFIRM_DATA USING &
119、#160; CV_REGCT TYPE ZFINODID.* DATA:LV_NODE_KEY TYPE TV_NODEKEY.* IF GO_TREE IS NOT INITIAL.* "獲取所選擇的節(jié)點(diǎn)* CALL METHOD GO_TREE->GET_SELECTED_ITEM* &
120、#160; IMPORTING* NODE_KEY = LV_NODE_KEY* item_name =* E
121、XCEPTIONS* FAILED = 1* CNTL_SYSTEM_ERROR = 2* NO_ITEM_SELECTION =
122、60;3* OTHERS = 4.* IF SY-SUBRC = 0.* CV_REGCT = LV_NODE_KEY.* ENDIF.*
123、160; IF CV_REGCT IS NOT INITIAL. DATA: LS_ITEM TYPE DEMO_ITEM, LS_NODE TYPE ZFIT1011. IF GT_ITEM_TAB IS NOT INITIAL. LOO
124、P AT GT_ITEM_TAB INTO LS_ITEM WHERE CHOSEN = 'X'. READ TABLE GT_TAB INTO LS_NODE WITH KEY DWNOD = '' NODID = LS_ITEM-NODE_KEY .
125、; IF SY-SUBRC = 0 AND LS_NODE-RCFLG <> 'X'. GS_BUKRS-BUKRS = LS_NODE-BUKRS. APPEND GS_BUKRS TO GT_BUKRS.
126、; ENDIF. ENDLOOP. ENDIF. SORT GT_BUKRS BY BUKRS. DELETE ADJACENT DUPLICATES FROM GT_BUKRS. LEAVE TO SCREEN 0.* ENDIF.* ENDIF.E
127、NDFORM. PERFORM frm_expand_node.FORM FRM_EXPAND_NODE . DATA:LV_NODE_KEY TYPE TV_NODEKEY. IF GO_TREE IS NOT INITIAL. "獲取所選擇的節(jié)點(diǎn) CAL
128、L METHOD GO_TREE->GET_SELECTED_ITEM IMPORTING NODE_KEY = LV_NODE_KEY EXCEPTIONS
129、60; FAILED = 1 CNTL_SYSTEM_ERROR = 2 NO_ITEM_SELECTION = 3
130、; OTHERS = 4. IF LV_NODE_KEY IS INITIAL. MESSAGE TEXT-T01 TYPE 'S'. RETURN. &
131、#160; ENDIF. "展開(kāi)選定節(jié)點(diǎn)及子節(jié)點(diǎn)" CALL METHOD GO_TREE->EXPAND_NODE EXPORTING NODE_KEY &
132、#160; = LV_NODE_KEY* level_count = EXPAND_SUBTREE = ABAP_TRUE EXCEPTIONS FAILED = 1 ILLEGAL_LEVEL_COUNT = 2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 松原長(zhǎng)嶺縣衛(wèi)健系統(tǒng)事業(yè)單位招聘工作人員考試試卷及答案
- 成都市第四人民醫(yī)院招聘考試試卷及答案
- 新學(xué)期計(jì)劃模板錦集9篇資料
- 新學(xué)期的計(jì)劃模板十篇資料
- 2014年貴州省畢節(jié)市中考數(shù)學(xué)試卷(含解析版)
- 二級(jí)建造師之二建建設(shè)工程法規(guī)及相關(guān)知識(shí)題庫(kù)【典優(yōu)】
- 中建建筑施工現(xiàn)場(chǎng)工具式標(biāo)準(zhǔn)化圖集
- 2020年遼寧本溪中考滿分作文《我的重要時(shí)刻》2
- 導(dǎo)視系統(tǒng)套餐執(zhí)行手冊(cè)
- 鎢鉬礦選礦廠環(huán)境保護(hù)與綠色礦山建設(shè)考核試卷
- 小學(xué)道法二 我自豪 我是中國(guó)人課件
- 井控安全事故心得體會(huì)通用8篇
- 漢字文化解密學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 管道試壓方案樣本
- 四年級(jí)下冊(cè)英語(yǔ)人教PEP版課件U1-A Let's spell
- 智慧中藥房管理與服務(wù)規(guī)范
- 【沃爾瑪財(cái)務(wù)風(fēng)險(xiǎn)管理研究5400字(論文)】
- 農(nóng)產(chǎn)品分揀配送中心運(yùn)營(yíng)方案
- matlab教程(完整版)課件
- 部編版四年級(jí)語(yǔ)文上冊(cè)看拼音寫(xiě)漢字全冊(cè)(附答案)
- 2023年公路水運(yùn)工程試驗(yàn)檢測(cè)師《水運(yùn)結(jié)構(gòu)與地基》考試題庫(kù)大全-上(單選題)
評(píng)論
0/150
提交評(píng)論