이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/03/12/providing-explicite-page-up-and-page-down-functionallity-for-table-in-webdynpro-abap/
Providing explicite page up and page down functionallity for Table in Webdynpro ABAP
March 12, 2014 | 8 Views |
요약:
테이블 엘리먼트의 속성 firstVisibleRow를 활용하면 명시적 페이지 표시가 가능합니다.
단계별 구현:
1. 메인 뷰의 컨텍스트에서 어트리뷰트 PAGE_NO를 I 타입으로 만듭니다.
2. 테이블의 속성 firstVisibleRow에 컨텍스트 어트리뷰트 PAGE_NO를 바인딩 합니다.
3. 아래 코드를 WDDOINIT()에 입력합니다.
method WDDOINIT.
DATA lo_nd_vbak
TYPE REF TO if_wd_context_node.
data lv_no_of_records type i. "to count no of records in internal table
TYPES :
BEGIN OF type_vbak,
vbeln type vbak-vbeln,
erdat type vbak-erdat,
erzet type vbak-erzet,
checkbox(1) type c,
END OF type_vbak.
data lt_vbak type TABLE OF type_vbak.
* navigate from <CONTEXT> to <VBAK> via lead selection
lo_nd_vbak = wd_context->get_child_node( name = 'VBAK' ).
SELECT vbeln erdat erzet from vbak INTO CORRESPONDING FIELDS OF TABLE lt_vbak UP TO 18 ROWS.if sy-subrc = 0.
no_of_records = sy-dbcnt.
ENDIF.
lo_nd_vbak->bind_table( lt_vbak ).
DATA lo_el_context TYPE REF TO if_wd_context_element.
DATA ls_context TYPE wd_this->element_context.
* get element via lead selection
lo_el_context = wd_context->get_element( ).
* get single attribute
CALL METHOD LO_EL_CONTEXT->SET_ATTRIBUTE
EXPORTING
VALUE = lv_no_of_records
NAME = 'NO_OF_RECORDS'
.
endmethod.
4. 버튼 Page Up 과 Page Down 2개를 만듭니다. 두곳 모두에 액션 이벤트에 BUTTON_EVENT를 등록합니다.
5. 아래 코드를 ONACTIONBUTTON_EVENT( )에 입력합니다.
method ONACTIONBUTTON_ACTION .
data element_id type string.CALL METHOD WDEVENT->GET_STRING
EXPORTING
NAME = 'ID'
RECEIVING
VALUE = element_id.
DATA lo_el_context TYPE REF TO if_wd_context_element.
DATA ls_context TYPE wd_this->element_context.
DATA lv_page_no LIKE ls_context-page_no.
data lv_no_of_records LIKE ls_context-no_of_records.
* get element via lead selection
lo_el_context = wd_context->get_element( ).
* get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `PAGE_NO`
IMPORTING
value = lv_page_no ).
* get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `NO_OF_RECORDS`
IMPORTING
value = lv_no_of_records ).
case element_id.
when 'PAGE_UP'.
if lv_page_no <= 0.
exit.
else.
lv_page_no = lv_page_no – 5.
endif.
WHEN 'PAGE_DOWN'.
if lv_page_no >= lv_no_of_records.
exit.
else.
lv_page_no = lv_page_no + 5 . "5 is default size of the table element
ENDIF.
ENDCASE.
CALL METHOD lo_el_context->set_attribute
EXPORTING
value = lv_page_no
name = 'PAGE_NO'
.
endmethod.
6. 활성화 하고 어플리케이션을 만들어서 테스트 합니다.
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/03/12/providing-explicite-page-up-and-page-down-functionallity-for-table-in-webdynpro-abap/
'ABAP > Web Dynpro ABAP(WDA)' 카테고리의 다른 글
[번역] OVS 조회조건 값 점검 메시지 처리 방법 (0) | 2016.12.22 |
---|---|
[번역] 세션 타임아웃 페이지에 자바스크립트 사용하는 방법 (0) | 2016.12.14 |
[번역] 비지니스 그래픽 사용방법 (0) | 2016.12.07 |
[번역] 웹딘프로아밥 adaptation에 대한 상세한 분석 (0) | 2016.12.06 |
[번역] 여러 필드 필수값 체크에 에러메시지 하나만 표시하는 방법 (0) | 2016.12.06 |