ZPPR31
来源:互联网 发布:手机变砖刷机软件 编辑:程序博客网 时间:2024/06/08 09:42
*&---------------------------------------------------------------------*
*& Report ZPPR31
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPPR31.
TYPE-POOLS:SLIS.
TABLES:ZMARD,LIKP,KNA1.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
W_REPID LIKE SY-REPID.
DATA:BEGIN OF ZOUTPUTTAB OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB.
DATA:BEGIN OF ZOUTPUTTAB1 OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB1.
DATA:BEGIN OF ZOUTPUTTAB2 OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB2.
SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:WERKS LIKE BKPF-BUKRS OBLIGATORY,
KUNNR LIKE KNA1-KUNNR .
SELECT-OPTIONS:VBELN FOR ZMARD-VBELN,
WADAT FOR ZMARD-WADAT_IST OBLIGATORY,
BARCODE FOR ZMARD-BARCODE.
SELECTION-SCREEN:END OF BLOCK B1 .
INITIALIZATION.
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM CATALOG.
PERFORM ALVSHOW.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
IF KUNNR IS INITIAL.
SELECT
ZMARD~MATNR AS MATNR
MAKT~MAKTX AS MAKTX
* ZMARD~AUFNR AS AUFNR
ZMARD~VBELN AS VBELN
ZMARD~BARCODE AS BARCODE
ZMARD~WADAT_IST AS WADAT
INTO CORRESPONDING FIELDS OF TABLE ZOUTPUTTAB1
FROM ZMARD
INNER JOIN MAKT ON ZMARD~MATNR = MAKT~MATNR
WHERE ZMARD~WERKS = WERKS AND ZMARD~VBELN IN VBELN AND ZMARD~WADAT_IST IN WADAT AND MAKT~SPRAS = 1 AND ZMARD~BARCODE IN BARCODE.
LOOP AT ZOUTPUTTAB1.
SELECT SINGLE
LIKP~KUNNR AS KUNNR
LIPS~VGBEL AS VGBEL
INTO (ZOUTPUTTAB1-KUNNR,ZOUTPUTTAB1-VGBEL)
FROM LIKP
INNER JOIN LIPS ON LIKP~VBELN = LIPS~VBELN
WHERE LIPS~WERKS = WERKS AND LIKP~VBELN = ZOUTPUTTAB1-VBELN .
SELECT SINGLE
KNA1~NAME1 AS NAME1
INTO ZOUTPUTTAB1-NAME1
FROM KNA1
WHERE LAND1 = 'CN' AND KUNNR = ZOUTPUTTAB1-KUNNR.
* MODIFY ZOUTPUTTAB TRANSPORTING KUNNR NAME1 WHERE VBELN = ZOUTPUTTAB-VBELN.
MOVE-CORRESPONDING ZOUTPUTTAB1 TO ZOUTPUTTAB.
APPEND ZOUTPUTTAB.
ENDLOOP.
ELSE.
SELECT
ZMARD~MATNR AS MATNR
MAKT~MAKTX AS MAKTX
* ZMARD~AUFNR AS AUFNR
ZMARD~VBELN AS VBELN
ZMARD~BARCODE AS BARCODE
ZMARD~WADAT_IST AS WADAT
INTO CORRESPONDING FIELDS OF TABLE ZOUTPUTTAB1
FROM ZMARD
INNER JOIN MAKT ON ZMARD~MATNR = MAKT~MATNR
WHERE ZMARD~WERKS = WERKS AND ZMARD~VBELN IN VBELN AND ZMARD~WADAT_IST IN WADAT AND MAKT~SPRAS = 1 AND ZMARD~BARCODE IN BARCODE.
LOOP AT ZOUTPUTTAB1.
SELECT SINGLE
LIKP~KUNNR AS KUNNR
LIPS~VGBEL AS VGBEL
INTO (ZOUTPUTTAB1-KUNNR,ZOUTPUTTAB1-VGBEL)
FROM LIKP
INNER JOIN LIPS ON LIKP~VBELN = LIPS~VBELN
WHERE LIPS~WERKS = WERKS AND LIKP~VBELN = ZOUTPUTTAB1-VBELN .
SELECT SINGLE
KNA1~NAME1 AS NAME1
INTO ZOUTPUTTAB1-NAME1
FROM KNA1
WHERE LAND1 = 'CN' AND KUNNR = ZOUTPUTTAB1-KUNNR.
* MODIFY ZOUTPUTTAB TRANSPORTING KUNNR NAME1 WHERE VBELN = ZOUTPUTTAB-VBELN.
IF ZOUTPUTTAB1-KUNNR = KUNNR.
MOVE-CORRESPONDING ZOUTPUTTAB1 TO ZOUTPUTTAB.
APPEND ZOUTPUTTAB.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CATALOG .
W_REPID = SY-REPID.
CLEAR IT_FIELDCAT.
DEFINE FIELDCATSET.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-SELTEXT_L = &2.
WA_FIELDCAT-NO_ZERO = &3.
WA_FIELDCAT-FIX_COLUMN = &4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
FIELDCATSET 'KUNNR' '客户编号' 'X' '' .
FIELDCATSET 'NAME1' '客户名称' 'X' '' .
FIELDCATSET 'MATNR' '物料编号' 'X' '' .
FIELDCATSET 'MAKTX' '物料描述' 'X' '' .
FIELDCATSET 'VGBEL' '销售订单号' 'X' '' .
FIELDCATSET 'VBELN' '交货单号' 'X' ''.
FIELDCATSET 'BARCODE' '条码' 'X' ''.
FIELDCATSET 'WADAT' '过账日期' 'X' ''.
ENDFORM. " CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALVSHOW .
PERFORM LAYOUT_INIT USING LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = ZOUTPUTTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV4 SY-MSGV4.
ENDIF.
ENDFORM. " ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'."双击事件
DATA:IT_TEMP LIKE LINE OF ZOUTPUTTAB.
READ TABLE ZOUTPUTTAB INTO IT_TEMP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'VBELN'.
SET PARAMETER ID 'VL' FIELD IT_TEMP-VBELN.
CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'AUN' FIELD IT_TEMP-VGBEL.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
*& Report ZPPR31
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPPR31.
TYPE-POOLS:SLIS.
TABLES:ZMARD,LIKP,KNA1.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
W_REPID LIKE SY-REPID.
DATA:BEGIN OF ZOUTPUTTAB OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB.
DATA:BEGIN OF ZOUTPUTTAB1 OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB1.
DATA:BEGIN OF ZOUTPUTTAB2 OCCURS 0,
MATNR LIKE ZMARD-MATNR,
MAKTX LIKE MAKT-MAKTX,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VGBEL LIKE LIPS-VGBEL,
VBELN LIKE ZMARD-VBELN,
BARCODE LIKE ZMARD-BARCODE,
WADAT LIKE ZMARD-BLDAT,
END OF ZOUTPUTTAB2.
SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:WERKS LIKE BKPF-BUKRS OBLIGATORY,
KUNNR LIKE KNA1-KUNNR .
SELECT-OPTIONS:VBELN FOR ZMARD-VBELN,
WADAT FOR ZMARD-WADAT_IST OBLIGATORY,
BARCODE FOR ZMARD-BARCODE.
SELECTION-SCREEN:END OF BLOCK B1 .
INITIALIZATION.
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM CATALOG.
PERFORM ALVSHOW.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
IF KUNNR IS INITIAL.
SELECT
ZMARD~MATNR AS MATNR
MAKT~MAKTX AS MAKTX
* ZMARD~AUFNR AS AUFNR
ZMARD~VBELN AS VBELN
ZMARD~BARCODE AS BARCODE
ZMARD~WADAT_IST AS WADAT
INTO CORRESPONDING FIELDS OF TABLE ZOUTPUTTAB1
FROM ZMARD
INNER JOIN MAKT ON ZMARD~MATNR = MAKT~MATNR
WHERE ZMARD~WERKS = WERKS AND ZMARD~VBELN IN VBELN AND ZMARD~WADAT_IST IN WADAT AND MAKT~SPRAS = 1 AND ZMARD~BARCODE IN BARCODE.
LOOP AT ZOUTPUTTAB1.
SELECT SINGLE
LIKP~KUNNR AS KUNNR
LIPS~VGBEL AS VGBEL
INTO (ZOUTPUTTAB1-KUNNR,ZOUTPUTTAB1-VGBEL)
FROM LIKP
INNER JOIN LIPS ON LIKP~VBELN = LIPS~VBELN
WHERE LIPS~WERKS = WERKS AND LIKP~VBELN = ZOUTPUTTAB1-VBELN .
SELECT SINGLE
KNA1~NAME1 AS NAME1
INTO ZOUTPUTTAB1-NAME1
FROM KNA1
WHERE LAND1 = 'CN' AND KUNNR = ZOUTPUTTAB1-KUNNR.
* MODIFY ZOUTPUTTAB TRANSPORTING KUNNR NAME1 WHERE VBELN = ZOUTPUTTAB-VBELN.
MOVE-CORRESPONDING ZOUTPUTTAB1 TO ZOUTPUTTAB.
APPEND ZOUTPUTTAB.
ENDLOOP.
ELSE.
SELECT
ZMARD~MATNR AS MATNR
MAKT~MAKTX AS MAKTX
* ZMARD~AUFNR AS AUFNR
ZMARD~VBELN AS VBELN
ZMARD~BARCODE AS BARCODE
ZMARD~WADAT_IST AS WADAT
INTO CORRESPONDING FIELDS OF TABLE ZOUTPUTTAB1
FROM ZMARD
INNER JOIN MAKT ON ZMARD~MATNR = MAKT~MATNR
WHERE ZMARD~WERKS = WERKS AND ZMARD~VBELN IN VBELN AND ZMARD~WADAT_IST IN WADAT AND MAKT~SPRAS = 1 AND ZMARD~BARCODE IN BARCODE.
LOOP AT ZOUTPUTTAB1.
SELECT SINGLE
LIKP~KUNNR AS KUNNR
LIPS~VGBEL AS VGBEL
INTO (ZOUTPUTTAB1-KUNNR,ZOUTPUTTAB1-VGBEL)
FROM LIKP
INNER JOIN LIPS ON LIKP~VBELN = LIPS~VBELN
WHERE LIPS~WERKS = WERKS AND LIKP~VBELN = ZOUTPUTTAB1-VBELN .
SELECT SINGLE
KNA1~NAME1 AS NAME1
INTO ZOUTPUTTAB1-NAME1
FROM KNA1
WHERE LAND1 = 'CN' AND KUNNR = ZOUTPUTTAB1-KUNNR.
* MODIFY ZOUTPUTTAB TRANSPORTING KUNNR NAME1 WHERE VBELN = ZOUTPUTTAB-VBELN.
IF ZOUTPUTTAB1-KUNNR = KUNNR.
MOVE-CORRESPONDING ZOUTPUTTAB1 TO ZOUTPUTTAB.
APPEND ZOUTPUTTAB.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CATALOG .
W_REPID = SY-REPID.
CLEAR IT_FIELDCAT.
DEFINE FIELDCATSET.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-SELTEXT_L = &2.
WA_FIELDCAT-NO_ZERO = &3.
WA_FIELDCAT-FIX_COLUMN = &4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
FIELDCATSET 'KUNNR' '客户编号' 'X' '' .
FIELDCATSET 'NAME1' '客户名称' 'X' '' .
FIELDCATSET 'MATNR' '物料编号' 'X' '' .
FIELDCATSET 'MAKTX' '物料描述' 'X' '' .
FIELDCATSET 'VGBEL' '销售订单号' 'X' '' .
FIELDCATSET 'VBELN' '交货单号' 'X' ''.
FIELDCATSET 'BARCODE' '条码' 'X' ''.
FIELDCATSET 'WADAT' '过账日期' 'X' ''.
ENDFORM. " CATALOG
*&---------------------------------------------------------------------*
*& Form ALVSHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALVSHOW .
PERFORM LAYOUT_INIT USING LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = ZOUTPUTTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV4 SY-MSGV4.
ENDIF.
ENDFORM. " ALVSHOW
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'."双击事件
DATA:IT_TEMP LIKE LINE OF ZOUTPUTTAB.
READ TABLE ZOUTPUTTAB INTO IT_TEMP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'VBELN'.
SET PARAMETER ID 'VL' FIELD IT_TEMP-VBELN.
CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
WHEN 'VGBEL'.
SET PARAMETER ID 'AUN' FIELD IT_TEMP-VGBEL.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
- ZPPR31
- PowerDesigner 需求分析模型RQM入门
- jQuery对Selec,radio,checkbox的相关操作
- PowerDNS - Realtime Update 的 DNS 伺服器介紹
- web.config的加密和解密
- Oracle按位运算符
- ZPPR31
- 左手坐标系和右手坐标系
- 如何发布一个ASP.NET网站
- BSS段、数据段、代码段、堆与栈
- flex的number formatter示例
- 归并算法
- configure: error: No curses/termcap library found
- 再谈typedef(重点为函数指针)
- boost asio io_service学习笔记