当前位置: 首页 > news >正文

高端旅游的网站建设网络服务器

高端旅游的网站建设,网络服务器,厦门网站建设团队,深圳沙井做公司网站导读:最近和BOM物料干上了,记录一下我的开发过程和学到的东西。 顺查BOM物料下的所有层级物料 方法一:通过函数“CS_BOM_EXPL_MAT_V2”; 代码例子如下:(有效期可以通过MAST表去STKO表去获取) "函数…

导读:最近和BOM物料干上了,记录一下我的开发过程和学到的东西。

顺查BOM物料下的所有层级物料

方法一:通过函数“CS_BOM_EXPL_MAT_V2”;

代码例子如下:(有效期可以通过MAST表去STKO表去获取)

"函数递归 获取BOM物料组件CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'EXPORTINGcapid                 = 'PP01' "bom类型datuv                 = datua "有效期mdmps                 = ''  " 限制字段:限制BOM只展1层,但下层是虚拟件的则再往下展开一层,默认为空不限制mehrs                 = 'X'  " 重要字段:BOM多级展开,默认为空,只展开一层 多阶展开 'X'-多阶; ''-单阶mtnrv                 = s_matnr " 必须字段:物料号werks                 = s_werks " 必须字段:工厂号stpst                 = 0TABLESstb                   = gt_stb    " 必须接收的表:BOM展开明细matcat                = gt_matcat    " 父级物料清单:参与BOM展开的父级物料清单,即含有组件的物料EXCEPTIONSalt_not_found         = 1call_invalid          = 2material_not_found    = 3missing_authorization = 4no_bom_found          = 5no_plant_data         = 6no_suitable_bom_found = 7conversion_error      = 8OTHERS                = 9.

值得注意的是gt_matcat-index = gt_stb-ttidx.(根据这个关系可以获取到某个物料的组件)

方法二:直接联表查询(一般不用这个方法,麻烦且需要标记物料层级)

由于不常用,这里只是简单过一下。

1、从MAST表获取BOM的物料清单,根据物料清单去查询STPO表从而获取1层的物料组件,(订单数量在STKO表),

2、利用递归的方法,对第一层的子组件逐一遍历,类似的再去查询MAST表和STPO表,获取2层的物料组件

3、以此类推。。。。

4、直至所有层数遍历完成即可。

OO TREE ALV展示BOM物料层级步骤说明

全局变量定义如下:

DATA: tree1 TYPE REF TO cl_gui_alv_tree.      "树控件
DATA: l_custom_container TYPE REF TO cl_gui_custom_container. "自定义容器DATA:ok_code TYPE sy-ucomm,my_code TYPE sy-ucomm.DATA: gt_fieldcat TYPE TABLE OF lvc_s_fcat,gs_fieldcat TYPE lvc_s_fcat.DATA:gt_stpo_alv  TYPE TABLE OF STPOX.

字段设置宏定义代码
 

*定义宏
DEFINE fieldcat.CLEAR:gs_fieldcat.gs_fieldcat-just = 'C'.               "C居中对齐、L左边对齐、R右边对齐gs_fieldcat-fieldname = &1.      "标识对应的字段名gs_fieldcat-coltext   = &2.       "列标题gs_fieldcat-seltext   = &2.       "对话功能的列标识符,影响的是点击筛选按钮时,弹出的选择屏幕中的字段描述gs_fieldcat-ref_table = &3.   "内部表字段的参考表名称gs_fieldcat-ref_field = &4.   "内部表字段的参考字段名称gs_fieldcat-edit = &5.       "列是否可编辑gs_fieldcat-col_opt = &6.     "字段级优化列宽gs_fieldcat-key = &7.         "固定列gs_fieldcat-emphasize = &8.         "列颜色gs_fieldcat-outputlen = &9.         "指定列宽度APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.

新建屏幕9000

创建自定义容器 TREE1

在PBO模块初始化容器以及控件

MODULE status_9000 OUTPUT.IF tree1 IS INITIAL.PERFORM frm_init_alv_tree.ENDIF.CALL METHOD cl_gui_cfw=>flush.
ENDMODULE.*--------------------------------------------------------------------*
* form : 初始化树
*--------------------------------------------------------------------*
FORM frm_init_alv_tree.CREATE OBJECT l_custom_containerEXPORTINGcontainer_name = 'TREE1'.CREATE OBJECT tree1EXPORTINGparent              = l_custom_containernode_selection_mode = cl_gui_column_tree=>node_sel_mode_singleitem_selection      = 'X'no_html_header      = 'X'no_toolbar          = ' '."获取BOM 物料信息"函数递归 获取BOM物料组件CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'EXPORTINGcapid                 = 'PP01' "bom类型datuv                 = datua "有效期mdmps                 = ''  " 限制字段:限制BOM只展1层,但下层是虚拟件的则再往下展开一层,默认为空不限制mehrs                 = 'X'  " 重要字段:BOM多级展开,默认为空,只展开一层 多阶展开 'X'-多阶; ''-单阶mtnrv                 = s_matnr " 必须字段:物料号werks                 = s_werks " 必须字段:工厂号stpst                 = 0TABLESstb                   = gt_stb    " 必须接收的表:BOM展开明细matcat                = gt_matcat    " 父级物料清单:参与BOM展开的父级物料清单,即含有组件的物料EXCEPTIONSalt_not_found         = 1call_invalid          = 2material_not_found    = 3missing_authorization = 4no_bom_found          = 5no_plant_data         = 6no_suitable_bom_found = 7conversion_error      = 8OTHERS                = 9.DATA l_hierarchy_header TYPE treev_hhdr.PERFORM build_hierarchy_header CHANGING l_hierarchy_header.PERFORM build_fieldcatalog.DATA: ls_variant TYPE disvariant.ls_variant-report = sy-repid.CALL METHOD tree1->set_table_for_first_displayEXPORTINGis_hierarchy_header = l_hierarchy_headeri_background_id     = 'ALV_BACKGROUND'i_save              = 'A'is_variant          = ls_variantCHANGINGit_outtab           = gt_stpo_alvit_fieldcatalog     = gt_fieldcat.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,l9 TYPE lvc_nkey,l10 TYPE lvc_nkey,l_key      TYPE lvc_nkey,l_last_key TYPE lvc_nkey,added ."遍历组件、向TREE1控件填充叶子节点LOOP AT gt_stb INTO gs_stb.CASE gs_stb-stufe .WHEN '0'.l_key = ''.WHEN '1'.l_key = l1.WHEN '2'.l_key = l2.WHEN '3'.l_key = l3.WHEN '4'.l_key = l4.WHEN '5'.l_key = l5.WHEN '6'.l_key = l6.WHEN '7'.l_key = l7.WHEN '8'.l_key = l8.WHEN '9'.l_key = l9.WHEN '10'.l_key = l10.ENDCASE.PERFORM add_complete_line USING  l_keyCHANGING l_last_key gs_stb .CASE gs_stb-stufe .WHEN '0'.l1 = l_last_key.WHEN '1'.l2 = l_last_key.WHEN '2'.l3 = l_last_key.WHEN '3'.l4 = l_last_key.WHEN '4'.l5 = l_last_key.WHEN '5'.l6 = l_last_key.WHEN '6'.l7 = l_last_key.WHEN '7'.l8 = l_last_key.WHEN '8'.l9 = l_last_key.WHEN '9'.l10 = l_last_key.ENDCASE.MODIFY gt_stb FROM gs_stb .ENDLOOP.CALL METHOD tree1->update_calculations.CALL METHOD tree1->frontend_update.
ENDFORM.*--------------------------------------------------------------------*
* form : 表头设置
*--------------------------------------------------------------------*
FORM build_hierarchy_header CHANGINGp_hierarchy_header TYPE treev_hhdr.p_hierarchy_header-heading = 'BOM层次'.p_hierarchy_header-tooltip = 'ToolTip'.p_hierarchy_header-width = 40.p_hierarchy_header-width_pix = 'X'.
ENDFORM.*--------------------------------------------------------------------*
* form : 字段设置
*--------------------------------------------------------------------*
FORM build_fieldcatalog.fieldcat 'IDNRK' '物料编号' 'MARC' 'MATNR' '' 'X' '' '' '40'.fieldcat 'OJTXP' '物料描述' 'MAKT' 'MAKTX' '' 'X' '' '' '65'.
ENDFORM.*--------------------------------------------------------------------*
* form : 向子节点追加数据
*--------------------------------------------------------------------*
FORM add_complete_line USINGp_relat_key TYPE lvc_nkeyCHANGING  p_node_key TYPE lvc_nkey ps_stpox TYPE STPOX.DATA: l_node_text TYPE lvc_value.DATA: lt_item_layout TYPE lvc_t_layi,ls_item_layout TYPE lvc_s_layi.ls_item_layout-fieldname = tree1->c_hierarchy_column_name.ls_item_layout-class     = cl_gui_column_tree=>item_class_text.APPEND ls_item_layout TO lt_item_layout.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput  = ps_stpox-IDNRKIMPORTINGoutput = ps_stpox-IDNRK.l_node_text =  ps_stpox-IDNRK.CALL METHOD tree1->add_nodeEXPORTINGi_relat_node_key = p_relat_keyi_relationship   = cl_gui_column_tree=>relat_last_childis_outtab_line   = ps_stpoxi_node_text      = l_node_textit_item_layout   = lt_item_layoutIMPORTINGe_new_node_key   = p_node_key.
ENDFORM.

注意:gt_stpo_alv这个表必须是空的,否则显示的数据会出错,至于表结构跟随STPOX表即可

还有别漏了后面刷新的两行代码,不要问我为啥知道,都是泪。

 做完这里后来到屏幕的PAI模块

MODULE user_command_9000 INPUT.my_code = ok_code.CLEAR ok_code.CASE my_code.WHEN 'E' OR 'ENDE' OR 'ECAN'."释放容器,退出程序CALL METHOD l_custom_container->free.CLEAR l_custom_container.CLEAR tree1.LEAVE TO SCREEN 0.WHEN OTHERS."为正确调用工具栏按钮功能,必须调用该方法CALL METHOD cl_gui_cfw=>dispatch.ENDCASE.CALL METHOD cl_gui_cfw=>flush.
ENDMODULE.

请注意,此处必须释放容器,不然TREE ALV只会渲染一次,下一次调用还是上一次的数据。

至此,完毕!已经尽可能的简化步骤了,网上的资料都是步骤很繁琐的。

http://www.lbrq.cn/news/2607085.html

相关文章:

  • 推荐门户网站建设公司赚钱软件
  • 网站 url 如何设计网络销售培训学校
  • 网站开发项目的心得体会产品网站推广
  • wordpress 微信 商城模板seo快速排名软件
  • 怎么做提升自己的网站交换链接名词解释
  • 辽宁阜新建设学校官方网站小姐关键词代发排名
  • 张家界市建设网站现在的seo1发布页在哪里
  • 卢湾区网站建设制作廊坊seo外包公司费用
  • 如何做淘宝商城网站外贸独立站建站
  • 广州番禺桥南做网站100个关键词
  • 优秀网站建设排名公司百度关键词排名推广工具
  • 公司网站模板制作seo 工具推荐
  • 温州网站开发定制技术优化seo
  • 滨州网站开发网络营销网站有哪些
  • 东莞网站建设网络推广下载百度导航最新版本
  • wordpress建站应用成都网站推广哪家专业
  • 做网站开发需要什么郑州专业seo推荐
  • 什么是网站建设流程图百度seo效果
  • 江苏省教育网站官网霸榜seo
  • 手机参数对比的网站seo优化技术排名
  • 厦门网站seo淘宝店铺买卖交易平台
  • 临清网站制作公司昆明优化网站公司
  • 建英文网站网络营销与直播电商好就业吗
  • 网站建设费要交印花税吗淘宝怎么提高关键词搜索排名
  • 易语言网站怎么做下载百度 安装
  • 公司做网站能抵扣进项税吗手机免费发布信息平台
  • wordpress更换网址后台怎么进网站优化关键词价格
  • 网站开发的前端技术有哪些站外seo推广
  • sm网站寻女主人做性奴品牌策划公司排行榜
  • 二季域名做网站南京百度seo
  • [linux] Linux系统中断机制详解及用户空间中断使用方法
  • python中的推导式
  • 2. JS 有哪些数据类型
  • Shader开发(七)创建第一个Shader项目
  • BeanFactory 和 ApplicationContext 的区别?
  • RK3568 Linux驱动学习——字符设备驱动开发