ALV에서 특정 컬럼을 클릭시 SORT시키고 싶은데 방법을 모르겠습니다.
이것저것 찾아봤는데 안되서 죄송하지만 여쭤볼려고 합니다.ㅠ
고수님들 부탁드릴께요.
질문이 성의없어더라도 이해해주세요.ㅠ
댓글 5
-
현준탱
2009.07.13 19:18
-
bd
2009.07.13 19:19
alv 를 class로 display 하던 function으로 display하던 call 되기 전에 관련되는 모든 값이 Setting으로 되어
export 값으로 넘겨 주게 되어 있습니다. (ex : sort, fieldcatalog, layout....)
앞단에서 sort하실 필드 값을 설정해 보세요 ^^. 어떤 function을 사용하셨는지 몰라
function
REUSE_ALV_GRID_DISPLAY 기준으로 소스 적어 놓겠습니다.
힘내시고요 ^^ 좋은 하루되세요 화이팅!
** 앞단 export값 setting 부분 **
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM SORT_BUILD USING GT_SORT[].
PERFORM LAYOUT_BUILD USING GS_LAYOUT.
** sort 부분 설정.
FORM SORT_BUILD USING GT_SORT_TABLE TYPE SLIS_T_SORTINFO_ALV.
CLEAR GT_SORT_LINE.
GT_SORT_LINE-SPOS = '1'.
GT_SORT_LINE-FIELDNAME = 'TFELD'.
GT_SORT_LINE-TABNAME = 'GT_OUTTAB'.
GT_SORT_LINE-UP = 'X'.
APPEND GT_SORT_LINE TO GT_SORT_TABLE.
ENDFORM. " SORT_BUILD
** 실제 값 alv로 dispaly.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER = 'X'
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = GC_STATUS
I_CALLBACK_USER_COMMAND = GC_USER_COMMAND
I_GRID_SETTINGS = GS_GRIDSET
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_SPECIAL_GROUPS = GT_SP_GROUP[]
IT_SORT = GT_SORT[]
IT_EVENTS = GT_EVENTS[]
I_SAVE = GV_SAVE
IS_VARIANT = GS_VARIANT
IS_PRINT = GS_PRINT
TABLES
T_OUTTAB = GT_OUTTAB.
-
max
2009.07.13 20:02
감사합니다^^ 적용해보겠습니다
-
남군
2009.07.14 01:40
자세히 설명 해 줬네요.. ^^; -
남군
2009.07.14 01:56
변수 선언 안되 있음... 급하면 주석처리 ㄱㄱ
퇴근 시간 가까워 오네요..
function alv 하신 경우에는 밑에 처럼 하시면 되겠군요.
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
CLEAR : it_sort.
REFRESH : it_sort.
it_sort-spos = 1.
it_sort-fieldname = 'VBELN'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
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[]
it_sort = it_sort[] " Sort 준 부분~
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 = dis_tab.
">> Class alv 쓰신경우...
data: gt_sort TYPE lvc_t_sort WITH HEADER LINE.
CLEAR : gt_sort.
REFRESH : gt_sort.
gt_sort-spos = 1.
gt_sort-fieldname = 'VBELN '. "필드명
gt_sort-up = c_sel.
gt_sort-subtot = c_sel.
CALL METHOD gv_grid->set_table_for_first_display
EXPORTING
is_layout = gs_fcatlayo
* IS_PRINT = GT_PRINT
it_toolbar_excluding = gt_exclude
is_variant = gt_variant
i_save = 'A'
CHANGING
it_outtab = gt_disp[]
it_fieldcatalog = gt_fieldcat[]
it_sort = gt_sort[].