DATA: BEGIN OF typ_mardh,
p_string(6) TYPE c.
INCLUDE STRUCTURE mardh .
DATA: END OF typ_mardh.
DATA: i_mardh LIKE TABLE OF typ_mardh WITH HEADER LINE. " 期末数据
DATA: n_mardh LIKE TABLE OF typ_mardh WITH HEADER LINE. " 当前库存
DATA: m_mardh LIKE TABLE OF typ_mardh WITH HEADER LINE. " 上月期初数据
* 查找库存历史表
SELECT *
FROM mardh
INTO CORRESPONDING FIELDS OF TABLE m_mardh
WHERE ( lfgja > v_gjahr OR ( lfgja = v_gjahr AND lfmon >= v_monat ) ).
LOOP AT m_mardh .
CONCATENATE m_mardh-lfgja m_mardh-lfmon INTO m_mardh-p_string .
MODIFY m_mardh .
IF m_mardh-p_string >= p_estring .
MOVE-CORRESPONDING m_mardh TO i_mardh.
APPEND i_mardh .
ENDIF.
ENDLOOP.
SELECT *
FROM mard
INTO CORRESPONDING FIELDS OF TABLE n_mardh .
LOOP AT n_mardh .
CONCATENATE n_mardh-lfgja n_mardh-lfmon INTO n_mardh-p_string .
MODIFY n_mardh .
MOVE-CORRESPONDING n_mardh TO m_mardh.
APPEND m_mardh .
MOVE-CORRESPONDING n_mardh TO i_mardh.
APPEND i_mardh .
ENDLOOP.
* 期初库存都在表M_MARDH
SORT m_mardh BY matnr werks lgort lfgja lfmon .
DELETE ADJACENT DUPLICATES FROM m_mardh COMPARING matnr werks lgort.
* 期末库存都在表I_MARDH
SORT i_mardh BY matnr werks lgort lfgja lfmon .
DELETE ADJACENT DUPLICATES FROM i_mardh COMPARING matnr werks lgort.