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

一:INCLUDE LV01FFD0

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

ENHANCEMENT   ZCO15_ENHS.    "active version
IF SY-TCODE = 'CO15'.
no_dialog = 'X'.
ENDIF.
ENDENHANCEMENT.

二:INCLUDE  LCOWBFC1

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

ENHANCEMENT   ZCO15_ENH.    "active version
"循环内表处理
DATA:GV_LINE TYPE I."重新生成的两表对应序列
DATA:VT_MCHB TYPE TABLE OF MCHB.
DATA:VS_MCHB TYPE MCHB.
DATA:LV_ERFMG TYPE MB_ERFMG."需求数量
DATA:LV_LINE TYPE I.
DATA:LV_FLAG TYPE C. CLEAR:GV_LINE,VT_MCHB[],VS_MCHB,LV_ERFMG,LV_LINE."情况临时变量\ DESCRIBE TABLE GT_CONTROL_TAB LINES LV_LINE. IF SY-TCODE = 'CO15'.
SORT GT_COMP BY MATNR ASCENDING. LOOP AT GT_COMP." WHERE MARK = 'X'.
GV_LINE = GV_LINE + ."初始化次数 AT NEW MATNR.
LV_FLAG = 'X'.
CLEAR:VT_MCHB[].
ENDAT.
LV_ERFMG = GT_COMP-ERFMG."将数量存入变量,后续判断使用
*
* IF GT_COMP-CHARG IS NOT INITIAL."排出已经确定的批次
* LV_ERFMG = LV_ERFMG - GT_COMP-ERFMG.
* ENDIF. IF GT_COMP-MARK EQ 'X' AND GT_COMP-LGORT IS NOT INITIAL
AND GT_COMP-WERKS IS NOT INITIAL AND GT_COMP-CHARG IS INITIAL.
"查询所有物料,工厂,库位级别的批次库存
IF LV_FLAG = 'X'.
SELECT MATNR WERKS LGORT CHARG CLABS INTO CORRESPONDING FIELDS OF TABLE VT_MCHB
FROM MCHB WHERE MATNR = GT_COMP-MATNR
AND WERKS = GT_COMP-WERKS
AND LGORT = GT_COMP-LGORT
AND LVORM = ''
AND CLABS <> .
ENDIF. SORT VT_MCHB BY CHARG ASCENDING. LOOP AT VT_MCHB INTO VS_MCHB WHERE CLABS <> .
IF LV_ERFMG > ."判断是否数量已满足
IF VS_MCHB-CLABS >= LV_ERFMG."满足数量要求,选择批次,并把数量置0
GT_COMP-CHARG = VS_MCHB-CHARG.
VS_MCHB-CLABS = VS_MCHB-CLABS - LV_ERFMG."更新批次剩余数量
LV_ERFMG = .
ELSE."数量不足,使用全部本批次,不足数量循环下一批,并插入行
GT_COMP-CHARG = VS_MCHB-CHARG.
LV_ERFMG = LV_ERFMG - VS_MCHB-CLABS.
GT_COMP-ERFMG = VS_MCHB-CLABS.
VS_MCHB-CLABS = VS_MCHB-CLABS - LV_ERFMG."更新批次剩余数量
IF VS_MCHB-CLABS < .
VS_MCHB-CLABS = .
ENDIF.
GT_COMP-IND_ST = GV_LINE. INSERT GT_COMP.
CLEAR:GT_COMP-CHARG.
GT_COMP-ERFMG = LV_ERFMG.
GV_LINE = GV_LINE + ."自增一位
LV_LINE = LV_LINE + ."自增一位
GT_CONTROL_TAB-IND_TO_TABLE = LV_LINE.
GT_CONTROL_TAB-IND_FOR_START_SORT = LV_LINE.
APPEND GT_CONTROL_TAB.
ENDIF. MODIFY VT_MCHB FROM VS_MCHB.
ENDIF.
ENDLOOP. ENDIF. GT_COMP-IND_ST = GV_LINE.
MODIFY GT_COMP.
CLEAR:LV_FLAG.
ENDLOOP.
ENDIF. 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. Unity3D学习笔记(三十一):Xlua(1)

    Xlua:腾讯研发,开源免费   配置:文件解压,拷贝到Unity项目里 注意:Xlua文件夹不许移动,不许重命名   运行Xlua: 1.引用命名空间 2.创建虚拟机 3.运行lua语句 4.不需要 ...

  2. Hive安装部署及简单测试 网页《一》

    1.首先关闭机器上之前配置的分布式Hadoop 命令: (在hadoop的安装目录中)  sbin/stop-dfs.sh              关闭: yarn   命令:  sbin/stop ...

  3. Long类型转json时前端js丢失精度解决方案

    一.问题背景 Java后端开发过程中,尤其是id字段,因数值太大,通过json形式传输到前端后,在js解析时,会丢失精度. 如果对精度丢失没有什么概念,可以看一个知乎的帖子,来感受一下:https:/ ...

  4. Video 对象方法 canPlayType()

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. centos7 彻底卸载PHP7

    [root@xxx php-memcached]# rpm -qa | grep php php70w-common--.w7.x86_64 php70w-devel--.w7.x86_64 php7 ...

  6. java环境变量怎么配置

    我们在学习java的时候,必须先来配置一下java的环境变量,也许你不懂什么是java环境变量,我们也不需要懂,你只要知道,java环境变量配置好了,你的电脑就能编译和运行java程序了,这显然是你想 ...

  7. [osg][原]osg的坐标系:使用右手法则Y轴向前、X向、右Z向上。camare的默认姿态:向下看(Z轴负向),头向前(Y轴正向)

    参考:http://blog.csdn.net/tmljs1988/article/details/7561887 图中上半边为opengl坐标系,下半边的osg坐标系: osg::Camare的默认 ...

  8. Study之6 Neutron(配置使用 Routing)-devstack

    ●Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务. l3 agent 需要正确 ...

  9. ubuntu18+gtx1060 +cuda9+cudnn-v7+opencv3.1.0 配置深度学习环境

    将笔记本的ubuntu系统更新到18版本后重新配置深度学习环境,在此记载方便日后参考 具体配置为 Ubuntu18.04+gtx1060+opencv-3.1 第1步 安装依赖包 sudo apt-g ...

  10. python paramiko 模块简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 首先了解到了 p ...