이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
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 타입으로 만듭니다.

/wp-content/uploads/2014/03/hai1_408652.png

2. 테이블의 속성 firstVisibleRow에 컨텍스트 어트리뷰트 PAGE_NO를 바인딩 합니다.

 

/wp-content/uploads/2014/03/hai2_408651.png

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를 등록합니다.

/wp-content/uploads/2014/03/hai3_408662.png

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. 활성화 하고 어플리케이션을 만들어서 테스트 합니다.

 

/wp-content/uploads/2014/03/hai4_408663.png

 

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/03/12/providing-explicite-page-up-and-page-down-functionallity-for-table-in-webdynpro-abap/

+ Recent posts