20170225-ALV tree 显示
1.写程序,
2.话屏幕9000,CALL SCREEN 9000.(双击屏幕进去画个容器就ok,+OK_CODE,+去掉注释)
3.处理好ALV 的PBO 初始化,处理用户事件PAO,user command ,定义的按钮都要有用途;
|
|
||||||||||||||||
*&---------------------------------------------------------------------*
*& Report YDEMO_005
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT Z_BARRY_ALV_TREE1_BOM MESSAGE-ID OO.
TABLES: STPOX.
INCLUDE <ICON>.
CLASS: CL_GUI_COLUMN_TREE DEFINITION LOAD,
CL_GUI_CFW DEFINITION LOAD .
DATA: TREE1 TYPE REF TO CL_GUI_ALV_TREE ,
MR_TOOLBAR TYPE REF TO CL_GUI_TOOLBAR .
DATA: GS_STPOX TYPE STPOX,
GT_STPOX TYPE STPOX OCCURS ,
GT_FIELDCATALOG TYPE LVC_T_FCAT,
GT_ITEM_LAYOUT TYPE LVC_T_LACI,
GS_ITEM_LAYOUT TYPE LVC_S_LACI,
OKCODE LIKE SY-UCOMM .
TYPES: BEGIN OF GS_F.
INCLUDE STRUCTURE STPOX.
TYPES: NODE_KEY TYPE LVC_NKEY,
END OF GS_F.
DATA: GS_XSTPOX TYPE GS_F ,
GT_XSTPOX TYPE GS_F OCCURS . DATA: L_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA: WA_TOPMAT TYPE CSTMAT,
WA_DSTST TYPE CSDATA-XFELD.
DATA: IT_MATCAT TYPE STANDARD TABLE OF CSCMAT. PARAMETERS:P_MATNR LIKE MAST-MATNR OBLIGATORY,
P_WERKS LIKE MAST-WERKS OBLIGATORY,
P_STLAL LIKE MAST-STLAL OBLIGATORY DEFAULT '', "可选的 BOM
P_CAPID LIKE RC29L-CAPID OBLIGATORY DEFAULT 'PP01'."BOM应用程序 *PARAMETERS: p_matnr LIKE mara-matnr, "DEFAULT 'YW25K',
* p_werks LIKE ekpo-werks. "DEFAULT '1010' . START-OF-SELECTION.
PERFORM GETDATA.
CALL SCREEN . *&---------------------------------------------------------------------*
*& Form getdata
*&---------------------------------------------------------------------*
FORM GETDATA. *&bom explosion
* CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
** EXPORTING
** FTREL = ' '
** ALEKZ = ' '
** ALTVO = ' '
** AUFSW = ' '
** AUMGB = ' '
** AUMNG =
** AUSKZ = ' '
** AMIND = ' '
** BAGRP = ' '
** BEIKZ = ' '
** BESSL = ' '
** BGIXO = ' '
** BREMS = ' '
** CAPID = 'STD1'
** CHLST = ' '
** COSPR = ' '
** CUOBJ =
** CUOVS =
** CUOLS = ' '
** DATUV =
** DELNL = ' '
** DRLDT = ' '
** EHNDL = ' '
** EMENG =
** ERSKZ = ' '
** ERSSL = ' '
** FBSTP = ' '
** KNFBA = ' '
** KSBVO = ' '
** MBWLS = ' '
** MKTLS = 'X'
** MDMPS = ' '
** MEHRS = ' '
** MKMAT = ' '
** MMAPS = ' '
** SALWW = ' '
** SPLWW = ' '
** MMORY = ' '
** MTNRV = ' '
** NLINK = ' '
** POSTP = ' '
** RNDKZ = ' '
** RVREL = ' '
** SANFR = ' '
** SANIN = ' '
** SANKA = ' '
** SANKO = ' '
** SANVS = ' '
** SCHGT = ' '
** STKKZ = ' '
** STLAL = ' '
** STLAN = ' '
** STPST =
** SVWVO = 'X'
** WERKS = ' '
** NORVL = ' '
** MDNOT = ' '
** PANOT = ' '
** QVERW = ' '
** VERID = ' '
** VRSVO = 'X'
** IMPORTING
** TOPMAT =
** DSTST =
* TABLES
* STB =
** MATCAT =
** EXCEPTIONS
** ALT_NOT_FOUND =
** CALL_INVALID =
** MATERIAL_NOT_FOUND =
** MISSING_AUTHORIZATION =
** NO_BOM_FOUND =
** NO_PLANT_DATA =
** NO_SUITABLE_BOM_FOUND =
** CONVERSION_ERROR =
** OTHERS = CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = P_CAPID "'CAD1'
DATUV = SY-DATUM
EMENG = '' "基本用量
MTNRV = P_MATNR
WERKS = P_WERKS MKTLS = 'X' "p_key
MEHRS = 'X' "p_mehrs
STLAL = P_STLAL "可选BOM
STLAN = '' "BOM 用途
* emeng =
IMPORTING
TOPMAT = WA_TOPMAT
DSTST = WA_DSTST
TABLES
STB = GT_STPOX
MATCAT = IT_MATCAT
EXCEPTIONS
ALT_NOT_FOUND =
CALL_INVALID =
MATERIAL_NOT_FOUND =
MISSING_AUTHORIZATION =
NO_BOM_FOUND =
NO_PLANT_DATA =
NO_SUITABLE_BOM_FOUND =
CONVERSION_ERROR =
OTHERS = .
* CASE sy-subrc .
* WHEN .
* MESSAGE e899(fi) WITH 'alt_not_found'.
* WHEN .
* MESSAGE e899(fi) WITH 'call_invalid '.
* WHEN .
* MESSAGE e899(fi) WITH 'material_not_found'.
* WHEN .
* MESSAGE e899(fi) WITH 'missing_authorization'.
* WHEN .
* MESSAGE e899(fi) WITH 'no_bom_found'.
* WHEN .
* MESSAGE e899(fi) WITH 'no_plant_data'.
* WHEN .
* MESSAGE e899(fi) WITH 'no_suitable_bom_found'.
* WHEN .
* MESSAGE e899(fi) WITH 'conversion_error'.
* WHEN .
* MESSAGE e899(fi) WITH 'OTHERS Error'.
* ENDCASE.
LOOP AT GT_STPOX INTO GS_STPOX.
MOVE-CORRESPONDING GS_STPOX TO GS_XSTPOX .
APPEND GS_XSTPOX TO GT_XSTPOX.
ENDLOOP.
ENDFORM. "getdata
*----------------------------------------------------------------------*
* MODULE status_9000 OUTPUT
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'MAIN'.
SET TITLEBAR 'TITLE'.
IF TREE1 IS INITIAL.
PERFORM INIT_TREE.
ENDIF.
CALL METHOD CL_GUI_CFW=>FLUSH.
ENDMODULE. " PBO_9000 OUTPUT
*----------------------------------------------------------------------*
* MODULE user_command_9000 INPUT
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
CASE OKCODE.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
CALL METHOD TREE1->FREE.
LEAVE PROGRAM .
WHEN OTHERS.
CALL METHOD CL_GUI_CFW=>DISPATCH.
ENDCASE.
CLEAR OKCODE.
CALL METHOD CL_GUI_CFW=>FLUSH.
ENDMODULE. " okcode INPUT
*&---------------------------------------------------------------------*
*& Form init_tree
*&---------------------------------------------------------------------*
FORM INIT_TREE .
PERFORM BUILD_FIELDCATALOG.
* IF sy-batch IS INITIAL.
* CREATE OBJECT l_custom_container
* EXPORTING
* container_name = 'TREE1'
* EXCEPTIONS
* cntl_error =
* cntl_system_error =
* create_error =
* lifetime_error =
* lifetime_dynpro_dynpro_link = .
* IF sy-subrc <> .
* MESSAGE e000 WITH '创建容器:TREE1 错误'.
* ENDIF.
* ENDIF.
CREATE OBJECT TREE1
EXPORTING
* parent = l_custom_container
PARENT = CL_GUI_CONTAINER=>SCREEN0
NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
ITEM_SELECTION = 'X'
NO_HTML_HEADER = 'X'
NO_TOOLBAR = ' '
EXCEPTIONS
CNTL_ERROR =
CNTL_SYSTEM_ERROR =
CREATE_ERROR =
LIFETIME_ERROR =
ILLEGAL_NODE_SELECTION_MODE =
FAILED =
ILLEGAL_COLUMN_NAME = .
IF SY-SUBRC <> .
MESSAGE E000 WITH '创建TREE错误'.
ENDIF.
DATA L_HIERARCHY_HEADER TYPE TREEV_HHDR.
PERFORM BUILD_HIERARCHY_HEADER CHANGING L_HIERARCHY_HEADER.
DATA: LS_VARIANT TYPE DISVARIANT.
LS_VARIANT-REPORT = SY-REPID.
CALL METHOD TREE1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_HIERARCHY_HEADER = L_HIERARCHY_HEADER
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_SAVE = 'A'
IS_VARIANT = LS_VARIANT
CHANGING
IT_OUTTAB = GT_STPOX "table must be emty !!
IT_FIELDCATALOG = GT_FIELDCATALOG.
DATA: L1 TYPE LVC_NKEY ,L2 TYPE LVC_NKEY ,L3 TYPE LVC_NKEY ,L4 TYPE LVC_NKEY ,
L5 TYPE LVC_NKEY ,L6 TYPE LVC_NKEY ,L7 TYPE LVC_NKEY ,L8 TYPE LVC_NKEY ,
L_KEY TYPE LVC_NKEY,
L_LAST_KEY TYPE LVC_NKEY ,
ADDED .
LOOP AT GT_XSTPOX INTO GS_XSTPOX .
MOVE-CORRESPONDING GS_XSTPOX TO GS_STPOX.
CASE GS_STPOX-STUFE .
WHEN ''.
L_KEY = ''.
WHEN ''.
L_KEY = L1.
WHEN ''.
L_KEY = L2.
WHEN ''.
L_KEY = L3.
WHEN ''.
L_KEY = L4.
WHEN ''.
L_KEY = L5.
ENDCASE.
PERFORM ADD_COMPLETE_LINE USING GS_STPOX L_KEY
CHANGING L_LAST_KEY.
GS_XSTPOX-NODE_KEY = L_LAST_KEY.
CASE GS_STPOX-STUFE .
WHEN ''.
L1 = L_LAST_KEY.
WHEN ''.
L2 = L_LAST_KEY.
WHEN ''.
L3 = L_LAST_KEY.
WHEN ''.
L4 = L_LAST_KEY.
WHEN ''.
L5 = L_LAST_KEY.
WHEN ''.
L6 = L_LAST_KEY.
ENDCASE.
MODIFY GT_XSTPOX FROM GS_XSTPOX .
ENDLOOP.
CALL METHOD TREE1->UPDATE_CALCULATIONS.
CALL METHOD TREE1->FRONTEND_UPDATE.
ENDFORM. " init_tree
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'STPOX'
CHANGING
CT_FIELDCAT = GT_FIELDCATALOG.
DATA: LS_FIELDCATALOG TYPE LVC_S_FCAT.
LOOP AT GT_FIELDCATALOG INTO LS_FIELDCATALOG.
* CASE ls_fieldcatalog-fieldname.
* WHEN 'CARRID' OR 'CONNID' OR 'FLDATE'.
* ls_fieldcatalog-no_out = 'X'.
* ls_fieldcatalog-key = ''.
* WHEN 'PRICE' OR 'SEATSOCC' OR 'SEATSMAX' OR 'PAYMENTSUM'.
** ls_fieldcatalog-do_sum = 'X'.
* WHEN 'PLANETYPE'.
* ls_fieldcatalog-edit = 'X'.
* ls_fieldcatalog-style = cl_gui_alv_grid=>mc_style_enabled .
* ENDCASE.
MODIFY GT_FIELDCATALOG FROM LS_FIELDCATALOG.
ENDLOOP.
ENDFORM. " build_fieldcatalog
*&---------------------------------------------------------------------*
*& Form build_hierarchy_header
*&---------------------------------------------------------------------*
FORM BUILD_HIERARCHY_HEADER CHANGING
P_HIERARCHY_HEADER TYPE TREEV_HHDR.
*
P_HIERARCHY_HEADER-HEADING = 'BOM层次'.
P_HIERARCHY_HEADER-TOOLTIP = 'ToolTip'.
P_HIERARCHY_HEADER-WIDTH = .
P_HIERARCHY_HEADER-WIDTH_PIX = ''.
*
ENDFORM. " build_hierarchy_header
*&---------------------------------------------------------------------*
*& Form add_complete_line
*&---------------------------------------------------------------------*
FORM ADD_COMPLETE_LINE USING PS_STPOX TYPE STPOX
P_RELAT_KEY TYPE LVC_NKEY
CHANGING P_NODE_KEY TYPE LVC_NKEY.
DATA: L_NODE_TEXT TYPE LVC_VALUE.
* set item-layout
DATA: LT_ITEM_LAYOUT TYPE LVC_T_LAYI,
LS_ITEM_LAYOUT TYPE LVC_S_LAYI.
DATA: STUFE_NUM() TYPE N.
LS_ITEM_LAYOUT-FIELDNAME = TREE1->C_HIERARCHY_COLUMN_NAME.
LS_ITEM_LAYOUT-CLASS = CL_GUI_COLUMN_TREE=>ITEM_CLASS_TEXT.
* ls_item_layout-editable = 'X'.
* ls_item_layout-chosen = 'X'. " 设置为选中状态
APPEND LS_ITEM_LAYOUT TO LT_ITEM_LAYOUT.
* l_node_text = ps_stpox-ojtxp.
STUFE_NUM = PS_STPOX-STUFE.
CONCATENATE STUFE_NUM ',' PS_STPOX-OJTXP INTO L_NODE_TEXT.
CALL METHOD TREE1->ADD_NODE
EXPORTING
I_RELAT_NODE_KEY = P_RELAT_KEY
I_RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
IS_OUTTAB_LINE = PS_STPOX
I_NODE_TEXT = L_NODE_TEXT
IT_ITEM_LAYOUT = LT_ITEM_LAYOUT
IMPORTING
E_NEW_NODE_KEY = P_NODE_KEY.
ENDFORM. " add_complete_line
20170225-ALV tree 显示的更多相关文章
- OO方式下,ALV TREE和ALV GRID的不同之处
作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...
- ALV TREE 实例
ALV TREE 实例 REPORT ZRPT_PS_PS021TREE . TABLES: PROJ, "项目定义数据 PRPS, "WBS元素数据 ZCJ30, "A ...
- ALV Tree demo(WBS元素分层显示)[引用别人的]
原文地址:http://www.xuebuyuan.com/1666753.html 按层次显示WBS编码及描述,附加节点双击展开事件和Item双击跳转CJ03功能. 因为本人懒,本例代码都是从标准的 ...
- ALV TREE中双击触发PAI事件的方法
用事件类实现双击事件,实例化后使用set handler注册到ALV对象.斜体部分为事件方法的具体实现. 代码如下 CLASS lcl_tree_event_receiver DEFINITION. ...
- ALV tree DUMP 问题处理-20180328
Category ABAP Programming Error Runtime Errors MESSAGE_TYPE_X ABAP Program SAPLOLEA Application Comp ...
- ALV tree标准DEMO
BCALV_TREE_01 ALV 树控制:构建层次树 BCALV_TREE_02 ALV 树控制:事件处理 BCALV_TREE_03 ALV 树控制:使用自己的上下文菜单 BCALV_TREE_0 ...
- 文件目录tree显示,python
#/usr/bin/python import os def travelTree(currentPath, count=0): if not os.path.exists(currentPath): ...
- SAP翔子_ABAP_DEMO篇索引
序号 描述 SAP翔子_ABAP_DEMO篇1 ABAP DEMO篇1 单层反查BOM SAP翔子_ABAP_DEMO篇2 ABAP DEMO篇2 删除工艺路线 SAP翔子_ABAP_DEMO篇3 A ...
- ABAP分享六 alv显示的几种方式的简单示例
方法1,也是大家常见的方法通过函数 REUSE_ALV_GRID_DISPLAY TYPES: BEGIN OF ty_spfli, "定义结构 carrid like s ...
随机推荐
- BZOJ4446 [Scoi2015]小凸玩密室 【树形Dp】
题目 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡.点亮所有灯 泡即可逃出密室.每个灯泡有个权值Ai,每条边也有个权值bi.点亮第1个灯泡不需要花费,之后每点亮4 ...
- spring之注入类型
spring有三种注入类型: set注入: 构造注入: 接口注入: 一.set注入(引用spring官方文档中的例子)(用的最多) 1.首先在代码中我们需要编写成员变量的set方法,如下所示,一般情况 ...
- 洛谷P1435 回文字串
题目背景 IOI2000第一题 题目描述 回文词是一种对称的字符串.任意给定一个字符串,通过插入若干字符,都可以变成回文词.此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数. 比如 “A ...
- docker 给容器配置ip(和主机一个网段)
docker 给容器配置ip(和主机一个网段).详情参考:http://www.xiaomastack.com/2015/02/06/docker-static-ip/ #/bin/bash ] || ...
- hdu 1166 树状数组(线段树)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- LA 2218 半平面交
题目大意:n名选手参加铁人三项赛,比赛按照选手在三个赛段中所用的总时间排定名次.已知每名选手在三个项目中的速度Ui.Vi.Wi.问对于选手i,能否通过适当的安排三个赛段的长度(但每个赛段的长度都不能 ...
- golang-uuid
uuid第三方库可以在github上找,我在这使用的是:github.com/satori/go.uuid PS:不知道哪里原因,使用go mod 管理包,下载的包和github上的不是完全一样,也特 ...
- 搭建Redis环境以及所遇问题(CentOS7+Redis 3.2.8)
一.安装步骤 1. 首先需要安装gcc,把下载好的redis-3.2.8-rc2.tar.gz 放到/usr/local文件夹下 2. 进行解压 tar -zxvf redis-3.2.8-rc2.t ...
- Java 新手进阶:细说引用类型
在前几天的帖子<Java性能优化[1]:基本类型 vs 引用类型>里,俺大概介绍了“引用类型”与“基本类型”在存储上的区别.昨天有网友在评论中批评说“引用类型变量和它所引用的对象”没区分清 ...
- SpringMVC拦截器详解[附带源码分析](转)
本文转自http://www.cnblogs.com/fangjian0423/p/springMVC-interceptor.html 感谢作者 目录 前言 重要接口及类介绍 源码分析 拦截器的配置 ...