`
zjut_xiongfeng
  • 浏览: 280214 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

BDC分辨率

阅读更多

SAP的批输入并不复杂,本程序比较精采的是利用特殊的屏幕跳转移动,解决了在不同分辨率的机器上批输入参数不同的问题。值得参考。

REPORT ZJP NO STANDARD PAGE HEADING LINE-SIZE 95 MESSAGE-ID Z1.
*&---------------------------------------------------------------------&
* For CPZX Only Programmed by Paul Feng(FQ)
* Created Date 2003.06.20
* Last Modify 2004.12.10
*&---------------------------------------------------------------------&

TABLES: LIKP,LIPS,VBUP.

DATA: BEGIN OF RECORD OCCURS 0,
VBELN(010),
MATNR(018),
LFIMG(013),
PIKMG(017),
end of record.
DATA: SENDTO(10),
LGORT(004).

INCLUDE <ICON>.
include bdcrecx1.

SELECTION-SCREEN BEGIN OF BLOCK JHD WITH FRAME TITLE TEXT-001.

PARAMETERS: JHD(10) OBLIGATORY.

*SELECTION-SCREEN SKIP 8.

SELECTION-SCREEN END OF BLOCK JHD.

INITIALIZATION.

GET PARAMETER ID 'ZMM' FIELD GROUP.

start-of-selection.
DATA: N(4) TYPE N, LINE(2) TYPE N, JUMP TYPE N.

CONDENSE JHD NO-GAPS.

N = 10 - STRLEN( JHD ).

IF N NE 0.
DO N TIMES.
CONCATENATE '0' JHD INTO JHD.
ENDDO.
ENDIF.

SELECT SINGLE * FROM LIKP WHERE VBELN EQ JHD.
IF SY-SUBRC >< 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE:/ ICON_INCOMPLETE AS ICON,
'交货单' ,JHD COLOR 2,'不存在!' .
STOP.
ELSE.
SENDTO = LIKP-KUNNR.
ENDIF.
CLEAR LIKP.

SELECT * FROM VBUP WHERE VBELN EQ JHD AND KOSTA EQ 'C'.
IF SY-SUBRC EQ 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE:/ ICON_MESSAGE_CRITICAL_SMALL AS ICON,
'交货单',JHD COLOR 2,'已经被拣配!请检查。'.
STOP.
ENDIF.
ENDSELECT.
CLEAR VBUP.

CASE SENDTO.
WHEN '0000004001'.
LGORT = '0800'.
WHEN '0000004002'.
LGORT = '0801'.
WHEN '0000004007'.
LGORT = '0808'.
WHEN '0000004008'.
LGORT = '0809'.
WHEN OTHERS.
WRITE:/ ICON_MESSAGE_WARNING_SMALL AS ICON,
'交货单中“送达方”错误!请检查。' COLOR 6 INVERSE.
STOP.
ENDCASE.

SELECT * FROM LIPS WHERE VBELN EQ JHD.
RECORD-VBELN = LIPS-VBELN.
RECORD-MATNR = LIPS-MATNR.
RECORD-LFIMG = LIPS-LFIMG.
RECORD-PIKMG = LIPS-LFIMG. "按交货数拣配
APPEND RECORD.
ENDSELECT.
CLEAR LIPS.

DESCRIBE TABLE RECORD LINES N.

IF N EQ 0.
SHIFT JHD LEFT DELETING LEADING '0'.
WRITE: ICON_SYSTEM_HELP AS ICON,
'交货单',JHD COLOR 2,'中没有可供拣配的行项目!'.
STOP.
ENDIF.

DATA: FLAG TYPE N VALUE 0.
PERFORM CHECKKC TABLES RECORD USING FLAG.
IF FLAG EQ 1.
CLEAR RECORD.
STOP.
ENDIF.

perform open_group.

perform bdc_dynpro using 'SAPMV50A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'LIKP-VBELN'.
perform bdc_field using 'BDC_OKCODE'
'=UEKO'.
PERFORM BDC_FIELD USING 'LIKP-VBELN'
RECORD-VBELN.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.

LINE = 0.
N = 0.
JUMP = 0.
DATA : JUMPTO(4) TYPE C.
LOOP AT RECORD.

LINE = LINE + 1.
N = N + 10.

IF JUMP EQ 1.

PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=POPO'.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '0111'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV50A-POSNR'.
JUMPTO = N.
SHIFT JUMPTO LEFT DELETING LEADING '0'.

PERFORM BDC_FIELD USING 'RV50A-POSNR'
JUMPTO.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.

JUMP = 0.

ENDIF.

DATA: F1(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F1.

PERFORM BDC_FIELD USING 'BDC_CURSOR' F1.
* 'LIPSD-PIKMG(01)'.
perform bdc_field using 'BDC_OKCODE'
'=UEKO'.
DATA: F2(18).
CONCATENATE 'LIPS-LGORT(' LINE ')' INTO F2.
PERFORM BDC_FIELD USING F2 " 'LIPS-LGORT(01)'
LGORT.
DATA: F3(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F3.

PERFORM BDC_FIELD USING F3 " 'LIPSD-PIKMG(01)'
RECORD-PIKMG.

CHECK LINE EQ 12.
LINE = 0.
JUMP = 1.

ENDLOOP.
CLEAR F1.
CLEAR F2.
CLEAR F3.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '0220'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WABU'.
PERFORM BDC_TRANSACTION USING 'VL02'.

perform close_group.

REFRESH RECORD.
CLEAR RECORD.

SHIFT JHD LEFT DELETING LEADING '0'.

ULINE.

N = N DIV 10.

WRITE: / ICON_GREEN_LIGHT AS ICON,
'交货单', JHD , '成功拣配!会话条目共:', N , '项!'.
WRITE: / ICON_GREEN_LIGHT AS ICON,
'会话名称:',GROUP COLOR 4 INTENSIFIED.

SET PF-STATUS '100'.

AT USER-COMMAND.
IF SY-UCOMM EQ 'EXECUTE'.

SUBMIT RSBDCSUB WITH MAPPE = GROUP WITH VON = SY-DATUM WITH
BIS = SY-DATUM WITH Z_VERARB = 'X'
WITH FEHLER = ''.

ENDIF.

*&---------------------------------------------------------------------*
*& Form CHECKKC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_RECORD text
* <--P_FLAG text
*----------------------------------------------------------------------*
FORM CHECKKC TABLES P_RECORD STRUCTURE RECORD USING P_FLAG.
TABLES: MARD.
DATA: ERRMESS(90) TYPE C.

LOOP AT RECORD.
SELECT SINGLE * FROM MARD WHERE MATNR EQ RECORD-MATNR AND
WERKS EQ '2010' AND
LGORT EQ LGORT.
IF SY-SUBRC EQ 0.
IF MARD-LABST < RECORD-LFIMG.
IF P_FLAG EQ 0.
MOVE 1 TO P_FLAG.
WRITE:/ ICON_MESSAGE_WARNING AS ICON,
'交货单需求项目不足' COLOR 3 INTENSIFIED OFF.
ULINE.
ENDIF.
ERRMESS = P_RECORD-MATNR.
SHIFT ERRMESS LEFT DELETING LEADING '0'.
CONDENSE ERRMESS NO-GAPS.
CONCATENATE '物料:' ERRMESS ' 在工厂:2010 库存地:' LGORT
' 数量不足!' INTO ERRMESS.
WRITE: / ICON_INCOMPLETE AS ICON, ERRMESS
COLOR 5 INTENSIFIED OFF.
ENDIF.
ELSE.
IF P_FLAG EQ 0.
MOVE 1 TO P_FLAG.
WRITE:/ ICON_MESSAGE_WARNING AS ICON,
'交货单需求项目不足' COLOR 3 INTENSIFIED OFF.
ULINE.
ENDIF.
ERRMESS = P_RECORD-MATNR.
SHIFT ERRMESS LEFT DELETING LEADING '0'.
CONDENSE ERRMESS NO-GAPS.
CONCATENATE '物料:' ERRMESS ' 在工厂:2010 库存地:' LGORT
' 不存在!' INTO ERRMESS.
WRITE:/ ICON_MESSAGE_ERROR_SMALL AS ICON,ERRMESS COLOR 2.
ENDIF.
ENDLOOP.

CLEAR ERRMESS.
CLEAR MARD.
ENDFORM. " CHECKKC


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Jhzyz/archive/2006/02/15/599824.aspx

分享到:
评论

相关推荐

    BDC.rar_bdc.youzack_com_单词_背单词

    标题"BDC.rar_bdc.youzack_com_单词_背单词"揭示了这是一个与英语学习相关的压缩文件,可能包含一个名为"BDC"的应用程序或工具,由youzack.com开发,专为帮助用户背诵单词设计。这个工具利用金山词霸的界面,使用户...

    SAP BDC技术 录屏

    ### SAP BDC技术详解 #### 一、BDC技术概述 **SAP BDC (Batch Data Conversion)** 技术主要用于批量处理数据录入任务,尤其是在需要重复执行相同操作但涉及的数据不同的场景下。例如,在切换系统时,需要将旧系统...

    SAP BDC精华教程

    SAP BDC精华教程 本资源摘要信息将详细介绍SAP BDC(Batch Data Conversion)技术,包括BDC的概念、应用场景、技术原理、编程步骤及实践示例。 BDC概念 BDC是一种SAP系统中的数据批量处理技术,用于将外部数据源...

    BDC数据导入简介

    ### BDC数据导入简介 #### 一、BDC(Business Data Creator)概述 BDC,全称为Business Data Creator,是SAP系统中的一个重要组件,主要用于自动化处理数据输入任务。通过BDC,用户可以创建一系列标准化的数据输入...

    BDC资料 数据导入工具_BDC使用方法

    【BDC资料 数据导入工具_BDC使用方法】 BDC(Batch Input Communication)是SAP系统中用于批量数据导入的关键技术,也称为批输入。它允许用户高效地输入大量数据到SAP系统,尤其适用于需要频繁处理大批量业务数据的...

    abap BDC 操作

    ABAP BDC 操作 ABAP BDC 操作是 SAP 系统中的一种批量数据输入机制,通过模拟事务处理将数据录入 R/3 系统。BDC 类似 SAP 的 CATT,控制性更好,处理能力更强。下面是一个简单的 BDC 实例,包含全部操作过程。 ...

    SAP BDC开发讲解

    ### SAP BDC开发详解 #### 一、SAP BDC技术概述 SAP Business Data Cooperation (BDC) 是一种用于批量或自动化数据录入SAP系统的工具。它通过模拟用户交互来执行事务处理,从而实现数据的批量输入。BDC不仅能够...

    5分钟包教包会,超详细超简单的SAP BDC录屏技术.docx

    SAP BDC录屏技术 本文将详细介绍SAP BDC录屏技术的应用操作,旨在帮助读者快速掌握BDC的使用方法,并能够轻松实现业务顾问的录屏操作。 什么是BDC? BDC是Batch Data Conversion的简称,对应的事物码是SHDB,是一...

    BDC介绍BDC介绍BDC介绍

    【BDC技术详解】 BDC(Batch Data Conversion)是SAP系统中用于批量数据转换的一种技术,主要用于自动化处理大量重复性的数据输入任务。在企业信息化过程中,如系统切换、数据迁移或常规的数据更新等场景,BDC技术...

    SAP ABAP开发学习——第17课:BDC(视频教程)

    在本课程中,我们将深入探讨SAP ABAP中的批量数据通信(Batch Data Communication,简称BDC)技术。BDC是SAP系统中一种用于大量数据输入的高效工具,尤其适用于将外部数据导入到SAP系统中。在SAP ABAP开发的学习过程...

    SAP_BDC_举例讲解

    SAP BDC技术举例讲解 在SAP系统中,BDC(Batch Data Conversion)技术是一种重要的技术,它可以使用户快速地批量处理数据。下面我们将通过一个实例来讲解BDC技术的应用。 在SAP系统中,BDC技术可以使用户快速地...

    SAP BDC与LSMW介绍.pdf

    SAP BDC与LSMW介绍 SAP BDC(Batch Data Conversion)是SAP系统中的一种批量数据转换机制,用于自动化大量重复的数据输入操作。BDC可以模拟人工操作,快速、重复地执行数据输入任务,减少人工操作的时间和劳动强度...

    SAP BDC学习导入教程

    ### SAP BDC(Batch Data Conversion)学习导入教程详解 #### 一、SAP BDC概念与应用场景 SAP BDC,即Batch Data Conversion,是一种在SAP系统中用于批量数据导入的技术。它允许用户通过录制特定的事务处理过程,...

    abap bdc 例子

    标题:“abap bdc 例子” 描述:“简单的BDC实例,有助于理解BDC的作用。” 从提供的文件信息中,我们可以深入探讨ABAP中的BDC(Batch Input or Business Data Capture)概念及其应用实例。BDC是SAP ABAP环境中...

    SAP BDC与LSMW介绍.pptx

    SAP BDC与LSMW介绍 SAP BDC(Batch Data Conversion)是一种批量数据转换机制,允许用户快速、重复地模拟人工操作,以解决大量数据输入问题。在SAP系统中,BDC扮演着重要角色,可以大量、重复地模拟人工操作,避免...

    BDC技术教程

    **BDC技术详解** BDC(Batch Data Conversion)是SAP系统中用于批量数据转换的一种技术,主要用于在大量数据需要录入或更新时自动化处理。在SAP系统中,当需要重复进行相同操作但数据不同的场景时,如系统切换时旧...

    sap BDC技术详解

    ### SAP BDC技术详解 #### 一、BDC技术概述 在SAP系统中,**BDC (Batch Data Conversion)**技术被广泛应用于批量数据处理场景,尤其当需要将大量历史数据或外部系统的数据导入到SAP系统时。通过BDC技术,用户可以...

Global site tag (gtag.js) - Google Analytics