안녕하세요. 벌써 퇴근 시간이 다 되어 가네요. ^^
다름이 아니라 Filter와 관련하여 문의 드릴것이 있어 이렇게 글을 남깁니다.
현재 ALV로 구현된 프로그램이 있습니다. ALV 기능 중 Set Filter / Delete Filter 기능도 포함되어 있고요.
그런데 이 프로그램 사용하는 유저 중 특정 유저가 Set Filter 기능을 이용하여 특정 데이터만
보이도록 Filter 기능을 지정해 두었습니다. 그런데 문제는 이 Set Filter로 지정된 것이 해당 프로그램을
사용하는 모든 유저에게 적용되어 문제가 되어 있습니다. 우선 해당 프로그램 실행시 Delete Filter로
기 지정된 Filter를 삭제하여도 다시 프로그램일 실행시키면 기존에 지정된 Set Filter가 적용됩니다.
해당 Set Filter를 삭제할 수 있는 방법이 없는지요?? 그리고 AVL 기능 중 개인별로 Set Filter로 지정할 수 있도록 하는
기능이 있는지요??
고수님들 답변 부탁 드립니다. ^^
댓글 3
-
버미!
2010.02.19 17:06
-
kan145
2010.02.19 21:13
저같은 경우는 일단은 레이아웃저장에서 기본레이아웃을 기본세팅으로 저장해둔 후
현업사용자에게 통보를 통해 개인 레이아웃인 경우 사용자 고유지정에 체크를 하고 사용하라고 말하고 있습니다.
-
MM초보^^
2010.02.28 03:06
두분 답변 감사 합니다.
kan145님 답변 처럼 해당 담당자가 Set Filter를 설정 후 Default layout으로 저장을 해놓아서 모두 사람이 해당 Filter가 적용 받았네요.
그래서 Save Layout 시 User-specific를 선택하고 저장 하도록 하였습니다. ^^
ALV 펑션을 이용하셨다면
아래 필터 적용하는 부분에서 User ID별로 해주시면 되겠네요..
DATA : wa_filter TYPE LINE OF slis_t_filter_alv.
CLEAR wa_filter.
REFRESH gt_filter.
if sy-uname eq User ID.
wa_filter-fieldname = 'GBSTA'.
wa_filter-tabname = 'GT_ALV_LIST'.
wa_filter-valuf = 'C'.
wa_filter-valuf_int = 'C'.
wa_filter-sign0 = 'I'.
wa_filter-optio = 'NE'.
APPEND wa_filter TO gt_filter.
endif.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
....생략....
it_filter = gt_filter[] "Filter
TABLES
t_outtab = t_outtab " ALV Contents
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.