*---------------------------------------------------------------------* * FORM CHECK_IF_ENTRY_IS_TO_DISPLAY * *---------------------------------------------------------------------* * <--- SY_SUBRC - 0: display entry, expanded mode or new entry * * - 4: display entry, collapsed mode and actual entry * * - 8: don't display entry, collapsed mode * *---------------------------------------------------------------------* FORM check_if_entry_is_to_display USING value(key_local) TYPE char01 value(key_in) TYPE any value(mod_flag) TYPE char01 value(begdate) TYPE d. DATA: rec TYPE i, act_entry_flag(1) TYPE c. LOCAL: total, extract. FIELD-SYMBOLS: TYPE x, TYPE x. CLEAR: . = . ASSIGN: key_in TO CASTING, (x_header-keylen) TO . MOVE TO . IF mod_flag NE space AND x_header-delmdtflag EQ 'E' AND begdate LE sy-datum AND GE sy-datum OR x_header-delmdtflag EQ 'B' AND begdate GE sy-datum AND LE sy-datum. act_entry_flag = 'X'. ENDIF. LOOP AT vim_collapsed_mainkeys FROM vim_coll_mainkeys_beg_ix. CHECK = . * WHERE mkey_bf EQ . IF vim_mkey_after_exists NE space. CHECK EQ . * CHECK EQ . ENDIF. vim_last_coll_mainkeys_ix = sy-tabix. IF act_entry_flag NE space. IF mod_flag EQ 'D'. READ TABLE extract WITH KEY TRANSPORTING NO FIELDS. IF sy-subrc EQ 0. DELETE extract INDEX sy-tabix. ENDIF. ENDIF. IF NE . * IF key_in NE vim_collapsed_mainkeys-mainkey. = . * vim_collapsed_mainkeys-mainkey = key_in. = . if ne . = . endif. * vim_collapsed_mainkeys-mkey_bf = . MODIFY vim_collapsed_mainkeys. ENDIF. rec = 4. ELSE. IF NE . * IF key_in NE vim_collapsed_mainkeys-mainkey. rec = 8. ELSE. rec = 4. ENDIF. ENDIF. EXIT. ENDLOOP. IF sy-subrc NE 0. CLEAR rec. ENDIF. IF key_local NE space. = . ENDIF. sy-subrc = rec. ENDFORM. "check_if_entry_is_to_display