Table 의 데이터들을 쉽게 유저가 유지보수 할 수 있게 만들어 주는 것이 Mainternance View 이다.
그런데 그 뷰 안에 굉장히 많은 데이터들이 들어 있다면...
그리고 그 안에서 특정한 데이터 부분만 추출해서 보고 싶다면..?
(가령 AB* 이렇게 AB가 들어간 모든 데이터만 보던지.. 111111 의 값이 들어간 데이터만 보고 싶은 경우..)
Mainternance View 에서는 살짝 부족한 점이 있어서 프로그램을 하나 개발하면 된다.
REPORT zor00023.
INCLUDE zor00023top.
INCLUDE zor00023evt.
INCLUDE zor00023f01.
/선언부/
*&---------------------------------------------------------------------*
*& Include ZO1ERDC030TOP
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* TYPE & DATA
*----------------------------------------------------------------------*
TYPE-POOLS:
abap.
TABLES:
zoth0002. "이 테이블의 데이터가 View로 만들어져 있다.
DATA:
gt_sellist TYPE STANDARD TABLE OF vimsellist. "Selection range for view maintenance
CONSTANTS:
c_view_name TYPE dd02v-tabname VALUE 'ZOVH0002'. <-이게 만들었던 뷰 네임이다.
*----------------------------------------------------------------------*
* SELECTION-SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-s01.
SELECT-OPTIONS: s_matnr FOR zoth0002-matnr, "자재명
s_land1 FOR zoth0002-LAND1, "국가
s_stawn for zoth0002-ZOFHS006. "HS코드
SELECTION-SCREEN END OF BLOCK blk1.
이렇게 세가지의 조건으로 검색이 가능하도록 만들 것이다.
/Event부/
*&---------------------------------------------------------------------*
*& Include ZOR00023EVT *
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM rangetab_to_sellist CHANGING gt_sellist. <- 범위값을 만들어준다.
*----------------------------------------------------------------------*
* END-OF-SELECTION
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM call_maintenance_view USING c_view_name <-뷰를 불러준다.
gt_sellist.
/F01부분/
*&---------------------------------------------------------------------*
*& Include ZOR00023F01 *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form rangetab_to_sellist
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_SELLIST text
*----------------------------------------------------------------------*
form rangetab_to_sellist CHANGING pt_sellist TYPE STANDARD TABLE .
DATA:
ls_sellist TYPE vimsellist.
DEFINE %add_selection_list. "선택 텍스트 리스트를 만들어 준다.
call function 'VIEW_RANGETAB_TO_SELLIST'
exporting
fieldname = &1
append_conjunction = &2
tables
sellist = pt_sellist
rangetab = &3.
END-OF-DEFINITION.
%add_selection_list:
'MATNR' 'AND' s_matnr,
'LAND1' 'AND' s_LAND1,
'ZOFHS006' 'AND' S_STAWN.
endform. " rangetab_to_sellist
*&---------------------------------------------------------------------*
*& Form call_maintenance_view
*&---------------------------------------------------------------------*
FORM call_maintenance_view USING value(p_view_name) TYPE dd02v-tabname
pt_sellist TYPE STANDARD TABLE .
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'S'
view_name = p_view_name
TABLES
dba_sellist = pt_sellist
EXCEPTIONS
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
maintenance_prohibited = 14
OTHERS = 15.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno DISPLAY LIKE 'W'
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
endform. " call_maintenance_view
이렇게 간단하게 만들면 검색 가능한 Mainternance View 가 된다.
참 간단한 문제이다...
'ERP-SAP > ABAP' 카테고리의 다른 글
<ABAP> 개발 프로그램 Binary down & Upload, (SAP 개발프로그램 다운 및 업로드) (0) | 2011.10.14 |
---|---|
<ABAP> Mainternance View에 Event 넣기(유지보수뷰) (0) | 2011.09.15 |
<ABAP> Submit , import, Export 로 프로그램 호출 및 값 넘겨 주고 받기 (0) | 2011.06.24 |
<ABAP> AT NEW, SUM, AT END, AT FIRST, AT LAST (0) | 2011.06.15 |
<ABAP> 월 팝업창 만드는 방법(F4 Help 년월 띄우는 법) (0) | 2011.06.09 |