SAP 在制品明细

2023-11-16

*&---------------------------------------------------------------------*
*& Report ZCO019
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zco019.

TABLES matdoc  .

SELECT-OPTIONSs_bukrs FOR matdoc-bukrs OBLIGATORY ,
                s_budat FOR matdoc-budat OBLIGATORY ,
                s_aufnr FOR matdoc-aufnr .


DATABEGIN OF gs_out ,
        budat        LIKE matdoc-budat,
        bukrs        LIKE matdoc-bukrs,
        werks        LIKE matdoc-werks,
        mblnr        LIKE matdoc-mblnr,
        aufnr        LIKE matdoc-aufnr,
        matnr        LIKE matdoc-matnr,
        bwtar        LIKE matdoc-bwtar,
        charg        LIKE matdoc-charg,
        bwart        LIKE matdoc-bwart,
        stock_qty    LIKE matdoc-dmbtr_stock,
        dmbtr_stock  LIKE matdoc-dmbtr_stock,
        vprsv        LIKE matdoc-vprsv,
        objnr        LIKE aufk-objnr,
        dj           TYPE  DECIMALS 6"单价
        dmbtr_stock2 LIKE matdoc-dmbtr_stock,
      END OF gs_out .
DATAgt_out LIKE TABLE OF gs_out .

DATABEGIN OF ls_covp,
        aufnr  LIKE    matdoc-aufnr,
        belnr  LIKE  coep-belnr ,  "如果不加这个 FOR ALL ENTRY IN 会少一行
        wogbtr LIKE  coep-wogbtr,
      END OF ls_covp .
DATAlt_covp LIKE TABLE OF ls_covp .


DATAgt_fieldcat TYPE   lvc_t_fcat .
DATAgs_fieldcat TYPE   lvc_s_fcat .
DATAgs_layout   TYPE   lvc_s_layo .

PARAMETERS CB_01 AS CHECKBOX .



"取物料

SELECT
     budat
     a
~bukrs
     a
~werks
     mblnr
     a
~aufnr
     matnr
     bwtar
     charg
     bwart
     stock_qty
    dmbtr_stock
     vprsv
    objnr
  
INTO TABLE gt_out
  
FROM matdoc AS a
  
JOIN aufk AS ON a~aufnr b~aufnr
  
WHERE a~bukrs IN s_bukrs
   
AND  budat IN s_budat
  
AND a~aufnr IN s_aufnr
  
AND B~AUART <> 'Z010'
  AND B~AUART <> 'Z020'  .

DATABEGIN OF ls_jest,
        objnr LIKE jest-objnr,
*       STAT  LIKE JEST-STAT ,  "查询TECO DLV等描述可以 关联 TJ02T 这个表
      END OF ls_jest .
DATAlt_jest LIKE TABLE OF ls_jest .

if cb_01  eq 'X' .
SELECT  objnr
  
INTO TABLE lt_jest
  
FROM jest
  
FOR ALL ENTRIES IN gt_out
  
WHERE objnr gt_out-objnr
   
AND   stat EQ 'I0012'  OR  stat EQ 'I0045' OR  stat EQ 'I0046'   )   "查询TECO DLV等描述可以 关联 TJ02T 这个表
   AND INACT  EQ '' .

DATA lv_tabix TYPE sy-tabix .
LOOP AT gt_out INTO gs_out .
  CLEAR lv_tabix .
  lv_tabix =  sy-tabix  .
  READ TABLE lt_jest INTO ls_jest WITH KEY objnr gs_out-objnr .
  IF sy-subrc EQ .
    DELETE gt_out  INDEX lv_tabix .
  ENDIF .

ENDLOOP .
ENDIF .

DATA lv_KALNR LIKE ckmlhd-kalnr .
DATAlv_peinh LIKE ckmlcr-peinh .
DATAlv_year TYPE c LENGTH .
DATAlv_mon TYPE c LENGTH .

取实际金额
LOOP AT gt_out INTO gs_out    .
  SELECT SINGLE  kalnr INTO lv_KALNR
    
FROM ckmlhd
    
WHERE matnr gs_out-matnr
    
AND  bwkey gs_out-werks
    
AND bwtar  gs_out-bwtar
    
AND kzbws space.
  lv_year gs_out+0(4) .
  lv_mon '0' && gs_out+4(2) .
  IF gs_out-vprsv EQ 'S' .
    SELECT SINGLE   pvprs peinh INTO  gs_out-dj lv_peinh )
      FROM ckmlcr
      
WHERE  kalnr lv_kalnr
      
AND bdatj lv_year
      
AND poper lv_mon .

    IF lv_peinh IS NOT INITIAL .
      gs_out-dj gs_out-dj / lv_peinh .
    ELSE .
      gs_out-dj  =  .
    ENDIF .
    gs_out-dmbtr_stock2 =    gs_out-stock_qty *  gs_out-dj .
*    IF gs_out-bwart EQ '101' OR  gs_out-bwart EQ '102' .
*      gs_out-dmbtr_stock2  = gs_out-dmbtr_stock .
*    ENDIF .

  ELSE .
    gs_out-dmbtr_stock2  gs_out-dmbtr_stock .
  ENDIF .
  MODIFY gt_out FROM gs_out .

ENDLOOP .


"取制造费用
IF CB_01 EQ 'X' .
IF gt_out IS NOT INITIAL .
  SELECT aufnr  belnr   wogbtr
    
FROM v_covp
    
INTO CORRESPONDING FIELDS OF  TABLE  lt_covp
    
FOR ALL ENTRIES IN gt_out
    
WHERE aufnr gt_out-aufnr
    
AND   budat IN  s_budat
    
AND   k_vrgng  <> 'COIN' .
endif.
else .
     SELECT aufnr  belnr   wogbtr
    
FROM v_covp
    
INTO CORRESPONDING FIELDS OF  TABLE  lt_covp
    
WHERE aufnr in s_aufnr
    
AND   budat IN  s_budat
    
AND   k_vrgng  <> 'COIN' .
ENDIF .


DATABEGIN OF gs_covp,
        aufnr  LIKE    matdoc-aufnr,
        wogbtr LIKE  coep-wogbtr,
      END OF gs_covp .
DATAgt_covp LIKE TABLE OF gs_covp .

LOOP AT lt_covp INTO ls_covp .
  MOVE-CORRESPONDING ls_covp TO gs_covp .
  COLLECT gs_covp INTO gt_covp .
  CLEAR  gs_covp .
ENDLOOP .

调整发出为正数 入库为负数
LOOP AT gt_out INTO gs_out .
  gs_out-stock_qty =  gs_out-stock_qty * -.
  gs_out-dmbtr_stock =  gs_out-dmbtr_stock * -.
  gs_out-dmbtr_stock2 =  gs_out-dmbtr_stock2 * -.
  MODIFY gt_out  FROM gs_out .
ENDLOOP .

"添加制造费用

LOOP AT gt_covp INTO gs_covp .
  CLEARgs_out .
  gs_out-aufnr  gs_covp-aufnr .
  gs_out-matnr '制造费用.
  gs_out-dmbtr_stock  gs_covp-wogbtr .
  gs_out-dmbtr_stock2  gs_covp-wogbtr .
  APPEND gs_out TO gt_out .
ENDLOOP .

SORT gt_out  BY aufnr budat  ASCENDING  .




DEFINE append_field.
  gs_fieldcat-fieldname &1.
  gs_fieldcat-coltext &2.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEARgs_fieldcat.
END-OF-DEFINITION.


append_field'BUKRS' '公司代码.
append_field'BUDAT' '过账日期.
append_field'AUFNR' '工单号.
append_field'MBLNR' '物料凭证号.
append_field'MATNR' '物料编号.
append_field'BWTAR' '评估类型.
append_field'CHARG' '物料批次.
append_field'BWART' '移动类型.
append_field'STOCK_QTY' '数量.
append_field'DMBTR_STOCK' '金额_标准.
append_field'VPRSV' '价格控制.

append_field'DJ' '实际单价.
append_field'DMBTR_STOCK2' '金额_实际.



gs_layout-cwidth_opt 'X'.   "列宽自适应
gs_layout-zebra      'X'.      "斑马线

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    i_callback_program sy-repid
*   i_callback_pf_status_set = 'FRM_STATUS_SET'
*   i_callback_user_command  = 'FRM_USER_COMMAND'
*
*   I_GRID_SETTINGS    =
    is_layout_lvc      gs_layout
    it_fieldcat_lvc    
gt_fieldcat
    i_save             
'A'
*   i_grid_settings    = ls_grid_settings
*   it_events          = lt_events
*   is_variant         = ls_variant
*   ES_EXIT_CAUSED_BY_USER   =
  TABLES
    t_outtab           gt_out
  
EXCEPTIONS
    program_error      1
    OTHERS             2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAP 在制品明细 的相关文章

随机推荐

  • Redis主从复制与Redis集群

    Redis主从复制与Redis集群 前言 一 主从复制 1 是什么 2 能干嘛 3 怎么玩 主从复制 4 新建redis conf配置文件 5 主从集群常用3种 1 主从模式一 一主二从 2 主从模式二 薪火相传 3 主从模式三 反客为主
  • Python循环的技巧

    Python的for循环是coder最常用的语句之一 如果只是简单地对容器循环遍历 那便会少了很多美好的体验 像下面这样 for i in range 10 print i python提供了很多用于循环的技巧 这些方法能让代码更加简洁美观
  • [Linux] 输入命令ls -laF后的各字段含义解析

    在登陆Ubuntu之后 我们切换超级管理用户root su root 然后切换到其所在的主目录 cd 然后以该目录下的所有文件以及文件夹为例进行介绍 我们输入命令查看该目录下面的所有文件以及文件夹 包括隐藏文件 ls laF 然后显示的内容
  • 回调函数使用

    https www cnblogs com shenwen p 9046482 html
  • 用c语言简单实现通讯录(详解和具体代码)

    前言 一 明确通讯录的功能 1 查找通讯录上的姓名 性别 电话和住址 2 可以增加 删除或修改相关信息 二 如何实现通讯录的功能 1 使用struct函数 2 实现通讯录的步骤 1 初始化通讯录并打印目录 2 实现增加信息与展示通讯录 3
  • [ 注意力机制 ] 经典网络模型2——CBAM 详解与复现

    Author Horizon Max 编程技巧篇 各种操作小结 机器视觉篇 会变魔术 OpenCV 深度学习篇 简单入门 PyTorch 神经网络篇 经典网络模型 算法篇 再忙也别忘了 LeetCode 注意力机制 经典网络模型2 CBAM
  • mysql导出数据为文本,MySQL 文本文件的导入导出数据的方法

    搜索热词 MysqL写入数据通常用insert语句 如 insert into person values 张三 20 李四 21 王五 70 但有时为了更快速地插入大批量数据或交换数据 需要从文本中导入数据或导出数据到文本 一 建立测试表
  • 【TensorFlow】TensorBoard的使用(一)

    概述 TensorBoard是一个可视化工具 它可以用来展示网络图 张量的指标变化 张量的分布情况等 特别是在训练网络的时候 我们可以设置不同的参数 比如 权重W 偏置B 卷积层数 全连接层数等 使用TensorBoader可以很直观的帮我
  • 关于spring integration jpa 使用druid 连接池 不可恢复问题排查

    背景 2023年6月10日 测试说生产环境报错 有个job 没执行 我打开服务就报如下错 却看不到代码在哪报错 由于比较忙 直接暴力重启了应用 问题解决 2023年6月17日 测试说生产环境报错 有个job 又没执行 依旧是如上的错 等我有
  • 使用exe4j打包exe

    首先 需要下载一个exe4j的软件 网址 http www softpedia com get Authoring tools Setup creators exe4j shtml 现在主要说一下怎么打exe的过程 1 打开安装好的exe4
  • unity新动画系统之IK动画

    国际惯例 先来一段说明 IK动画全称Inverse Kinematics 即反向动力学 牵一发而动全身的既视感 代码如下 using System Collections using System Collections Generic u
  • Mac使用工具tree,打印项目目录树到Markdown

    主要使用tree这个工具 安装方法 brew install tree 使用方法是 tree 参数 目录 常用方法 显示当前目录及子目录结构 tree 只显示目录 不显示文件 tree d 保存打印的结果到文件 tree gt my pro
  • Python安装包的三种方式: pip在线安装、setup.py安装、whl文件安装

    之前在自己电脑上一直用 pip instal xx 来安装python的包 后来因为公司电脑的网络连接限制 无法通过正常联网的方式安装 所以总结了几种在线 或 离线安装包的方式 具体如下 在线安装 pip install xx 正常在线安装
  • Android android:configChanges的简介

    AndroidManifest xml 文件中 在声明Activity时 会有这样一个属性设置 即 android configChanges 现在就来简单介绍下吧 程序在运行时 一些设备的配置可能会改变 如 横竖屏的切换 键盘的可用性等
  • cannot find -lstdc++解决方案

    今天在ubuntu12 10 64位下编译32位android 4 04源码时报错 usr bin ld skipping incompatible usr lib gcc x86 64 linux gnu 4 5 4 libstdc so
  • Linux:进程(概念)

    学习目标 1 认识冯诺依曼系统 2 认识操作系统概念与定位 系统调用接口 3 理解进程的概念 PCB 4 理解进程的状态 fork创建进程 僵尸进程及孤儿进程 5 了解进程的调度 优先级 竞争性 独立性 并行 并发 6 理解环境变量 熟悉常
  • bert结构模型的转换及[unusedxx]的不拆token

    这里写自定义目录标题 前沿 torch格式转onnc 方法1 方法2 保留 unused9 不分词 transformers模块 tensorflow模块 前沿 业界主流的模型结构包括tensorflow和pytorch 很多时候两者的模型
  • 北斗导航系统伪码定位原理,MATLAB迭代法求解

    用户到卫星的距离可以先简单理解成通过光速 时间差得到 而用户测得的是包含各种误差影响在内的距离 称之为伪距 这是伪距 是用户机钟差 加上用户三维坐标 共四个未知量 所以需要至少同时看到四颗卫星才能实现定位 设用户坐标是 X Y Z 三颗卫星
  • 13、【创业必备企业架构,可开发任意项目】SpringCloud大型企业分布式微服务云架构源码之MySQL 分组

    MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组 在分组的列上我们可以使用 COUNT SUM AVG 等函数 GROUP BY 语法 SELECT column name function col
  • SAP 在制品明细

    Report ZCO019 REPORT zco019 TABLES matdoc SELECT OPTIONS s bukrs FOR matdoc bukrs OBLIGATORY s bu