1.批次确定的配置,之前有转过,自己也动手配过,可以是可以,但是蛋疼,用户不愿意去弹出的界面选批次。。。
2.因为这边的批次全部是按年月日+流水生成的,所以在批次确定这里就需要按照批次的号来排序选择了

一:INCLUDE LV01FFD0

FORM DIALOG最开始:屏蔽标准的弹窗界面

  1. ENHANCEMENT ZCO15_ENHS. "active version
  2. IF SY-TCODE = 'CO15'.
  3. no_dialog = 'X'.
  4. ENDIF.
  5. ENDENHANCEMENT.

二:INCLUDE  LCOWBFC1

FORM call_batch_determination 最后位置:批次手动逻辑重新确定

  1. ENHANCEMENT ZCO15_ENH. "active version
  2. "循环内表处理
  3. DATA:GV_LINE TYPE I."重新生成的两表对应序列
  4. DATA:VT_MCHB TYPE TABLE OF MCHB.
  5. DATA:VS_MCHB TYPE MCHB.
  6. DATA:LV_ERFMG TYPE MB_ERFMG."需求数量
  7. DATA:LV_LINE TYPE I.
  8. DATA:LV_FLAG TYPE C.
  9.  
  10. CLEAR:GV_LINE,VT_MCHB[],VS_MCHB,LV_ERFMG,LV_LINE."情况临时变量\
  11.  
  12. DESCRIBE TABLE GT_CONTROL_TAB LINES LV_LINE.
  13.  
  14. IF SY-TCODE = 'CO15'.
  15. SORT GT_COMP BY MATNR ASCENDING.
  16.  
  17. LOOP AT GT_COMP." WHERE MARK = 'X'.
  18. GV_LINE = GV_LINE + ."初始化次数
  19.  
  20. AT NEW MATNR.
  21. LV_FLAG = 'X'.
  22. CLEAR:VT_MCHB[].
  23. ENDAT.
  24. LV_ERFMG = GT_COMP-ERFMG."将数量存入变量,后续判断使用
  25. *
  26. * IF GT_COMP-CHARG IS NOT INITIAL."排出已经确定的批次
  27. * LV_ERFMG = LV_ERFMG - GT_COMP-ERFMG.
  28. * ENDIF.
  29.  
  30. IF GT_COMP-MARK EQ 'X' AND GT_COMP-LGORT IS NOT INITIAL
  31. AND GT_COMP-WERKS IS NOT INITIAL AND GT_COMP-CHARG IS INITIAL.
  32. "查询所有物料,工厂,库位级别的批次库存
  33. IF LV_FLAG = 'X'.
  34. SELECT MATNR WERKS LGORT CHARG CLABS INTO CORRESPONDING FIELDS OF TABLE VT_MCHB
  35. FROM MCHB WHERE MATNR = GT_COMP-MATNR
  36. AND WERKS = GT_COMP-WERKS
  37. AND LGORT = GT_COMP-LGORT
  38. AND LVORM = ''
  39. AND CLABS <> .
  40. ENDIF.
  41.  
  42. SORT VT_MCHB BY CHARG ASCENDING.
  43.  
  44. LOOP AT VT_MCHB INTO VS_MCHB WHERE CLABS <> .
  45. IF LV_ERFMG > ."判断是否数量已满足
  46. IF VS_MCHB-CLABS >= LV_ERFMG."满足数量要求,选择批次,并把数量置0
  47. GT_COMP-CHARG = VS_MCHB-CHARG.
  48. VS_MCHB-CLABS = VS_MCHB-CLABS - LV_ERFMG."更新批次剩余数量
  49. LV_ERFMG = .
  50. ELSE."数量不足,使用全部本批次,不足数量循环下一批,并插入行
  51. GT_COMP-CHARG = VS_MCHB-CHARG.
  52. LV_ERFMG = LV_ERFMG - VS_MCHB-CLABS.
  53. GT_COMP-ERFMG = VS_MCHB-CLABS.
  54. VS_MCHB-CLABS = VS_MCHB-CLABS - LV_ERFMG."更新批次剩余数量
  55. IF VS_MCHB-CLABS < .
  56. VS_MCHB-CLABS = .
  57. ENDIF.
  58. GT_COMP-IND_ST = GV_LINE.
  59.  
  60. INSERT GT_COMP.
  61. CLEAR:GT_COMP-CHARG.
  62. GT_COMP-ERFMG = LV_ERFMG.
  63. GV_LINE = GV_LINE + ."自增一位
  64. LV_LINE = LV_LINE + ."自增一位
  65. GT_CONTROL_TAB-IND_TO_TABLE = LV_LINE.
  66. GT_CONTROL_TAB-IND_FOR_START_SORT = LV_LINE.
  67. APPEND GT_CONTROL_TAB.
  68. ENDIF.
  69.  
  70. MODIFY VT_MCHB FROM VS_MCHB.
  71. ENDIF.
  72. ENDLOOP.
  73.  
  74. ENDIF.
  75.  
  76. GT_COMP-IND_ST = GV_LINE.
  77. MODIFY GT_COMP.
  78. CLEAR:LV_FLAG.
  79. ENDLOOP.
  80. ENDIF.
  81.  
  82. ENDENHANCEMENT.

其实隐式增强用起来很爽的,很多程序都是DIALOG程序,只要找到对应位置,就和DIALOG开发一样了。。。

CO15批次确定,标准的太蛋疼了的更多相关文章

  1. HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式

    主要涉及知识点: HTML与XHTML HTML与XHTML的区别 DOCTYPE与DTD的概念 DTD的分类以及DOCTYPE的声明方式 标准模式(Standard Mode)和兼容模式(Quirc ...

  2. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...

  3. GCD详解

    什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允 ...

  4. Asp.net Mvc4默认权限详细(下)

    前言 菜鸟去重复之Sql的问题还没有得到满意的答案.如果哪位大哥有相关的资料解释,能够分享给我,那就太谢谢了. 以后每发表一篇博文我都会将以前遗留的问题在前言里指出,直到解决为止. 本文主要在于探讨一 ...

  5. CSLight研究院之学习笔记结合NGUI(一)

    原地址:http://www.xuanyusong.com/archives/3088 这两天一直在研究CSLight,目前Unity热更新的方式有两种,一种是ulua这个网上的例子已经很多了.还有一 ...

  6. java OOP及相关基础知识汇总(转)

    OOP 对象有三个要素 behavior 接口是怎样的,有什么方法/field可以用? state 调用方法的时候,对象会有什么反应? 只有通过调用方法才能改变一个对象的state identity ...

  7. 基于ffmpeg的C++播放器1

    基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...

  8. headfirst设计模式(1)—策略模式

    什么是策略模式 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化(摘自百度百科) 关键字:算法封装,相互替换,独立变化 算法封装 ...

  9. NEL程序员专用轻钱包 进入0.01状态了

    这个轻钱包能干什么,现在就能在测试网看个余额,转个帐,调用个合约. 而且功能非常程序员化 你会说是不是没啥用   但是他有非常有用,因为他可以很容易的拼出NEOGUI拼不出来的交易 比如参与ICO交易 ...

随机推荐

  1. LeetCode - 198 简单动态规划 打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个代表每 ...

  2. .NET控件集ComponentOne 2018V3发布:新增图表动画及迷你图

    “通过使用 ComponentOne .NET控件产品,实现了兼具 BS 架构灵活性与 CS 架构的客户体验.丰富的控件满足了项目中的各种特殊需求,使得开发的精力可以专注于业务逻辑,为团队节省了时间. ...

  3. jQuery中的$(window).load()与$(document).ready()以及jquery $(document).ready() 与window.onload的区别

    大多数jQuery实例或教程都告诉我们绑定我们的jQuery代码到$(document).ready事件.虽然$(document).ready 事件在大多数情况下都OK,但是它的解析顺序是在文档准备 ...

  4. 最简单的服务器和客户机(python3的编码与解码问题)

    在学习python的过程中,我越来越感觉到python2和python3之间有很多不同点,最近发现的一点就是编码问题. 在代码清单14-1和14-2中,因为作者是用python2来写得,然后我是用py ...

  5. geoserver源码学习与扩展——自动发布shapefile图层

    geoserver通过工作空间Workspace-数据源DataStore-图层Layer管理地理数据,这些信息都通过Catalog进行组织和管理,要完成自动发布只需要在Catalog中增加相应的信息 ...

  6. React Native 异步存储

    异步存储 http://blog.csdn.net/yulianlin/article/details/52473456

  7. 为 10000+ 业务系统提供数据可视化能力的 AntV 又进化了

    小蚂蚁说: 2018 年 AntV 品牌日以知新.知心为主题,旨在让产品一直「知新」,与用户一直「知心」.AntV 是蚂蚁金服全新一代数据可视化解决方案,致力于提供一套简单方便.专业可靠.无限可能的数 ...

  8. Http请求处理流程 管道流程 MVC扩展HttpModule

    HttpApplication  封装了管道处理请求的所有事件 HttpModule 对HttpApplication中事件的扩展 HttpHandler   处理程序  每个请求都要经过Handle ...

  9. 贪心 —— 今年暑假不AC

    贪心基本题, 有助于理解贪心算法的思想 #include <cstdio> #include <algorithm> using namespace std; struct P ...

  10. Golang socket

    1.本例子实现了一个简单的TCP echo.客户端发送Hello,服务端回应World. 参考:<Socket编程> 2.服务端代码 package main import ( " ...