注意这里的 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.