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 ...
随机推荐
- BZOJ 1933 [Shoi2007]Bookcase 书柜的尺寸 ——动态规划
状态设计的方法很巧妙,六个值 h1,h2,h3,t1,t2,t3,我们发现t1,t2,t3可以通过前缀和优化掉一维. 然后考虑把h留下还是t留下,如果留下h显然t是会发生改变的,一个int存不下. 如 ...
- [Vijos1308]埃及分数(迭代加深搜索 + 剪枝)
传送门 迭代加深搜索是必须的,先枚举加数个数 然后搜索分母 这里有一个强大的剪枝,就是确定分母的范围 #include <cstdio> #include <cstring> ...
- BZOJ 2190仪仗队【欧拉函数】
问题的唯一难点就是如何表示队长能看到的人数?如果建系,队长所在的点为(0,0)分析几组数据就一目了然了,如果队长能看到的点为(m,n),那么gcd(m,n)=1即m n 互质或者是(0,1),(1,0 ...
- 空指针问题(java.lang.NullPointerException)
在Java中对值为null的指针调用任何方法,就会引发空指针异常(java.lang.NullPointerException).空指针异常绝对是Java中最难查找和调试的一种异常,你永远无法得到任何 ...
- NOJ 1111 保险箱的密码 【大红】 [区间dp]
传送门 保险箱的密码 [大红] 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 118 测 ...
- ci框架——辅助函数
辅助函数:application/helper下面.命名要求为***_helper.php;这样在调用的时候直接$this->load->helper('***');若想给自定义的辅助函数 ...
- curl模拟安卓手机进行网络请求
$url = "http://somedomain/ver/ffffffff-e31e-85d5-ffff-ffffa6220605/2/en/b0:79:94:e7:99:4a/3.5&q ...
- 每日记录 2016-4-29 HTML5本地存储
HTML5本地存储 一.HTML5 localStorage 在HTML5中,本地存储是一个window的属性,包括localStorage和 sessionStorage,从名字应该可以很清楚的辨认 ...
- codevs3249搭积木
3249 搭积木 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description Petya有一个A×B×C的长方体积木,积 ...
- Java并发编程,深入理解ReentrantLock
ReentrantLock简介 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁, 支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次 ...