ALVtree 显示BOM结构

INCLUDE <icon>.
cl_gui_cfw DEFINITION
LOAD .
mr_toolbar TYPE REF TO
cl_gui_toolbar .
gt_stpox TYPE stpox OCCURS
0,
gt_fieldcatalog TYPE lvc_t_fcat,
gt_item_layout TYPE
lvc_t_laci,
gs_item_layout TYPE lvc_s_laci,
okcode
LIKE sy-ucomm .
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 0.
DATA:
l_custom_container TYPE REF TO cl_gui_custom_container.
wa_dstst TYPE
csdata-xfeld.
p_werks
LIKE ekpo-werks DEFAULT '1010' .
PERFORM getdata.
*&
Form
getdata
*&---------------------------------------------------------------------*
FORM
getdata.
EXPORTING
capid = 'CAD1' " p_capid
datuv =
sy-datum
mehrs = 'X' "p_mehrs
stlal = '01' "可选BOM
stlan =
'2' "BOM 用途
mtnrv = P_MATNR
werks = P_WERKS
emeng = 1
IMPORTING
topmat = wa_topmat
dstst = wa_dstst
TABLES
stb =
gt_stpox
matcat = it_matcat
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
CASE sy-subrc .
WHEN 1 .
MESSAGE
e899(fi) WITH 'alt_not_found'.
WHEN 2 .
MESSAGE e899(fi) WITH
'call_invalid '.
WHEN 3 .
MESSAGE e899(fi) WITH
'material_not_found'.
WHEN 4 .
MESSAGE e899(fi) WITH
'missing_authorization'.
WHEN 5 .
MESSAGE e899(fi) WITH
'no_bom_found'.
WHEN 6 .
MESSAGE e899(fi) WITH
'no_plant_data'.
WHEN 7 .
MESSAGE e899(fi) WITH
'no_suitable_bom_found'.
WHEN 8 .
MESSAGE e899(fi) WITH
'conversion_error'.
WHEN 9 .
MESSAGE e899(fi) WITH 'OTHERS
Error'.
ENDCASE.
MOVE-CORRESPONDING gs_stpox TO
gs_xstpox .
APPEND gs_xstpox TO gt_xstpox.
ENDLOOP.
"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 .
CALL METHOD cl_gui_cfw=>dispatch.
ENDCASE.
CALL METHOD
cl_gui_cfw=>flush.
ENDMODULE. " okcode INPUT
*&
Form
init_tree
*&---------------------------------------------------------------------*
FORM
init_tree .
PERFORM build_fieldcatalog.
* CREATE OBJECT
l_custom_container
* EXPORTING
* container_name =
'TREE1'
* EXCEPTIONS
* cntl_error =
1
* cntl_system_error = 2
*
create_error = 3
* lifetime_error =
4
* lifetime_dynpro_dynpro_link = 5.
* IF sy-subrc <>
0.
* MESSAGE e000 WITH '创建容器:TREE1 错误'.
* ENDIF.
*
ENDIF.
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 = 1
cntl_system_error =
2
create_error = 3
lifetime_error
= 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
IF sy-subrc <> 0.
MESSAGE e000 WITH '创建TREE错误'.
ENDIF.
PERFORM
build_hierarchy_header CHANGING l_hierarchy_header.
ls_variant-report =
sy-repid.
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.
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 .
WHEN '1'.
l_key =
''.
WHEN '2'.
l_key = l1.
WHEN '3'.
l_key = l2.
WHEN '4'.
l_key = l3.
WHEN
'5'.
l_key = l4.
WHEN '6'.
l_key = l5.
ENDCASE.
l_key
CHANGING l_last_key.
gs_xstpox-node_key = l_last_key.
WHEN '1'.
l1 =
l_last_key.
WHEN '2'.
l2 = l_last_key.
WHEN
'3'.
l3 = l_last_key.
WHEN '4'.
l4 =
l_last_key.
WHEN '5'.
l5 = l_last_key.
WHEN
'6'.
l6 = l_last_key.
ENDCASE.
ENDLOOP.
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.
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 = 30.
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(2) TYPE n.
ls_item_layout-class = cl_gui_column_tree=>item_class_text.
*
ls_item_layout-editable = 'X'.
* ls_item_layout-chosen = 'X'. "
设置为选中状态
stufe_num = ps_stpox-stufe.
CONCATENATE stufe_num ',' ps_stpox-ojtxp INTO l_node_text.
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
ALVtree 显示BOM结构的更多相关文章
- ABAP DEMO ALVtree显示BOM层级
展示效果: *&---------------------------------------------------------------------* *& Report YCX ...
- 按树型显示BOM的结构
在制造企业中,生产的每一个产品都由一道或多道工序组成,在组成成品之前,每一道工序经由物料--物料组成半成品,或物料--半成品组成新的半成品,亦或由半成品--半成品组成新的半成品.复杂的成品经由多道工序 ...
- 【转】linux tree命令以树形结构显示文件目录结构 ---- 不错
原文网址:http://jingyan.baidu.com/article/acf728fd19c7eff8e510a3eb.html 今天小编来给分享Linux 系统下一个非常有用的命令的使用:tr ...
- 不显示BOM清单的版本
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- 配置Tomcat直接显示目录结构和文件列表
Tomcat是直接显示目录结构和文件列表,只是在配置里面给关闭了. 关键在这里:\conf\web.xml 这个文件有一段配置直接控制Tomcat是允许显示目录结构和文件列表. <servlet ...
- 【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
导入项目之后,只显示项目文件,不显示项目结构 解决方法 1.点击file->project structure..->Modules 点击右上角+加号 ->import Module ...
- Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)
场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...
- InteractiveHtmlBom 在手机上无法显示 BOM List 和装配图的问题
InteractiveHtmlBom 在手机上无法显示 BOM List 和装配图的问题 InteractiveHtmlBom 插件是一款用于 KiCad BOM 装配图生成插件. 最近新生成的 文件 ...
- 如何使用Shell写一个显示目录结构的命令?
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 在Linux中使用Shell写一个显示目录结构的命令,快速寻找目录结构. 1.代码 #!/usr/bin/env bash ...
随机推荐
- 周赛Problem 1108: 蛋糕(二分)
1108: 蛋糕 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 17 Solved: 4 Description 杨神打代码打得有点疲倦,于是他想要 ...
- [BZOJ1589] [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果(tarjan缩点 + 记忆化搜索)
传送门 先用tarjan缩点,再记忆话搜索一下 #include <stack> #include <cstdio> #include <cstring> #inc ...
- CF dp 一句话解题
wyq说刚入门oi 或是遇到瓶颈的时候就刷DP吧,虽然觉得这么刷CF题有点浪费,但是还是挺爽的,按照solved排序做的,前面的题都挺水的(忘记记录了混蛋),就不写了,从5C开始写解题 CF5 C. ...
- 刷题总结——切蛋糕(ssoj)
题目: 切蛋糕 (cake.cpp/c/pas) [问题描述] BG 有一块细长的蛋糕,长度为�. 有一些人要来BG 家里吃蛋糕, BG把蛋糕切成了若干块(整数长度),然后分给这些人.为了公平,每个人 ...
- [AHOI2009]维护序列 (线段树)
题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,-,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一 ...
- 【单调队列+尺取】HDU 3530 Subsequence
acm.hdu.edu.cn/showproblem.php?pid=3530 [题意] 给定一个长度为n的序列,问这个序列满足最大值和最小值的差在[m,k]的范围内的最长子区间是多长? [思路] 对 ...
- Jackson转换JSON例子
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文:http://www.cnblo ...
- poj 1061 青蛙的约会(二元一次不定方程)
Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要 ...
- 标准C程序设计七---06
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- centos7 安装teamviewer 报错libQt5WebKitWidgets.so.5()(64bit)
https://blog.csdn.net/kenny_lz/article/details/78884603