YHLMR007 服装PDA验货差异报表
***********************************************************************
* Title : YHLMR007 *
* Application : LM *
* Subject : 服装PDA验货差异报表 *
* Requested by : Yang_zhenglian (YH_LM) *
* Execution : Online when required *
* Ref no: : ERPS0543 *
* Author : AD_CAIXIANG *
* Req Date : 20121006 *
***********************************************************************
* 服装PDA验货差异报表 *
***********************************************************************
* 设计主要逻辑与原理说明 *
***********************************************************************
*1.取数:按用户输入的交货凭证、验货日期查询自定义表获取交货单号 *
* (有重复取单一值),不包含删除记录 *
* 通过查询条件,先在自建表YTPDAIN中取得交货单号,然后通过交货单号, *
* 去标准表里取得商品,然后回到自建表中找数量。 *
*2.输出: 进行alv显示查询的那段时间里的交货单号对应的商品验货差异信息 *
***********************************************************************
* MODIFICATIONS (latest entry at the top) *
* ------------------------------------------------------------------- *
* REL DATE NAME (COMPANY) DESCRIPTION TASK-NO *
* --- ---- ---- --------- ----------- ------- *
* ERPS0558 *
***********************************************************************
REPORT YHLMR007 NO STANDARD PAGE HEADING
MESSAGE-ID YH_LM01
LINE-SIZE
LINE-COUNT . *----------------------------------------------------------------------
* TYPE-POOLS
*----------------------------------------------------------------------
TYPE-POOLS: SLIS. "ALV *----------------------------------------------------------------------
* TABLES/Structure
*----------------------------------------------------------------------
TABLES: LIKP,
LIPS,
T001W,
MARA,
YTPDAIN. *----------------------------------------------------------------------
* DAGTA /Internal table
*----------------------------------------------------------------------
DATA: BEGIN OF GT_DATA OCCURS ,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
ARKTX LIKE LIPS-ARKTX,
LFIMG LIKE LIPS-LFIMG,
MATNR LIKE LIPS-MATNR,
MEINS LIKE LIPS-MEINS,
NAME1 LIKE T001W-NAME1,
EAN11 LIKE MARA-EAN11,
DATUM LIKE YTPDAIN-DATUM,
MENGE LIKE YTPDAIN-MENGE,
CHSHU LIKE YTPDAIN-MENGE, END OF GT_DATA.
DATA: WA_DATA LIKE GT_DATA. DATA:GT_DATA1 LIKE TABLE OF GT_DATA. *----------------------------------------------------------------------
* Data parameters for alv report use
*----------------------------------------------------------------------
DATA: G_PROGRAM TYPE SY-REPID,
GW_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
GT_EVENT TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT. DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA L_LEN TYPE I. *======================================================================
* SELECTION-SCREEN
*======================================================================
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-. *PARAMETERS: p_werks LIKE mseg-werks OBLIGATORY MEMORY ID wrk. ”PARAMETER 单值选项框定义
*SELECTION-SCREEN PUSHBUTTON pb1 UNIT_NOT_FOUND USER-COMMAND pb1. “PUSHBUTTON 选项框定义
*SELECTION-SCREEN COMMENT 04(20) TEXT-001. ”选择界面文本定义 SELECT-OPTIONS: S_VBELN FOR YTPDAIN-VBELN,
S_DATUM FOR YTPDAIN-DATUM OBLIGATORY,
S_WERKS FOR LIPS-WERKS OBLIGATORY. *& ADD 增加的条件选项,显示差异不为零的条目:
SELECTION-SCREEN SKIP .
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_GB TYPE C AS CHECKBOX DEFAULT 'X' . "界面勾选框定义
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK BLK1. *----------------------------------------------------------------------
* INITIALIZATION
*----------------------------------------------------------------------
INITIALIZATION. * 初始化数据
PERFORM FRM_INITIAL. *----------------------------------------------------------------------
* AT SELECTION-SCREEN
*----------------------------------------------------------------------
AT SELECTION-SCREEN. * 权限检查部分
PERFORM FRM_CHECK_AUTHOR. *======================================================================
* MAIN PROGRAM
*======================================================================
* START-OF-SELECTION
*----------------------------------------------------------------------
START-OF-SELECTION.
*&获取数据
PERFORM FRM_GET_DATA.
*&ALV展示输出
PERFORM FRM_ALV_OUTPUT. *----------------------------------------------------------------------
* END-OF-SELECTION
*---------------------------------------------------------------------- *&---------------------------------------------------------------------*
*& Form FRM_INITIAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_INITIAL. IF S_DATUM[] IS INITIAL.
S_DATUM-LOW = SY-DATUM .
S_DATUM-HIGH = SY-DATUM .
APPEND S_DATUM.
ENDIF. ENDFORM. " FRM_INITIAL *&---------------------------------------------------------------------*
*& Form FRM_CHECK_AUTHOR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CHECK_AUTHOR.
DATA: BEGIN OF LT_T001W OCCURS ,
WERKS LIKE T001W-WERKS,
END OF LT_T001W. SELECT WERKS INTO TABLE LT_T001W
FROM T001W
WHERE WERKS IN S_WERKS.
IF SY-SUBRC NE .
MESSAGE I011 WITH '没有任何地点!'.
ENDIF. LOOP AT LT_T001W.
AUTHORITY-CHECK OBJECT 'M_MATE_WRK'
ID 'WERKS' FIELD LT_T001W-WERKS "S_WERKS-LOW
ID 'ACTVT' FIELD ''.
IF SY-SUBRC NE .
MESSAGE I004 WITH '没有地点' LT_T001W-WERKS '权限!'.
STOP.
ENDIF.
ENDLOOP. ENDFORM. " FRM_CHECK_AUTHOR *&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA . DATA: BEGIN OF LT_VBELN OCCURS ,
VBELN LIKE YTPDAIN-VBELN,
END OF LT_VBELN. DATA: BEGIN OF LT_MATNR OCCURS ,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
LFART LIKE LIKP-LFART,
ARKTX LIKE LIPS-ARKTX,
LFIMG LIKE LIPS-LFIMG,
MATNR LIKE LIPS-MATNR,
MEINS LIKE LIPS-MEINS,
VGBEL LIKE LIPS-VGBEL,
VGPOS LIKE LIPS-VGPOS,
NAME1 LIKE T001W-NAME1,
EAN11 LIKE MARA-EAN11,
DATUM LIKE YTPDAIN-DATUM,
MENGE LIKE YTPDAIN-MENGE,
END OF LT_MATNR. DATA: BEGIN OF LT_EKPO OCCURS ,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
LGORT LIKE EKPO-LGORT,
RESLO LIKE EKPO-RESLO,
END OF LT_EKPO. DATA: BEGIN OF LT_T001W OCCURS ,
WERKS LIKE T001W-WERKS,
NAME1 LIKE T001W-NAME1,
END OF LT_T001W. DATA: BEGIN OF LT_MARA OCCURS ,
MATNR LIKE MARA-MATNR,
EAN11 LIKE MARA-EAN11,
END OF LT_MARA.
DATA: LT_TAB LIKE TABLE OF LT_MATNR WITH HEADER LINE. *&G1.通过输入的时间条件在服装PDA提交表中找到交货单号:
SELECT DISTINCT VBELN
INTO TABLE LT_VBELN
FROM YTPDAIN
WHERE DATUM IN S_DATUM
AND VBELN IN S_VBELN. IF SY-SUBRC NE .
MESSAGE I011 WITH '没有查询到符合条件的数据!'.
STOP.
ENDIF. *&G2.通过找到的交货单号在交货单数据表中取得商品信息:
SELECT A~KUNNR A~VBELN
A~LFART
B~MATNR B~MEINS
B~ARKTX B~LFIMG
B~VGBEL B~VGPOS
INTO CORRESPONDING FIELDS OF TABLE LT_MATNR
FROM LIKP AS A
JOIN LIPS AS B
ON A~VBELN EQ B~VBELN
FOR ALL ENTRIES IN LT_VBELN
WHERE A~VBELN EQ LT_VBELN-VBELN
AND B~WERKS IN S_WERKS. **&G3. 交货数量汇总:
*LOOP AT LT_MATNR.
* COLLECT LT_MATNR.
*ENDLOOP. LT_TAB[] = LT_MATNR[].
SORT LT_MATNR BY VGBEL VGPOS.
DELETE ADJACENT DUPLICATES FROM LT_MATNR COMPARING VGBEL VGPOS.
*&取送达方值
SELECT EBELN EBELP
LGORT RESLO
INTO TABLE LT_EKPO
FROM EKPO
FOR ALL ENTRIES IN LT_TAB
WHERE EBELN EQ LT_TAB-VGBEL
AND EBELP EQ LT_TAB-VGPOS+().
SORT LT_EKPO BY EBELN EBELP.
REFRESH LT_TAB. *&取送达方地点名称
SELECT WERKS NAME1
INTO TABLE LT_T001W
FROM T001W.
* FOR ALL ENTRIES IN LT_TAB.
* WHERE WERKS EQ LT_TAB-KUNNR.
SORT LT_T001W BY WERKS. LT_TAB[] = LT_MATNR[].
SORT LT_TAB BY MATNR.
DELETE ADJACENT DUPLICATES FROM LT_TAB COMPARING MATNR.
*&取商品条码
SELECT MATNR EAN11
INTO TABLE LT_MARA
FROM MARA
FOR ALL ENTRIES IN LT_TAB
WHERE MATNR EQ LT_TAB-MATNR.
SORT LT_MARA BY MATNR.
REFRESH LT_TAB. *&G4.循环内表,对单位送达方信息处理
LOOP AT LT_MATNR.
*&G4.1 转换单位:
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
INPUT = LT_MATNR-MEINS
LANGUAGE = ''
IMPORTING
* LONG_TEXT =
OUTPUT = LT_MATNR-MEINS
* SHORT_TEXT =
EXCEPTIONS
UNIT_NOT_FOUND =
OTHERS = . *&G4.2 如果移库配送 LIKP- LFART=‘NL’ 则 送达方的值取EKPO-LGORT
IF LT_MATNR-LFART = 'NL'.
READ TABLE LT_EKPO WITH KEY EBELN = LT_MATNR-VGBEL
EBELP = LT_MATNR-VGPOS+()
BINARY SEARCH.
IF SY-SUBRC EQ .
LT_MATNR-KUNNR = LT_EKPO-LGORT.
ENDIF. ELSE.
*&G4.3 如果移库返配LIKP- LFART=‘NLR’则送达方的值取EKPO-RESLO
IF LT_MATNR-LFART = 'NLR'.
READ TABLE LT_EKPO WITH KEY EBELN = LT_MATNR-VGBEL
EBELP = LT_MATNR-VGPOS+()
BINARY SEARCH.
IF SY-SUBRC EQ .
LT_MATNR-KUNNR = LT_EKPO-RESLO.
ENDIF.
ENDIF.
ENDIF. *&G4.4. 取得送达方名称:(KNA1)
READ TABLE LT_T001W WITH KEY WERKS = LT_MATNR-KUNNR BINARY SEARCH.
IF SY-SUBRC EQ .
LT_MATNR-NAME1 = LT_T001W-NAME1.
ENDIF. *&G4.5. 取的商品条码:
READ TABLE LT_MARA WITH KEY MATNR = LT_MATNR-MATNR BINARY SEARCH.
IF SY-SUBRC EQ .
LT_MATNR-EAN11 = LT_MARA-EAN11.
ENDIF. *&G4.6 赋值已扫描数量:
LT_MATNR-MENGE = . MODIFY LT_MATNR. ENDLOOP. *&G5. 内表LT_MATNR 的值给入GT_DATA.
LOOP AT LT_MATNR.
MOVE-CORRESPONDING LT_MATNR TO GT_DATA.
APPEND GT_DATA.
ENDLOOP. *&G6. 最终显示的内表循环,差异数量处理
"BREAK AD_CAIXIANG.
LOOP AT GT_DATA. SELECT SINGLE SUM( MENGE )
INTO GT_DATA-MENGE
FROM YTPDAIN
WHERE VBELN EQ GT_DATA-VBELN
AND MATNR EQ GT_DATA-MATNR
AND DATUM IN S_DATUM
AND DELMK NE 'X'
GROUP BY VBELN MATNR. *&G6.1 计算差异数量:
GT_DATA-CHSHU = GT_DATA-LFIMG - GT_DATA-MENGE. MODIFY GT_DATA.
ENDLOOP. *& ADD G6.1.1 只显示差异数量按钮,取得数据,当此条件时,则筛选出差异数量不为零的值:
IF P_GB IS NOT INITIAL.
DELETE GT_DATA WHERE CHSHU = ''.
ENDIF. *&G7. 获取条目数
DESCRIBE TABLE GT_DATA LINES L_LEN. *&G8. 判断是否取得数据
IF L_LEN EQ .
MESSAGE I001 WITH '没有查询到数据!'.
STOP.
ENDIF.
*&G9. 内表排序:
SORT GT_DATA BY VBELN MATNR. ENDFORM. " frm_get_data *&---------------------------------------------------------------------*
*& Form frm_alv_output
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_OUTPUT .
DATA: L_NN TYPE I. DEFINE ADD_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = &.
WA_FIELDCAT-SELTEXT_L = &.
WA_FIELDCAT-KEY = &.
WA_FIELDCAT-COL_POS = L_NN + .
WA_FIELDCAT-JUST = &.
WA_FIELDCAT-OUTPUTLEN = &.
WA_FIELDCAT-FIX_COLUMN = &.
WA_FIELDCAT-NO_ZERO = &.
WA_FIELDCAT-EDIT = &.
APPEND WA_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION. CLEAR GT_FIELDCAT.
REFRESH GT_FIELDCAT. ADD_FIELDCAT 'VBELN' '交货单号' '' '' '' '' '' ''.
ADD_FIELDCAT 'KUNNR' '送达方' '' '' '' '' '' ''.
ADD_FIELDCAT 'NAME1' '送达方名称' '' '' '' '' '' ''.
ADD_FIELDCAT 'EAN11' '商品条码' '' '' '' '' '' ''.
ADD_FIELDCAT 'MATNR' '商品编码' '' '' '' '' 'X' ''.
ADD_FIELDCAT 'ARKTX' '商品名称' '' '' '' '' '' ''.
ADD_FIELDCAT 'LFIMG' '交货数量' '' '' '' '' '' ''.
ADD_FIELDCAT 'MENGE' '已扫描数量' '' '' '' '' '' ''.
ADD_FIELDCAT 'CHSHU' '差异数量' '' '' '' '' '' ''.
ADD_FIELDCAT 'MEINS' '单位' '' '' '' '' '' ''. GW_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
* gw_layout-box_fieldname = 'SEL'. *& 调用函数显示ALV列表
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_PROGRAM
I_SAVE = 'A'
IS_LAYOUT = GW_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
IT_EVENTS = GT_EVENT
TABLES
T_OUTTAB = GT_DATA
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = . ENDFORM. " frm_alv_output
YHLMR007 服装PDA验货差异报表的更多相关文章
- 服装PDA软件|服装销售开单PDA管理软件|服装PDA管理系统|服装PDA点货系统|服装移动POS系统
浩瀚软件为了更好服务于广大批发客户群体进行销售.盘点.调拨配送等.深圳浩瀚软件推出基于无线网络版移动PDA销售开单系统.该系统支持无线3G.WIFI.GPRS系统,用户可以手持PDA在无线网络连接状态 ...
- 仓库、超市、服装、食品、批发零售手持打印PDA开单器-现场无线开单扫描 无线传输电脑
深圳浩瀚技是一家主要从事手持数据终端硬件.软件研究.销售服务为一体的高新企业公司.公司主要销售进销存等无线开单系统.工业级手持PDA,安卓数据采集器,RFID阅读器等设备.我们秉承“诚信.敏捷.繁荣” ...
- 一个神奇的POS -扫描 现场销售 开单打印票据 安卓物联网POS机 手持开单终端机 省时省力 高效准确!!
5寸高清彩屏,高端大气上档次,小巧轻便,独特的包胶防护,坚固耐用,外形精细,美观!与软件灵活对接,解决企业手工盘点,手工输单,库存管理等困难,提高准确率,提高工作效率!! 应用领域:适用于仓库.超市. ...
- Oracle采购模块中的多组织访问控制(MOAC)
1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ...
- 服装盘点机PDA在服装行业颜色尺码仓库条码高效管理应用
服装行业的商品管理的特点是需要管理颜色和尺码 具体逻辑就是: 什么商品,什么颜色,什么尺码,入库多少个? 什么商品,什么颜色,什么尺码,出库多少个? 什么商品,什么颜色,什么尺码,还有库存多少个? 如 ...
- SAP MM MB5L 报表里的差异金额如何调整?
SAP MM MB5L 报表里的差异金额如何调整? 5月3号,收到财务顾问提出的一个问题,说是MB5L报表里有差异. 如下查询条件, 报表结果里显示有差异, 经查,导致这个差异的原因之一是,一些物料批 ...
- PDA移动POS终端系统,实现专柜或店铺的收货、零售、盘点通过无线网络直接连接总部中央数据库,实现高效安全的移动供应链管理
利用PDA移动终端,实现专柜或店铺的收货.零售.盘点等一体化操作,通过无线网络直接连接总部中央数据库,实现高效安全的移动供应链管理. · PDA订货会应用解决方案利用PDA或电脑系统,在订货会现场直接 ...
- 大家都在用PDA条码扫描枪管理企业仓库 PDA无线数据采集程序
PDA数据采集器又称之为手持终端,这些都是用于扫描货物条码统计数据用的,PDA扫描枪有效提高企业仓库管理,在仓库管理中引入条码技术,对仓库的到货检验.入库.出库.调拨.移库移位.库存盘点等各个作业环节 ...
- PDA移动POS开单扫描打票收银系统-带来零售批发 新的技术 新的手段!!
手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...
随机推荐
- 微信小程序-视图
数据绑定 <!--wxml--> <view> {{message}} </view> // page.js Page({ data: { message: 'He ...
- Linux下内存占用和CPU占用的计算
->使用free命令查看内存使用情况: 1.echo 3 > /proc/sys/vm/drop_caches 2.free 或者使用cat /proc/yourpid/status 来查 ...
- 使用celery之深入celery配置(转)
原文:http://www.dongwm.com/archives/shi-yong-celeryzhi-shen-ru-celerypei-zhi/ 前言 celery的官方文档其实相对还是写的很不 ...
- Java面向对象三大特点之继承
概念: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类 ...
- 入坑HttpServletRequest.getParameterMap
在项目开发的时候遇到一个小坑,在发送了异步请求以后,回调的时候传递给我一个参数直接就是HttpServletRequest的请求,下面简称request: 在使用的时候自以为很简单,直接get就好了嘛 ...
- kafka原理存储
http://www.open-open.com/lib/view/open1421150566328.html
- linux 安装 apache2.2.31
Linux下安装和配置Apache 概要:本文介绍在CentOS5.4 Linux中安装和配置Apache2.2.14,并且实现Apache和Tomcat6的整合.文章分为三部分,分别是删除系统自带的 ...
- 用Application和Session统计在线人数[转]
在Global.asax全局变量文件中,修改其中的 Session_Start 和 Session_End 方法:代码如下: protected void Session_Start(object ...
- oracle中如何创建dblink
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据.下面讲介绍如何在本地数 ...
- 51nod 1412 AVL树的种类(dp)
题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> ...