ALV SET_TABLE_FOR_FIRST_DISPLAY 메소드를 사용하고 있는데
정렬을해서 같은 내용끼리는 합쳐져 보이도록 하고 싶습니다.
그래서 검색한 결과 REUSE_ALV_GRID_DISPLAY 에서 IT_SORT를 이용한 방법을 알아냈습니다.
근데 제가 현재 사용하는건 메소드라서요.. 메소드에도 IT_SORT라는 변수가 있던데
타입이 무엇인지 정확히 모르겠습니다.
글고 이 IT_SORT를 지정해주면 동일한 내용끼리 합쳐져 보이는게 맞는지요?
그리고,, 평소부터 넘 궁금하던 사항인데요..
REUSE_ALV_GRID_DISPLAY 이 함수를 사용할 땐
제가 임의로 조합한 인터널 테이블은 안뿌려지던데 원래 그런건가요?
(예를들어 A란 테이블에서 3개의 필드 B란 테이블에서 3개의 필드 이렇게 조합해서 화면에 뿌려주고 싶습니다)
만약 두번째 사항이 가능하다면
구지 ALV SET_TABLE_FOR_FIRST_DISPLAY 이 메소드를 사용할 필요가 없기때문에
문제 해결도 가능할거 같은데,,
고수님들,, 제게 방법좀 알려주세요..ㅜㅜ
댓글 4
-
신동욱
2010.10.19 19:14
-
꼬마호랑이
2010.10.19 20:40
초짜라서 질문을 잘 이해했는지 모르겠지만 예를들면 zfited301(a) zfited302 (b)테이블이 있다고 하면 우선 인터널 테이블을 구조체로 해서 만들어줍니다.
data: begin of gt_itab occurs 0,
corp type a-corp,
corpnm type a-corpnm,
stcd type a-stcd,
gjahr type b-gjahr,
sale type b-sale,
earn1 type b-earn1,
end of gt_itab.
다음 inner join구문으로 두테이블에서 원하는 필들들만 가져옵니다.
select a~corp a-corpnm a-stcd b-gjahr b-sale b-earn1
into corresponding fields of table gt_itab from
zfited301 as a inner join zfited302 as b on a~corp
= b~corp
다음은 필드카탈로그를 같은 구조로 만들어주시거염 REUSE_ALV_GRID_DISPLAY 함수부르신다음에 여기서 i_structure_name 이아니라
it_fieldcat = 님이만드신 필드카탈로드를 적으주시면되염. 나머지는 다같게 하시구염.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_sort = gt_sort
tables
t_outtab = gt_itab.
제대로 된 답변인지는 모르겠습니다 ^^
-
koreadbs
2010.10.19 22:37
data : gs_sort TYPE lvc_s_sort,
gt_sort TYPE lvc_t_sort WITH HEADER LINE.
gt_sort-spos = 1.
gt_sort-fieldname = 'FISTL'.
gt_sort-up = 'X'.
APPEND gt_sort. CLEAR gt_sort.
gt_sort-spos = 2.
gt_sort-fieldname = 'BEZEICH'.
gt_sort-up = 'X'.
APPEND gt_sort. CLEAR gt_sort.
gt_sort-spos = 3.
gt_sort-fieldname = 'KSTAR'.
gt_sort-up = 'X'.
APPEND gt_sort. CLEAR gt_sort.
gt_sort-spos = 4.
gt_sort-fieldname = 'KTEXT'.
gt_sort-up = 'X'.
APPEND gt_sort. CLEAR gt_sort.
gt_sort-spos = 5.
gt_sort-fieldname = 'GUBUN'.
gt_sort-up = 'X'.
** gt_sort-subtot = 'X'.
APPEND gt_sort. CLEAR gt_sort.
위와 같이 코딩하시고, set_table_for_first_display 메소드에 추가해주시면 처리가 될것 같습니다.
참고로 위에 보이는 fieldname은 화면에 뿌려지는 itab의 필드 명입니다.
도움이 되셨기를 바랍니다.
-
LE
2010.10.19 22:53
해결했습니다. 넘넘 감사드려요^^
SE24 트렌젝션 들어가셔서 cl_gui_alv_grid 란 클래스를 검색하시면 여러가지 메소드가 나옵니다.
alv 관련 메소드인데 오른쪽 상단에 찾기버튼으로 검색하셔서 set_table_for_first_display를 찾습니다.
이 메소드의 매개변수를 보시면 IT_SORT는 LVC_T_SORT의 유형을 참조하고 있습니다.
LVC_T_SORT타입은 LVC_S_SORT의 라인타입을 참조하고 있으며, 이 구조체의 UP, DOWN 속성을 활용하시면
질문자님이 원하시는것처럼 같은 컬럼내에 동일한 값을 기준으로 합쳐서 나타나게 됩니다.
그리고 임의로 조합한 필드라는 말은 제가 이해가 잘 안되서 답변이 힘드네요.
참고하시길 바랍니다.