공식적으로 부모 컴포넌트를 찾는 방법은 없습니다.

여기서는 data_container_superior 를 활용합니다.

 

서버버전은 731 기준입니다.

 

 

  DATA: lo_wdr_comp TYPE REF TO cl_wdr_component,
        lo_wdr_client_comp TYPE REF TO cl_wdr_client_component,
        lv_parent_comp_name TYPE string.

  lo_wdr_comp ?= wd_this->wd_get_api( ).
  lo_wdr_client_comp ?= lo_wdr_comp->data_container_superior.
  lv_parent_comp_name = lo_wdr_client_comp->parent->component_name.

 

저작자 표시 변경 금지
신고
Posted by boy0
ABAP2017.10.27 09:20

ABAP의 BINARY SEARCH의 특이한 점은 키가 동일한 레코드중 첫번째를 찾아준다는 점입니다.

일반적으로 바이너리 서치라고 하면 반반 나눠서 중간에 있는걸 검사하고 키가 동일하면 거기서 끝나지만 ABAP 에서는 동일한 키를 가진 레코드중에 첫번째를 찾아서 계속 바이너리 서치를 합니다.

 

확인용 테스트 프로그램

DATA: BEGIN OF lt_test OCCURS 0,
        col1 TYPE char1,
        col2 TYPE i,
      END OF lt_test.

* lt_test = [ { A, 1 } , { A, 2} , ... { A, 10} ]
DO 10 TIMES.
  lt_test-col1 = 'A'.
  lt_test-col2 = sy-index.
  APPEND lt_test.
ENDDO.

READ TABLE lt_test WITH KEY col1 = 'A'.
WRITE:/ lt_test-col2.

READ TABLE lt_test WITH KEY col1 = 'A' BINARY SEARCH.
WRITE:/ lt_test-col2.

 

 

 

저작자 표시 변경 금지
신고
Posted by boy0

서버버전 SAP NW ABAP 7.31 이상에서 가능합니다.

wdr_task=>application->get_api( )->get_client_information( )->get_client_width( ).

또는

wd_this->wd_get_api( )->get_component( )->get_application( )->get_client_information( )->get_client_width( ).

 

참고:

https://help.sap.com/viewer/7b44f2a7728810148a4b1a83b0e91070/7.5.9/en-US/d1c9f41cf86348d3851f07e90966bbd5.html

저작자 표시 변경 금지
신고
Posted by boy0

티스토리 툴바