제가 책을 보고 연습할때는 reuse_alv_grid_display 평션을 이용할때
alv가 기본으로 제공하는 toolbar가 생성 되었습니다.
그런데 회사의 어떤 코드를 보니 기본으로 제공하는 툴바가 생성이 되지 않는것입니다.
그래서 제가 짠 프로그램이랑 비교 하고는 있는데 뭐가 틀린지 잘 모르겠네요.
툴바 뿐만 아니라 메뉴바에 있는 툴바속의 기능들도 사라졌네요..
어떤 속성을 놓친거죠?
회사 사람들에게 물어보니
form pf_status_set using ft_extab type slis_t_extab.
set pf-status 'STATUS1000'.
endform. "PF_STATUS_SET
이런식으로 스탠다드를 끌여온다고하는데 이해가 안되네요.. 지동으로 생성되어야 할것이 왜 생성이 안되는거죠?
댓글 3
-
無念군
2009.05.20 03:17
-
현준탱
2009.05.20 07:38
소스 어딘가에...이벤트를 설정하는 부분이 있으실것 같은데요^^;
CONSTANTS: c_status_set TYPE slis_formname VALUE 'PF_STATUS_SET'.
중략...
PERFORM form_setting TABLES g_events_t
USING : slis_ev_pf_status_set c_status_set,
slis_ev_user_command c_user_command,
slis_ev_top_of_page c_top_of_page.
*&---------------------------------------------------------------------*
*& Form form_setting
*&---------------------------------------------------------------------*
* ALV 이벤트 종류 Set.
*----------------------------------------------------------------------*
* -->p_events_t 이벤트 Table
* -->p_com 이벤트 종료
* -->p_form 관련된 FORM문
*----------------------------------------------------------------------*
FORM form_setting TABLES p_events_t LIKE g_events_t
USING p_com
p_form.
* 해당 FORM발췌
DATA : l_event_s TYPE slis_alv_event.
READ TABLE p_events_t WITH KEY name = p_com
INTO l_event_s.
* FORM 생성
IF sy-subrc EQ 0.
MOVE p_form TO l_event_s-form.
MODIFY p_events_t FROM l_event_s INDEX sy-tabix.
ENDIF.
ENDFORM. "FORM_SETTING
*">>
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_bypassing_buffer = ' '
* i_buffer_active = 'X'
i_callback_program = g_program
i_background_id = 'ALV_BACKGROUND'
is_layout = g_layout_s
i_save = g_save
is_variant = g_variant_s
it_events = g_events_t[] --> 이부분...??
it_fieldcat = g_fieldcat_t[]
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = g_exit_caused_by_user_s
TABLES
t_outtab = 인터널 테이블.
*&---------------------------------------------------------------------*
*& Form PF_STATUS_SET
*&---------------------------------------------------------------------*
* PF-STATUS 정해주는 로직.
*----------------------------------------------------------------------*
FORM pf_status_set USING p_rt_extab TYPE slis_t_extab.
SET PF-STATUS '100'. "EXCLUDING RT_EXTAB.
ENDFORM. " PF_STATUS_SET
이런식으로 사용 했을것 같군요.
설마 GUI STATUS 안 만드신건 아니시죠^^;;
-
아밥돌이
2009.05.21 00:01
네 감사합니다.
SE80 에서 해당 프로그램을 조회하여,
GUI_STATUS 에 1000번 명령바에 해당하는 부분을 보시면..
아마 기본 스텐다드의 툴바에 .. 다른 임의적으로 생성한 아이콘 버튼이라던지 ..
명령 아이콘이 존재 할듯 하여 보여집니다만..
(스텐다드에서 지원하는 툴바나 아이콘 이외에 ..필요 한 기능을 추가 삽입 하거나 제외하는 경우
제어하기 위해서 사용하는 거루 알고 있습니다.. )
해당 내용을 사용할때,
DATA 선언부분이나 ,,
data: G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'STATUS1000'.
Reuse_alv_grid_display Function 에서
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
I_CALLBACK_PF_STATUS_SET = STATUS1000
I_CALLBACK_USER_COMMAND = G_USER_COMMAND
I_SAVE = 'X'
IT_EVENTS = GT_EVENTS[]
IS_VARIANT = VARIANT
TABLES
T_OUTTAB = ITAB.
의 형태로 되어 있지 않을까 하는 생각이 드는데요
include 형태로 끌어 오셨다면 동일하세 세팅하여 주셔야 하실겁니다
아니면 두부분을 죄다 주석처리를 해주시면.. 되실듯 합니다만..