이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
http://www.saptechnical.com/Tutorials/WebDynproABAP/Sort/tablecolumn.htm
웹딘프로아밥 테이블 정렬(소트) 구현방법
By Swarna Ramya R, Wipro
목표:
복잡하지 않은 다소 간소한 테이블 데이터를 표시할때 ALV 보다는 테이블 UI 엘리먼트를 사용하는 것이 편하고 익숙합니다. 때로는 다수의 숫자 컬럼을 가지는 테이블이 있기도 합니다. 데이터를 더 수월하게 확인하기 위해, 고객들은 컬럼단위로 정렬 기능을 사용하기를 원합니다. 언듯 생각하면 정렬을 구현하는 게 복잡한 작업으로 생각될 수 있지만, 웹딘프로아밥에서는 쉽게 정렬을 구현할 수 있도록 테이블 핸들러에서 기능을 제공합니다.
진행 순서:
1. 웹딘프로아밥 컴포넌트를 만듭니다. 이름: ZWA_TABLE_SORT.
2. 뷰의 레이아웃탭에서, ROOTUIELEMENTCONTAINER 을 선택하고 마우스 오른쪽 버튼을 누른후 Insert Element 합니다. 그러면 엘리먼트 생성을 위한 팝업 창이 열립니다.
3. ID에 Table 을 입력하고 Type은 Table을 선택합니다. 엔터키를 누릅니다.
4. 컨텍스트 탭으로 이동하여 CONTEXT에서 마우스 오른쪽 버튼을 누르고 Create à Node 를 선택합니다.
5. Node Name 에는 MARA를, Dictionary Structure 에는 MARA를, Cardinality 에는 0..n을 선택하고 하단에 버튼중에 ‘Add Attribute from Structure ‘ 버튼을 누릅니다.
6. 사용할 필드로 MATNR, MTART, MATKL, MEINS 를 선택하고 엔터를 누릅니다.
7. 레이아웃탭에서 TABLE 아래 CAPTION의 속성중 text에 Material Details라고 입력합니다.
8. TABLE에서 마우스 오른쪽 버튼을 누르고 Create Binding을 선택합니다. 이제 컨텍스트를 바인딩할 수 있는 팝업 창이 뜹니다.
9. Context 버튼을 누르면 컨텍스트를 선택할 수 있는 팝업 창이 뜹니다.
10. MARA 노드를 선택하고 엔터키를 누릅니다.
11. 선택한 노드 아래에 있는 모든 어트리뷰트가 목록으로 표시됩니다. 이제 엔터키를 누릅니다.
12. 어트리뷰트 탭으로 이동하여, TABLE_CONTROL 레퍼런스 타입 IF_WD_TABLE_METHOD_HNDL 을 추가 합니다.
13. 레이아웃탭의 TABLE의 속성 중 onSort 이벤트 옆에 바인딩쪽에 있는 생성 버튼을 누릅니다. 팝업창에 Action Name 은 ON_TEST_SORT 을 입력하고 엔터키를 누릅니다.
14. 메소드 탭으로 이동합니다.
15. 아래 코드를 각각의 메소드에 입력합니다.
WDDOINIT:
method WDDOINIT .
data LO_ND_MARA type ref to IF_WD_CONTEXT_NODE.
data LO_EL_MARA type ref to IF_WD_CONTEXT_ELEMENT.
data LT_MARA type WD_THIS->ELEMENTS_MARA.
data LS_MARA type WD_THIS->ELEMENT_MARA.
* navigate from to via lead selection
LO_ND_MARA = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_MARA ).
SELECT MATNR MTART MATKL MEINS FROM MARA INTO CORRESPONDING FIELDS OF
TABLE LT_MARA UP TO 10 ROWS WHERE MATNR LIKE 'A%'.
* Bind Table
LO_ND_MARA->BIND_TABLE( LT_MARA ).
endmethod.
WDDOMODIFYVIEW:
method WDDOMODIFYVIEW .
data wd_table type ref to cl_wd_table.
check first_time = abap_true.
* Name of the table UI element to be provided
wd_table ?= view->get_element( 'TABLE' ).
wd_this->table_control ?= wd_table->_method_handler.
*Name of the key attribute of the context node to which the table binding is done to be provided
wd_this->table_control->set_key_attribute_name( 'MATNR' ).
endmethod.
ONACTIONON_TEST_SORT:
method ONACTIONON_TEST_SORT .
wd_this->table_control->apply_sorting( ).
endmethod.
16. 저장하고 활성화 합니다.
17. 실행하기 위해 WebDynpro Application 을 만들고 그 Application을 실행합니다.
결과:
- 초기 테이블의 모습.
- 정렬 버튼을 누른후 변경된 모습.
끝.
요약: _method_handler , apply_sorting( ).
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
http://www.saptechnical.com/Tutorials/WebDynproABAP/Sort/tablecolumn.htm
'ABAP > Web Dynpro ABAP(WDA)' 카테고리의 다른 글
웹딘프로아밥 ALV 테이블 색상표 (0) | 2016.08.29 |
---|---|
[번역] 웹딘프로아밥 테이블 필터링 적용된 데이터만 가져오는 방법 (0) | 2016.08.26 |
웹딘프로아밥 소스코드 검색 ZWD_CODE_SCANNER (0) | 2016.08.25 |
[Link] WDA 최신 자료 = SCN - Web Dynpro ABAP - Content (0) | 2013.06.05 |
[Link] 토마스 영의 WebDynpro ABAP 교육 총정리 [추천 강의] (0) | 2013.06.05 |