• 采购单未收货明细范例


    REPORT  Y001.
    TABLESEKKO,EKET,EKPO.
    * 定义内表
    DATABEGIN OF ITAB OCCURS 0,
          EBELN LIKE EKKO-EBELN,
          MENGE LIKE EKPO-MENGE,
          WEMNG LIKE EKET-WEMNG,
    END OF ITAB.

    * 定义数据
    DATAMATNR LIKE EKPO-MATNR,
        MENGE LIKE EKPO-MENGE,
          WEMNG LIKE EKET-WEMNG,
          EBELN LIKE EKPO-EBELN.

    * 定义选择屏幕
    SELECT-OPTIONSEBELN1 FOR EKKO-EBELN,
                    BEDAT FOR EKKO-BEDAT,
                    EKGRP FOR EKKO-EKGRP.
    PARAMETERSR1 RADIOBUTTON GROUP RADI,
                R2 RADIOBUTTON GROUP RADI,
                R3 RADIOBUTTON GROUP RADI.

    * 查询数据
    SELECT K~EBELN INTO CORRESPONDING FIELDS OF TABLE ITAB
    FROM EKKO AS K
    WHERE K~EBELN IN EBELN1
      AND K~BEDAT IN BEDAT
      AND K~EKGRP IN EKGRP.

    LOOP AT ITAB.
    SELECT SUMMENGE INTO ITAB-MENGE FROM EKPO
    WHERE EBELN EQ ITAB-EBELN.
    MODIFY ITAB.
    ENDLOOP

    LOOP AT ITAB.
    SELECT SUMWEMNG INTO ITAB-WEMNG FROM EKET
    WHERE EBELN EQ ITAB-EBELN.
    MODIFY ITAB.
    ENDLOOP.

    * 定义输出界面
    TOP-OF-PAGE .
    WRITE/'采购凭证号',
         22 '物料号码',
         47 '采购订单数量',
         77 '收到货物数量',
         95 '完成标志'.
    ULINE AT /1(130).
    END-OF-PAGE .

    START-OF-SELECTION.

    * 数据输出
    IF R1 'X'.
    LOOP AT ITAB.
    SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
    INTO (MATNRMENGEWEMNGEBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
    ON S~EBELP P~EBELP AND S~EBELN P~EBELN
    WHERE S~EBELN ITAB-EBELN.
    IF ITAB-MENGE > ITAB-WEMNG.
    WRITE/2 EBELN,23 MATNR,41 MENGE,71 WEMNG,97 '否'.
    ULINE AT /1(130).
    CLEAREBELN,MATNR,MENGE,WEMNG.
    ENDIF.
    ENDSELECT.
    ENDLOOP.

    ELSEIF R2 'X'.
    LOOP AT ITAB.
    SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
    INTO (MATNRMENGEWEMNGEBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
    ON S~EBELP P~EBELP AND S~EBELN P~EBELN
    WHERE S~EBELN ITAB-EBELN.
    IF ITAB-MENGE <= ITAB-WEMNG.
    WRITE/2 EBELN,23 MATNR,41 MENGE,71 WEMNG,97 '是'.
    ULINE AT /1(130).
    CLEAREBELN,MATNR,MENGE,WEMNG.
    ENDIF.
    ENDSELECT.
    ENDLOOP.
    ELSE.

    LOOP AT ITAB

    SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
    INTO (MATNRMENGEWEMNGEBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
    ON S~EBELP P~EBELP AND S~EBELN P~EBELN
    WHERE S~EBELN ITAB-EBELNIF ITAB-MENGE > ITAB-WEMNG.
    WRITE/2 EBELN23 MATNR,41 MENGE,71 WEMNG,97 '否'.
    ULINE AT /1(130).
    CLEAREBELN,MATNR,MENGE,WEMNG.
    ENDIF.
    ENDSELECT.
    ENDLOOP.
    ENDIF.

    LOOP AT ITAB.
    IF R3 'X' AND ITAB-MENGE <= ITAB-WEMNG.
    SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
    INTO (MATNRMENGEWEMNGEBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
    ON S~EBELP P~EBELP AND S~EBELN P~EBELN
    WHERE S~EBELN ITAB-EBELN.
    WRITE/2 EBELN,23 MATNR,41 MENGE,71 WEMNG,97 '是'.
    ULINE AT /1(130).
    CLEAREBELN,MATNR,MENGE,WEMNG.
    ENDSELECT.
    ENDIF.
    ENDLOOP.

  • 相关阅读:
    JS实现 div拖拽 限制在屏幕内
    国际化配置simple_form
    simple_form模板templates erb haml
    git rolify
    rails模板生成bootstrap格式的simple_form的erb文件
    rails生成器生成自定义controller模板
    ubuntu 终端常用命令(转)
    Ruby for Rails笔记
    Java基础
    javascript ybmiaov
  • 原文地址:https://www.cnblogs.com/sanlly/p/3520511.html
Copyright © 2020-2023  润新知