SAP/ALV
I_CALLBACK_PF_STATUS_SET
DrkLion
2007. 10. 2. 11:56
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = pgm
* i_callback_pf_status_set =
i_callback_user_command = 'USER_COMMAND'
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = fieldcat
* it_excluding = pf_extab
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT = ' '
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = download
EXCEPTIONS
program_error = 1
OTHERS = 2.
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = pgm
* i_callback_pf_status_set =
i_callback_user_command = 'USER_COMMAND'
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = fieldcat
* it_excluding = pf_extab
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT = ' '
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = download
EXCEPTIONS
program_error = 1
OTHERS = 2.
SAP 가 제공하는 Standard ALV status 를 사용하지 않고, user 자신만의 Status를 만들어 사용하거나 불필요한 기능을 제외시키기 위해 사용된다.
1. Function Group SALV 에서 GUI Status 를 사용할 프로그램으로 복사한다.
2. PF-Status 를 수정해 기능을 Function을 추가 또는 제거 한다.
4. 적용
DATA: G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD001'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = pgm
i_callback_pf_status_set = G_STATUS
.
.
.
form 문에 using 없을 경우도 덤프 ~
FORM status USING it_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS' .
ENDFORM.
주의 할점은 반드시 변수로 pf status를 지정해 줘야 한다는거.. 안그럼 덤프나요..