이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
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/

저작자 표시 변경 금지
신고
Posted by boy0
ABAP2016.12.07 17:54

ABAP Objects 책 PDF 다운로드

http://plink.ucloud.com/public_link/link/b934ad420614336d

 

용량 266메가입니다.

 

저작자 표시 변경 금지
신고
Posted by boy0
ABAP2016.12.07 16:54

Next Generation ABAP Development 책 PDF 다운로드

http://plink.ucloud.com/public_link/link/95b42861514ac624

 

용량 82메가입니다.

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

티스토리 툴바