树状导航程序的最后一次更新

作者:ABAP老白 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
树状导航程序的最后一次更新 - 封面图
树状导航程序的最后一次更新 - 封面图

树状导航程序本来只是我一次午饭后随手写的一个程序,一个中午加一个晚上做的,但是有兄弟觉着还不错,于是就有了第二版,改进了很多内容。第二版发布后又有兄弟提出了一些建议,于是更改了第三版,改进点大概有下面几点:

1、添加了完善的文档功能,并支持文档由电脑直接拖到SAP界面

2、添加新的节点后,不再重新在数据库读数刷新表,大大提升程序效率

3、优化用户操作细节

4、优化代码

界面:

树状导航程序的最后一次更新 - 封面图
树状导航程序的最后一次更新 - 封面图

*&---------------------------------------------------------------------**& Report ZNAVI_TREE*&---------------------------------------------------------------------**& 可配置树状导航*& Baitianzhen*&---------------------------------------------------------------------*REPORT znavi_tree NO STANDARD PAGE HEADING.

TABLES:zum1.CLASS lcl_receiver DEFINITION DEFERRED.DATA: go_container TYPE REF TO cl_gui_custom_container, go_spliter TYPE REF TO cl_gui_splitter_container, go_cont_tree TYPE REF TO cl_gui_container, go_cont_imag TYPE REF TO cl_gui_container, go_tree TYPE REF TO cl_gui_alv_tree, go_grid TYPE REF TO cl_gui_alv_grid, go_dragdrop TYPE REF TO cl_dragdrop, go_toolbar TYPE REF TO cl_gui_toolbar, go_picture TYPE REF TO cl_gui_picture, go_receiver TYPE REF TO lcl_receiver, gt_fldtree TYPE lvc_t_fcat, gt_fldpop TYPE lvc_t_fcat, gv_okcode TYPE sy-ucomm, gv_picurl TYPE char255, gv_fflag TYPE c, "文件夹标识 gv_swidth TYPE i, gv_hwidth TYPE i.DATA: gs_out TYPE zum1, gt_out TYPE TABLE OF zum1, gt_top TYPE TABLE OF zum1, gt_all TYPE TABLE OF zum1 WITH NON-UNIQUE SORTED KEY k1 COMPONENTS upnod posnr.DATA: BEGIN OF gs_atta OCCURS 0, fname TYPE string, fleng TYPE i, erdat TYPE erdat, erzet TYPE erzet, ernam TYPE ernam, seled TYPE c, fcont TYPE w3mimetabtype, END OF gs_atta.DATA: gt_atta LIKE TABLE OF gs_atta.

*----------------------------------------------------------------------** CLASS lcl_dragdropobj DEFINITION*----------------------------------------------------------------------*CLASS lcl_dragdropobj DEFINITION. PUBLIC SECTION. DATA: ls_out TYPE zum1, lv_nkey TYPE lvc_nkey, "拖动的KEY lv_pkey TYPE lvc_nkey. "父KEYENDCLASS. "lcl_dragdropobj DEFINITION

*----------------------------------------------------------------------** CLASS lcl_receiver DEFINITION*----------------------------------------------------------------------*CLASS lcl_receiver DEFINITION. PUBLIC SECTION. METHODS grid_drop_external_files FOR EVENT drop_external_files OF cl_gui_alv_grid IMPORTING files. METHODS on_drop_external_files FOR EVENT on_drop_external_files OF cl_gui_alv_tree IMPORTING node_key files. METHODS handle_node_double_click FOR EVENT node_double_click OF cl_gui_alv_tree IMPORTING node_key sender. METHODS handle_item_double_click FOR EVENT item_double_click OF cl_gui_alv_tree IMPORTING fieldname node_key sender. METHODS handle_link_click FOR EVENT link_click OF cl_gui_alv_tree IMPORTING node_key fieldname sender. METHODS handle_drag FOR EVENT on_drag OF cl_gui_alv_tree IMPORTING sender node_key fieldname drag_drop_object. METHODS handle_drop FOR EVENT on_drop OF cl_gui_alv_tree IMPORTING sender drag_drop_object node_key. METHODS on_function_selected FOR EVENT function_selected OF cl_gui_toolbar IMPORTING fcode. METHODS on_dropdown_clicked FOR EVENT dropdown_clicked OF cl_gui_toolbar IMPORTING fcode posx posy.ENDCLASS. "lcl_receiver DEFINITION

SELECT-OPTIONS: s_nodid FOR zum1-nodid NO INTERVALS.SELECT-OPTIONS: s_exnod FOR zum1-nodid NO INTERVALS.PARAMETERS: p_objid TYPE w3objid DEFAULT 'ENJOYSAP_LOGO', p_title TYPE cua_tit_tx DEFAULT '可配置树状导航'(t00), p_auchk AS CHECKBOX DEFAULT 'X', p_chang AS CHECKBOX DEFAULT 'X', p_ddrop AS CHECKBOX DEFAULT 'X', p_exall AS CHECKBOX DEFAULT 'X'.SELECTION-SCREEN SKIP.PARAMETERS var TYPE raldb_vari MODIF ID v. SELECTION-SCREEN BEGIN OF SCREEN 1001 AS WINDOW.PARAMETERS: p_ndtxt TYPE zum1-ndtxt OBLIGATORY, p_ntype TYPE zum1-ntype AS LISTBOX VISIBLE LENGTH 20 OBLIGATORY MODIF ID a, p_tcode TYPE zum1-tcode OBLIGATORY MODIF ID a, p_nicon TYPE zum1-nicon MODIF ID a, p_kverm TYPE zum1-kverm, p_w3url TYPE zum1-w3url.SELECTION-SCREEN END OF SCREEN 1001.

INITIALIZATION. PERFORM catset TABLES gt_fldtree USING: 'NTYPE' '类型'(f01), 'TCODE' '事务/报表/维护表等'(f02), 'KVERM' '备注'(f03), 'W3URL' '链接'(f04), 'NODID' '节点ID'(f05).

...

ABAP老白

关于作者:ABAP老白

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「树状导航程序的最后一次更新.md」整理生成,仅用于内部技术分享与学习交流。