SAP Control Framework实战(ALV TREE)

(主要代码)
DATA: G_ALV_TREE TYPE REF TO CL_GUI_ALV_TREE, "定义ALV_TREE类的对象指针变量
G_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID, "定义ALV_GRID类的对象指针
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, "定义CL_GUI_CUSTOM_CONTAINER的对象指针变量
G_CUSTOM_CANTAINER_GRID TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: MR_TOOLBAR TYPE REF TO CL_GUI_TOOLBAR. "定义TOOLBAR的对象指针

CHECK G_ALV_TREE IS INITIAL.
DATA L_ALVTREE_CONTAINER_NAME(20) TYPE C . "定义临时变量 定制对象的名称
L_ALVTREE_CONTAINER_NAME = 'CUS_CON'.
DATA L_HIERARCHY_HEADER TYPE TREEV_HHDR.

* 创建容器
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING
* PARENT =
CONTAINER_NAME = L_ALVTREE_CONTAINER_NAME
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
.
IF SY-SUBRC <> 0.
MESSAGE 'ERROR' TYPE 'X'.
ENDIF.

* 创建ALV_TREE.
CREATE OBJECT G_ALV_TREE
EXPORTING
* LIFETIME =
PARENT = G_CUSTOM_CONTAINER
* SHELLSTYLE =
NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
* HIDE_SELECTION =
ITEM_SELECTION = ''
NO_TOOLBAR = ''
NO_HTML_HEADER = 'X'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
ILLEGAL_NODE_SELECTION_MODE = 5
FAILED = 6
ILLEGAL_COLUMN_NAME = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE 'ERROR' TYPE 'X'.
ENDIF.
* 创建ALVTREE等级表头
PERFORM BUILD_HIERARCHY_HEADER CHANGING L_HIERARCHY_HEADER.
* 创建ALVTREE显示列表头
PERFORM BUILD_FIELDCATALOG.
* 创建ALVTREE显示
CALL METHOD G_ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
IS_HIERARCHY_HEADER = L_HIERARCHY_HEADER
CHANGING
IT_OUTTAB = GT_OUT[]
* IT_FILTER =
IT_FIELDCATALOG = GT_FIELDCATALOG
.
* 创建ALVTREE等级
PERFORM CREATE_HIERARCHY.
** 更改工具条
PERFORM CHANGE_TOOLBAR.
* 注册事件
PERFORM REGISTER_EVENTS.

CALL METHOD G_ALV_TREE->FRONTEND_UPDATE.

*&---------------------------------------------------------------------*
*& Form BUILD_HIERARCHY_HEADER
*&---------------------------------------------------------------------*
* 创建ALV等级表头
*----------------------------------------------------------------------*
* <--P_HIERARCHY_HEADER 表头属性
*----------------------------------------------------------------------*
FORM BUILD_HIERARCHY_HEADER CHANGING P_HIERARCHY_HEADER TYPE TREEV_HHDR.
P_HIERARCHY_HEADER-HEADING = '流程管理'.
P_HIERARCHY_HEADER-TOOLTIP = ''.
P_HIERARCHY_HEADER-WIDTH = 55.
P_HIERARCHY_HEADER-WIDTH_PIX = ' '.
ENDFORM. " BUILD_HIERARCHY_HEADER

*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .
DATA: LS_FIELDCATALOG TYPE LVC_S_FCAT.
* 定义宏 用于添加ALVTREE表头信息
DEFINE ADD_ALVTREE_COLUMN.
CLEAR: LS_FIELDCATALOG.
LS_FIELDCATALOG-COL_POS = &1.
LS_FIELDCATALOG-FIELDNAME = &2.
LS_FIELDCATALOG-COLTEXT = &3.
LS_FIELDCATALOG-OUTPUTLEN = &4.
LS_FIELDCATALOG-NO_ZERO = &5.
LS_FIELDCATALOG-ICON = &6.
LS_FIELDCATALOG-NO_OUT = &7.
APPEND LS_FIELDCATALOG TO GT_FIELDCATALOG .
END-OF-DEFINITION.
REFRESH GT_FIELDCATALOG.
*可以设置节点上带出哪些数据
ADD_ALVTREE_COLUMN 1 'PROCMO' '所属模块' '16' '' '' ''.
ADD_ALVTREE_COLUMN 2 'LCLX' '辽河单据类型' '16' '' '' ''.
ADD_ALVTREE_COLUMN 3 'PROCNODE' '流程节点' '10' '' '' ''.
ADD_ALVTREE_COLUMN 4 'POSITIONCODE' '岗位代码' '16' '' '' ''.
ADD_ALVTREE_COLUMN 5 'POSITIONNAME' '岗位' '40' '' '' ''.
ADD_ALVTREE_COLUMN 6 'DATAB' '有效开始时间' '16' 'X' '' ''.
ADD_ALVTREE_COLUMN 7 'DATBI' '有效截止日期' '16' 'X' '' ''.
ADD_ALVTREE_COLUMN 2 'PROCID' 'C' '16' 'X' '' 'X'.
ADD_ALVTREE_COLUMN 2 'PROCVER' 'A' '16' 'X' '' 'X'.
ADD_ALVTREE_COLUMN 2 'PROCNAME' 'B' '16' 'X' '' 'X'.
ADD_ALVTREE_COLUMN 8 'FUNCNAME' '取数函数' '40' '' '' ''.
ADD_ALVTREE_COLUMN 9 'ROUTINENAME' '节点取数例程' '40' '' '' ''.
* ADD_ALVTREE_COLUMN 5 'PROCMO' '所属模块' '16' '' '' ''.

ENDFORM. " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*& Form CREATE_HIERARCHY
*&---------------------------------------------------------------------*
* 创建ALVTREE等级
*----
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值