Class 를 사용한 ALV 에서는 refresh_table_display 라는 method 를 사용하여
인터널테이블의 변경되었을 때 , 다시 화면에 뿌려줄수 있잖아요.
Function 을 사용하여 ALV를 구현하는 경우에는,
Refresh_table_display와 같은 기능을하는 Function 이나 방법없나요????
다시 ALV를 호출해야 뿌려줘야하는 건가요??
댓글 2
-
엉큼고냥이
2008.08.28 02:03
rs_selfield-refresh = 'X'. -
SkyDream
2008.08.28 22:49
1. ALV Standard status를 복사해서 Refresh 를 위한 버튼을 추가합니다.
2. 아래와 같이 PF_STATUS_SET 이라는 이름과 user_command라는 이름의 form 문을 추가합니다.
3. ALV 호출시 아래와 같이 exporting 값을 설정해 줍니다.
4. User command 처리시 refresh 버튼을 눌렀을 경우
is_selfield-refresh = 'X' 로 설정합니다.
참고로 아래 소스에서는
ALV Standard status를 복사한 것을 'STANDARD'라는 이름으로 만들었고,
refresh 버튼을 'REF'로 만들었습니다.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
....
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
....
*-----------------------------------------------------------------------
* FORM PF_STATUS_SET
*-----------------------------------------------------------------------
FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD' EXCLUDING EXTAB.
ENDFORM.
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
FORM user_command USING i_ucomm TYPE syucomm
is_selfield TYPE slis_selfield.
CASE i_ucomm.
WHEN 'REF'.
is_selfield-refresh = 'X'.
.....
ENDCASE.
ENDFORM. " USER_COMMAND