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开发一样了。。。

最新文章

  1. C:Wordpress自定义文章类型(图视频)
  2. 遍历指定目录下指定类型文件的函数(fatkun Fix版)
  3. juery与表单中name=&quot;nodeName&quot;引起的冲突
  4. 给li设置float浮动属性之后,无法撑开外层ul的问题。
  5. php页面输出时,js设置input框的选中值
  6. poj 1696 Space Ant (极角排序)
  7. Sublime Text 3编辑器安装
  8. iOS 拷贝、剪切和粘贴理论基础(转)
  9. Dao模型设计(基于Dao与Hebernate框架)
  10. 3、第3课CSS块级、行内元素、绝对定位、相对定位、固定位置20150922
  11. AngularJS 之Services讲解
  12. Nginx Rewrite规则初探(转)
  13. exit() _exit()
  14. Angular - - angular.Module
  15. CSS 画三角形、圆
  16. Android Studio 字体和字号调整
  17. 内存泄露java.lang.OutOfMemoryError: PermGen space解决方法
  18. jdk各版本名称
  19. nginx 屏蔽恶意请求
  20. 【RF库XML测试】Get Element

热门文章

  1. Bytom交易说明(账户管理模式)
  2. SQL语句总结2018-11-7
  3. 基于OAuth2.0的第三方认证
  4. Vue学习五:v-for指令使用方法
  5. 将 Graphviz .dot 文件转换为其他格式的图像
  6. Python多线程爬虫
  7. 5、lvs使用进阶(01)
  8. Python学习 day04打卡
  9. dataTables使用整理(一)
  10. cacheManager ABP中的缓存