zoukankan      html  css  js  c++  java
  • 采购单未收货明细范例

    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.

  • 相关阅读:
    Eclipse显示行号
    Eclipse中让Scala缩进变为4
    阿里云Maven仓库
    Eclipse格式化整个项目
    Spring拦截器
    Spring配置redis及使用
    Java加密数据库
    Eclipce远程调试
    服务器部署Java Web及微信开发调试
    基本MVC2模式创建新闻网站
  • 原文地址:https://www.cnblogs.com/sanlly/p/3520511.html
Copyright © 2011-2022 走看看