• 取未清PO逻辑


     

     注意这里的 GR qty 【   WEMNG】 和 Open Quantity 【OBMNG】

     

    *&---------------------------------------------------------------------*
    *& Report  ZMM_GET_OPEN_PO                                             *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    *&                                                                     *
    *&                                                                     *
    *&---------------------------------------------------------------------*
    
    REPORT  zmm_get_open_po                         .
    
    TYPE-POOLS: slis.
    TABLES:ekko,ekpo,eket.
    DATA:  gt_fcat TYPE slis_t_fieldcat_alv,
           g_layout      TYPE slis_layout_alv,
           wa_fcat TYPE slis_fieldcat_alv.
    *PARAMETERS:i_werks LIKE eine-werks  OBLIGATORY   .
    SELECT-OPTIONS: i_werks FOR ekpo-werks,
                    i_ebeln FOR ekpo-ebeln,
                    i_matnr FOR ekpo-matnr.
    DATA:BEGIN OF tb_po OCCURS 0,
         ebeln TYPE ekpo-ebeln,
         ebelp TYPE ekpo-ebelp,
         pstyp TYPE ekpo-pstyp,
         loekz TYPE ekpo-loekz,
         txz01 TYPE ekpo-txz01,
         matnr TYPE ekpo-matnr,
         werks TYPE ekpo-werks,
         lgort TYPE ekpo-lgort,
         bednr TYPE ekpo-bednr,
         matkl TYPE ekpo-matkl,
         infnr TYPE ekpo-infnr,
         idnlf TYPE ekpo-idnlf,
         menge TYPE ekpo-menge,
         meins TYPE ekpo-meins,
         elikz TYPE ekpo-elikz,
         bsart TYPE ekko-bsart,
         lifnr TYPE ekko-lifnr,
         ernam TYPE ekko-ernam,
         aedat TYPE ekko-aedat,
         frggr TYPE ekko-frggr,
         frgsx TYPE ekko-frgsx,
         frgke TYPE ekko-frgke,
         wamng TYPE eket-wamng,
         flag(30),
       END OF tb_po.
    
    SELECT      ekpo~ebeln
         ekpo~ebelp
         ekpo~loekz
         ekpo~pstyp
         ekpo~txz01
         ekpo~matnr
         ekpo~werks
         ekpo~lgort
         ekpo~bednr
         ekpo~matkl
         ekpo~infnr
         ekpo~idnlf
         ekpo~menge
         ekpo~meins
         ekpo~elikz
         ekko~bsart
         ekko~lifnr
         ekko~ernam
         ekko~aedat
         ekko~frggr
         ekko~frgsx
         ekko~frgke
         eket~wamng
     INTO CORRESPONDING FIELDS OF TABLE tb_po  FROM ekpo
     INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln
     INNER JOIN eket ON ekpo~ebeln = eket~ebeln AND ekpo~ebelp = eket~ebelp
     WHERE ekpo~loekz EQ space
       AND ekpo~elikz EQ space
       AND ekpo~werks IN i_werks
       AND ekpo~matnr IN i_matnr
       AND ekpo~ebeln IN i_ebeln
       AND ekpo~bstyp = 'F'
       AND ekko~bsart <> 'ZIO'.
    
    LOOP AT tb_po.
    
    
      IF tb_po-wamng = 0.
        tb_po-flag = '未交货'.
      ELSE.
        IF tb_po-menge = tb_po-wamng.
          tb_po-flag = '已交货,需勾选交货完成'.
        ELSE.
          IF tb_po-wamng < tb_po-menge .
            tb_po-flag = '部分交货'.
          ENDIF.
        ENDIF.
      ENDIF.
      MODIFY tb_po.
      CLEAR tb_po.
    ENDLOOP.
    
    
    wa_fcat-fieldname = 'BSART'.
    wa_fcat-seltext_m = '凭证类型'.
    APPEND wa_fcat TO gt_fcat.
    
    wa_fcat-fieldname = 'EBELN'.
    wa_fcat-seltext_m = 'PO号'.
    APPEND wa_fcat TO gt_fcat.
    
    wa_fcat-fieldname = 'EBELP'.
    wa_fcat-seltext_m = 'PO项目号'.
    APPEND wa_fcat TO gt_fcat.
    
    wa_fcat-fieldname = 'PSTYP'.
    wa_fcat-seltext_m = '类别'.
    APPEND wa_fcat TO gt_fcat.
    *
    *wa_fcat-fieldname = 'LOEKZ'.
    *wa_fcat-seltext_m = 'PO删除标识'.
    *APPEND wa_fcat TO gt_fcat.
    
    wa_fcat-fieldname = 'TXZ01'.
    wa_fcat-seltext_m = '短文本'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'MATNR'.
    wa_fcat-seltext_m = '物料号'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'WERKS'.
    wa_fcat-seltext_m = '工厂'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'LGORT'.
    wa_fcat-seltext_m = '库存地点'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'BEDNR'.
    wa_fcat-seltext_m = '需求跟踪号'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'MATKL'.
    wa_fcat-seltext_m = '物料组'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'INFNR'.
    wa_fcat-seltext_m = '采购信息记录号'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'IDNLF'.
    wa_fcat-seltext_m = '供应商物料编号'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'MENGE'.
    wa_fcat-seltext_m = '采购订单数量'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'WAMNG'.
    wa_fcat-seltext_m = '交货数量'.
    APPEND wa_fcat TO gt_fcat.
    
    wa_fcat-fieldname = 'MEINS'.
    wa_fcat-seltext_m = '订单单位'.
    APPEND wa_fcat TO gt_fcat.
    *wa_fcat-fieldname = 'ELIKZ'.
    *wa_fcat-seltext_m = '交货已完成'.
    *APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'LIFNR'.
    wa_fcat-seltext_m = '供应商'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'ERNAM'.
    wa_fcat-seltext_m = '人名'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'AEDAT'.
    wa_fcat-seltext_m = '创建日期'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'FLAG'.
    wa_fcat-seltext_m = '状态'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'FRGGR'.
    wa_fcat-seltext_m = '审批组'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'FRGSX'.
    wa_fcat-seltext_m = '批准策略'.
    APPEND wa_fcat TO gt_fcat.
    wa_fcat-fieldname = 'FRGKE'.
    wa_fcat-seltext_m = '批准标识'.
    APPEND wa_fcat TO gt_fcat.
    
    g_layout-colwidth_optimize = 'X'.
    g_layout-info_fieldname = 'COL_COLOR'.
    *  g_layout-coltab_fieldname = 'COL_COLOR'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
    *     I_INTERFACE_CHECK                 = ' '
    *     I_BYPASSING_BUFFER                = ' '
    *     I_BUFFER_ACTIVE                   = ' '
       i_callback_program                = sy-repid
    *     I_CALLBACK_PF_STATUS_SET          = ' '
    *     I_CALLBACK_USER_COMMAND           = ' '
    *     I_CALLBACK_TOP_OF_PAGE            = ' '
    *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *     I_CALLBACK_HTML_END_OF_LIST       = ' '
    *     I_STRUCTURE_NAME                  =
    *     I_BACKGROUND_ID                   = ' '
    *     I_GRID_TITLE                      =
    *     I_GRID_SETTINGS                   =
       is_layout                         = g_layout
       it_fieldcat                       = gt_fcat[]
    *     IT_EXCLUDING                      =
    *     IT_SPECIAL_GROUPS                 =
    *     IT_SORT                           =
    *     IT_FILTER                         =
    *     IS_SEL_HIDE                       =
    *     I_DEFAULT                         = 'X'
       i_save                            = 'A'
    *     IS_VARIANT                        =
    *     IT_EVENTS                         =
    *     IT_EVENT_EXIT                     =
    *     IS_PRINT                          =
    *     IS_REPREP_ID                      =
    *     I_SCREEN_START_COLUMN             = 0
    *     I_SCREEN_START_LINE               = 0
    *     I_SCREEN_END_COLUMN               = 0
    *     I_SCREEN_END_LINE                 = 0
    *     IT_ALV_GRAPHICS                   =
    *     IT_HYPERLINK                      =
    *     IT_ADD_FIELDCAT                   =
    *     IT_EXCEPT_QINFO                   =
    *     I_HTML_HEIGHT_TOP                 =
    *     I_HTML_HEIGHT_END                 =
    *   IMPORTING
    *     E_EXIT_CAUSED_BY_CALLER           =
    *     ES_EXIT_CAUSED_BY_USER            =
      TABLES
        t_outtab                          = tb_po
    *   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-MSGV3 SY-MSGV4.
    ENDIF.
  • 相关阅读:
    关内存地址的分配
    关于URL
    linux的8小时差问题解决
    关于Scanner类
    域名后缀
    匿名对象用法
    final修饰符,多态,抽象类,接口
    二维数组的传参
    关于随机数
    面向对象编程的三大基本特征
  • 原文地址:https://www.cnblogs.com/rainysblog/p/12015016.html
Copyright © 2020-2023  润新知