CS03_BOM数据展开

CS03_BOM数据展开
一、功能介绍
  1. 使用事务码CS03进行数据展开

    在这里插入图片描述

二、程序代码
  1. 程序代码:

    *&---------------------------------------------------------------------*
    *& Report ZMMR119
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zmmr119.
    
    TABLES:mara.
    
    TYPES: BEGIN OF ty_data,
             matnr TYPE  makt-matnr,
             ojtxb TYPE  stpox-ojtxb,
             idnrk TYPE  stpox-idnrk,
             ojtxp TYPE  stpox-ojtxp,
             sortf TYPE  stpox-sortf,
             menge TYPE  stpox-menge,
           END OF ty_data.
    
    *&-----------------------------------------------------------------
    *
    *内表、工作区、变量、常量、指针定义
    *
    *&-----------------------------------------------------------------
    DATA: gt_data TYPE STANDARD TABLE OF ty_data,
          gs_data TYPE ty_data.
    DATA: gt_data1 TYPE STANDARD TABLE OF ty_data,
          gs_data1 TYPE ty_data.
    DATA: gs_layout   TYPE lvc_s_layo.
    DATA: gt_fieldcat TYPE lvc_t_fcat,
          gs_fieldcat TYPE lvc_s_fcat.
    
    "弹窗
    
    *******************************
    *屏幕处理
    *******************************
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:p_datuv TYPE sy-datum DEFAULT sy-datum.
    SELECT-OPTIONS s_matnr FOR mara-matnr  .
    
    SELECTION-SCREEN END OF BLOCK blk1.
    
    SELECTION-SCREEN: FUNCTION KEY 1.
    *******************************
    *主程序入口
    *******************************
    *&--------------------------------------------------------------
    **初始化处理
    *&--------------------------------------------------------------
    INITIALIZATION.
    
    
    
    *&--------------------------------------------------------------
    **选择屏幕控制
    *&--------------------------------------------------------------
    AT SELECTION-SCREEN OUTPUT.
    
    *&-------------------------------------------------------------*
    *& 参数输入检查
    *&-------------------------------------------------------------*
    AT SELECTION-SCREEN.
    
    *&-------------------------------------------------------------
    **程序开始处理
    *&-------------------------------------------------------------
    START-OF-SELECTION.
    ********************************
    *获取数据
    ********************************
      PERFORM frm_get_data.
    * ALV显示
      PERFORM frm_set_alv.          "设置ALV属性
      PERFORM frm_dis_alv.          "调用ALV
    
    END-OF-SELECTION.
    
    *******************************
    *FORM子程序
    *******************************
    *&---------------------------------------------------------------------*
    *&      Form  GET_DATA
    *&---------------------------------------------------------------------*
    *       获取数据
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM frm_get_data.
      DATA :gt_stpox  TYPE STANDARD TABLE OF stpox,
            gs_stpox  TYPE stpox,
            gt_cscmat TYPE STANDARD TABLE OF cscmat,
            gs_cscmat TYPE cscmat.
      DATA lv_ojtxb TYPE stpox-ojtxb.
      DATA lv_menge TYPE stpox-menge.
      DATA lv_num TYPE i.
    
      SELECT matnr
      FROM mara
      WHERE matkl = 'Z009'
      AND matnr IN @s_matnr
      INTO TABLE @DATA(lt_mara).
    
    
    
      LOOP AT lt_mara INTO DATA(ls_mara).
        CLEAR :gt_stpox,gs_stpox, gt_cscmat, gs_cscmat,lv_ojtxb.
        CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
          EXPORTING
            capid                 = 'PP01'
            datuv                 = p_datuv
            mehrs                 = 'X'
            mtnrv                 = ls_mara-matnr
            werks                 = '1000'
          TABLES
            stb                   = gt_stpox           "
            matcat                = gt_cscmat   "
          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.
        IF sy-subrc <> 0.
    * Implement suitable error handling here
        ENDIF.
        SORT gt_stpox ASCENDING BY msign
               idnrk ASCENDING
               dokar ASCENDING
               doknr ASCENDING
               dokvr ASCENDING
               doktl ASCENDING
               class ASCENDING
               klart ASCENDING
               postp ASCENDING
               potx1 ASCENDING
               potx2 ASCENDING
               werks ASCENDING
               sortf ASCENDING.
    
        READ TABLE gt_stpox INTO gs_stpox WITH KEY ttidx = 1.
        IF sy-subrc = 0.
          lv_ojtxb = gs_stpox-ojtxb.
        ENDIF.
        LOOP AT gt_stpox  INTO gs_stpox  .
          gs_data1-matnr = ls_mara-matnr.
          gs_data1-ojtxb = lv_ojtxb.
          gs_data1-idnrk = gs_stpox-idnrk.
          gs_data1-idnrk = |{ gs_data1-idnrk ALPHA = OUT }|.
          gs_data1-ojtxp = gs_stpox-ojtxp.
          gs_data1-menge = gs_stpox-menge.
          gs_data1-sortf = gs_stpox-sortf.
          APPEND gs_data1 TO gt_data1.
          CLEAR gs_stpox.
        ENDLOOP.
        CLEAR ls_mara.
      ENDLOOP.
    
      LOOP AT gt_data1 INTO gs_data1.
        lv_menge = lv_menge + gs_data1-menge.
        lv_num = lv_num + 1.
        AT END OF sortf.
          MOVE gs_data1 TO gs_data.
          gs_data-menge = lv_menge.
          IF lv_num > 1.
            gs_data-sortf = ''.
          ENDIF.
          APPEND gs_data TO gt_data.
          CLEAR :gs_data,lv_menge,lv_num.
        ENDAT.
        CLEAR gs_data1.
      ENDLOOP.
    
    
      IF gt_data IS INITIAL.
        MESSAGE '未查询到符合条件的数据!' TYPE 'S' DISPLAY LIKE 'E'.
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDFORM.         " GET_DATA
    
    
    *&---------------------------------------------------------------------*
    *&      Form  FRM_SET_ALV
    *&---------------------------------------------------------------------*
    *       alv设置
    *---------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM frm_set_alv.
      DATA: l_colpos TYPE lvc_s_fcat-col_pos VALUE 0.
    
    *&---------------------------------------------------------------------*
    *&      定义宏
    *&---------------------------------------------------------------------*
      DEFINE  macro_fill_fcat.
        CLEAR gs_fieldcat.
        &1 = &1 + 1.
        gs_fieldcat-col_pos       = &1.
        gs_fieldcat-fieldname     = &2.
        gs_fieldcat-coltext       = &3.
        APPEND gs_fieldcat TO gt_fieldcat.
      END-OF-DEFINITION.
    
      FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat.
    
      CLEAR gt_fieldcat.
      macro_fill_fcat:  l_colpos  'MATNR' 'P总成物料号' ,
                        l_colpos  'OJTXB' 'P总成物料号描述'  ,
                        l_colpos  'IDNRK' '下级件'  ,
                        l_colpos  'OJTXP' '下级件描述' ,
                        l_colpos  'MENGE' '下级件装车系数' ,
                        l_colpos  'SORTF' '下级件工序落点'   .
    
    
      CLEAR gs_layout.
      gs_layout-zebra = 'X'.
      gs_layout-cwidth_opt = 'X'.
    ENDFORM.
    *&---------------------------------------------------------------------*
    *&      Form  FRM_DIS_ALV
    *&---------------------------------------------------------------------*
    *       alv输出
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM frm_dis_alv .
    
      DATA: lv_grid TYPE lvc_s_glay.
    
      lv_grid-edt_cll_cb = 'X'.
    
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
          i_callback_program       = sy-repid
          i_callback_pf_status_set = 'PF_STATUS_SET'
          i_callback_user_command  = 'FRM_USER_COMMAND'
          i_grid_settings          = lv_grid
          is_layout_lvc            = gs_layout
          it_fieldcat_lvc          = gt_fieldcat
        TABLES
          t_outtab                 = gt_data.
    
    ENDFORM.                "     FRM_ALV
    
    *&---------------------------------------------------------------------*
    *&      Form  PF_STATUS_SET
    *&---------------------------------------------------------------------*
    *       gui状态
    *----------------------------------------------------------------------*
    *      -->TR_EXTAB   text
    *----------------------------------------------------------------------*
    FORM pf_status_set USING pr_extab TYPE slis_t_extab.
    
      SET PF-STATUS 'STANDARD' .
    
    ENDFORM.                 "   PF_STATUS_SET
    *&---------------------------------------------------------------------*
    *&      Form  frm_user_command
    *&---------------------------------------------------------------------*
    *       用戶响应事件
    *----------------------------------------------------------------------*
    *      -->R_UCOMM      text
    *      -->RS_SELFIELD  text
    *----------------------------------------------------------------------*
    
    FORM frm_user_command USING r_ucomm LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.
    *刷新alv
      DATA:lob_grid TYPE REF TO cl_gui_alv_grid.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          e_grid = lob_grid.
      CALL METHOD lob_grid->check_changed_data.
    
      rs_selfield-refresh = 'X'.
      gs_layout-cwidth_opt = 'X'.
      gs_layout-no_toolbar = 'X'.
      CALL METHOD lob_grid->set_frontend_layout
        EXPORTING
          is_layout = gs_layout.
      CALL METHOD lob_grid->refresh_table_display.
    ENDFORM.
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/606035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备&#xff0c;用于在局域网&#xff08;LAN&#xff09;中转发数据帧。它工作在OSI模型的第二层&#xff0c;即数据链路层。二层交换机通过学习和维护MAC地址表&#xff0c;实现了数据的快速转发和广播域的隔离。 实…

相亲系统功能介绍

相亲系统是一种旨在帮助单身人士寻找合适伴侣的平台&#xff0c;其主要功能通常包括以下几个方面&#xff1a; 实名认证&#xff1a;为了确保双方的权益保障&#xff0c;用户必须进行实名认证后才能使用该系统。这有助于增加系统的安全性和可信度。偏好选择&#xff1a;用户可…

Android 按键消息流程源码分析

在Android系统中&#xff0c;键盘按键事件是由SystemServer服务来管理的&#xff1b;然后在以消息的形式分发给应用程序处理。产生键盘按键事件则是有Linux kernel的相关驱动来实现。键盘消息有别于其他类型的消息&#xff1b;需要从Linux kernel drivers产生由上层APP来处理。…

数据链路层——以太网协议

一、以太网的MAC帧格式 源地址与目标地址代表的是网卡的硬件地址&#xff0c;MAC 地址&#xff0c;在出厂时已经确定好了。 帧协议类型有三种值&#xff0c;IP0800&#xff0c;ARP 请求及应答0806&#xff0c;RARP 请求/应答8035. MAC地址一般都是唯一的&#xff0c;长度48位&…

Unity Editor 找物体助手

找啊找朋友~ &#x1f371;功能介绍&#x1f959;使用方法 &#x1f371;功能介绍 &#x1f4a1;输入相关字符串&#xff0c;它会帮你找到名称中带有该字符串的所有物体&#xff0c;还会找包含该字符串的Text、TextMeshProUGUI。 &#x1f959;使用方法 &#x1f4a1;导入插…

240多道!Go开发岗位面试题合集(含答案)

随着今年互联网寒潮环境的影响&#xff0c;找工作的人也将达到顶峰&#xff0c;今天给大家分享一份《Go开发工程师超高频面试真题》&#xff0c;一共有240多道面试真题&#xff0c;希望能够帮助大家在面试中&#xff0c;少走一些弯路、更快拿到offer&#xff01; 内容展示 GO 基…

集成逻辑分析器( ILA)IP核用法详解

集成逻辑分析器&#xff08;Integrated Logic Analyzer, ILA&#xff09;IP核是一个可定制的逻辑分析器&#xff0c;用于监测设计的内部信号。ILA核心包含了现代逻辑分析器的许多高级特性&#xff0c;比如布尔触发方程&#xff08;boolean trigger equations&#xff09;和边沿…

gitignore配置不生效记录

第一种可能性&#xff1a; 在你所有的文件都通过了git add . 命令的情况下&#xff0c;使用指令git rm -r --cached .进行缓存清除&#xff0c;完成之后&#xff0c;再次通过git add . 然后通过git status去看提交的文件都有哪些。 第二种可能性 如果上面的不行就是你添加的…

Makefile经验总结

文章目录 0.概述1.常用规则1.1 清空目录的规则1.2 文件搜寻 &#xff08;用起来比较爽&#xff09;1.3 伪目标&#xff08;可用生成多个目标和配置工程删除规则&#xff09;1.4 静态模式&#xff08;用起来也很爽&#xff09;1.5 显示命令&#xff08;有助于调试makefile&#…

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(一)

最近研究了一个项目&#xff0c;利用python代码实现指针式圆形仪表的自动读数&#xff0c;并将读数结果进行输出&#xff0c;若需要完整数据集和源代码可以私信。 目录 &#x1f353;&#x1f353;1.yolov8实现圆盘形仪表智能读数 &#x1f64b;&#x1f64b;2.仪表目标检测…

Sui主网升级至V1.24.1版本

其他升级要点如下所示&#xff1a; GraphQL #17313 不再存在 Live 或 Historical 的 ObjectKind&#xff0c;它们已经合并为单个 Indexed 类型&#xff0c;表示从索引中获取的任何对象&#xff08;而不是我们有相关信息但尚未建立索引的对象&#xff0c; 或者已被删除或包装…

什么才是正确的领域驱动实现架构?

作为一种系统建模方法&#xff0c;DDD同样涉及系统的体系架构设计。区别于分布式、事件驱动、消息总线等架构设计方法&#xff0c;DDD中的架构设计关注前面各章所介绍的聚合、实体、值对象、领域事件、应用服务以及资源库之间的交互方式和风格&#xff0c;并在设计思想上有其独…

创建和管理数据库

1. 一条数据的存储过程 存储数据是处理数据的第一步.只有正确的把数据存储起来&#xff0c;我们才能进行有效的处理和分析.否则&#xff0c;只能是一团乱麻.在MySQL中&#xff0c;一个完整的数据存储过程一共有四步 : 创建数据库&#xff0c;确认字段&#xff0c;创建数据表&a…

[图解]SysML和EA建模住宅安全系统-01

1 00:00:00,980 --> 00:00:03,100 接下来&#xff0c;我们来看一下案例 2 00:00:04,930 --> 00:00:06,750 我们这次课程的案例 3 00:00:07,090 --> 00:00:13,800 选用了SysML实用指南的书上 4 00:00:13,810 --> 00:00:16,180 第十七章这个案例 5 00:00:16,350 …

RSAC 2024现场:谷歌展望大模型在网络安全领域的前景

人类距离将网络安全的控制权交给生成式AI还有多远&#xff1f; 前情回顾RSAC2024动态 伪造内容鉴别厂商Reality Defender斩获2024 RSAC创新沙盒冠军 RSAC 2024上值得关注的10款网络安全产品 RSAC 2024创新沙盒十强出炉&#xff0c;谁能夺冠&#xff1f; 安全内参5月8日消息…

代码随想录算法训练营第二十一天:树树树

代码随想录算法训练营第二十一天&#xff1a;树树树 ‍ 513.找树左下角的值 力扣题目链接​**&#xff08;打开新窗口&#xff09;** 给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例 1: ​​ 示例 2: ​​ #算法公开课 《代码随想录》算法视频公开课…

跨平台美学!使用DevExpress Reports Office File API时如何管理字体?

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库&#xff0c;不用安装Microsoft Office&#xff0c;就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…

鲁大师4月电动两轮车榜:RideyFUN Air智驾系统上线,九号F2z 110智能化再升级

鲁大师4月电动两轮车排行榜数据来源于鲁大师智慧实验室&#xff0c;测评的车型均为市面上主流品牌的主流车型。截止目前&#xff0c;鲁大师智能化电动车测评的车型高达160余台&#xff0c;且还在不断增加和丰富中。 鲁大师电动车智能化测评体系包含车辆的状态采集与管理硬件系统…

android基础-通知

基于第一行android 使用PendingIntent来实现点击通知跳转到另一个活动。 notificationcompat.builder后面可以跟很多的方法&#xff0c;不同方法不同效果&#xff0c;比如加一个音频.setSound(uri) 内置网页 解析json