이글은 아래 링크의 원본 글에 대한 한글 번역 입니다

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을 실행합니다.

결과:

  1. 초기 테이블의 모습.

 

  1. 정렬 버튼을 누른후 변경된 모습.

 

 

끝.

요약: _method_handler , apply_sorting( ).

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다

http://www.saptechnical.com/Tutorials/WebDynproABAP/Sort/tablecolumn.htm

+ Recent posts