标签:
sapabap |
分类: 信息化专栏 |
SAP的批输入并不复杂,本程序比较精采的是利用特殊的屏幕跳转移动,解决了在不同分辨率的机器上批输入参数不同的问题。值得参考。
REPORT ZJP NO STANDARD PAGE HEADING LINE-SIZE 95 MESSAGE-ID
Z1.
*&---------------------------------------------------------------------&
*
*
*
*&---------------------------------------------------------------------&
TABLES: LIKP,LIPS,VBUP.
DATA: BEGIN OF RECORD OCCURS 0,
DATA: SENDTO(10),
INCLUDE .
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.
ENDIF.
SELECT SINGLE * FROM LIKP WHERE VBELN EQ JHD.
IF SY-SUBRC >< 0.
ELSE.
ENDIF.
CLEAR LIKP.
SELECT * FROM VBUP WHERE VBELN EQ JHD AND KOSTA EQ 'C'.
ENDSELECT.
CLEAR VBUP.
CASE SENDTO.
ENDCASE.
SELECT * FROM LIPS WHERE VBELN EQ JHD.
ENDSELECT.
CLEAR LIPS.
DESCRIBE TABLE RECORD LINES N.
IF N EQ 0.
ENDIF.
DATA: FLAG TYPE N VALUE 0.
PERFORM CHECKKC TABLES RECORD USING FLAG.
IF FLAG EQ 1.
ENDIF.
perform open_group.
perform
bdc_dynpro
perform
bdc_field
perform
bdc_field
PERFORM
BDC_FIELD
PERFORM
BDC_DYNPRO
LINE = 0.
N = 0.
JUMP = 0.
DATA : JUMPTO(4) TYPE C.
LOOP AT RECORD.
LINE = LINE + 1.
N = N + 10.
DATA: F1(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F1.
PERFORM
BDC_FIELD
*
perform
bdc_field
DATA: F2(18).
CONCATENATE
PERFORM
BDC_FIELD
DATA: F3(18).
CONCATENATE 'LIPSD-PIKMG(' LINE ')' INTO F3.
PERFORM
BDC_FIELD
ENDLOOP.
CLEAR F1.
CLEAR F2.
CLEAR F3.
PERFORM
BDC_DYNPRO
PERFORM
BDC_FIELD
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,
WRITE: / ICON_GREEN_LIGHT AS ICON,
SET PF-STATUS '100'.
AT USER-COMMAND.
IF SY-UCOMM EQ 'EXECUTE'.
ENDIF.
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*
*
*----------------------------------------------------------------------*
FORM CHECKKC TABLES
TABLES: MARD.
DATA: ERRMESS(90) TYPE C.
LOOP AT RECORD.