일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- SAP
- reduce
- 영월 장박
- 클러스터 뷰 이벤트
- 키즈캠핑장
- view 조건
- 포천 레이크문
- Hana
- 블로우쉘터
- 우중캠핑
- ABAP
- 오크돔
- 남강캠프
- fuzzy search
- 가족캠핑
- HANA SQL
- 원주 캠핑장
- 키즈 캠핑장
- m/v 호출
- WD4A
- 일몰맛집
- 해루질
- New Syntax
- 장박
- view cluster
- alv with ida
- include name
- 값 제한
- 캠핑 장박
- FIELDCATALOG
Archives
- Today
- Total
Do.
[Source] 하나의 OVP로 여러 필드 관리하기 본문
728x90
WD4A 개발을 하다보면 하나의 OVS를 여러개 관리해야 하는 경우가 많은데
그때마다 하나씩 만들어주기가 여간 번거로운게 아니다.
이럴 때 하나의 OVS로 여러 필드를 관리하도록 간단하게 짜보았다.
[ Result ]
[ Component에서 OVS 이름 정의 및 I/F ]
[ OVS를 처리할 VIew에서 해당 Component 선언 ]
[ OVS Method 생성 ]
[ 예제소스 ]
DEFINE _set_output.
assign ovs_callback_object->selection->* to &1.if &1 is assigned.
ovs_callback_object->context_element->set_static_attributes(
static_attributes = &1 ).
endif.
END-OF-DEFINITION.
DATA:
ls_parameters TYPE wdr_event_parameter.
* ID값 읽어오기
FIELD-SYMBOLS <lv_id> TYPE string.
READ TABLE wdevent->parameters INTO ls_parameters WITH KEY name = 'OVS_CONTEXT_ATTRIBUTE'.
ASSIGN ls_parameters-value->* TO <lv_id> CASTING.
*1. OVS에 보여질 Field 선언
TYPES:
BEGIN OF lty_matnr,
matnr TYPE matnr,
maktx TYPE maktx,
END OF lty_matnr.
TYPES:
BEGIN OF lty_werks,
werks TYPE werks_d,
name1 TYPE name1,
END OF lty_werks.
TYPES:
BEGIN OF lty_stlan,
stlan TYPE t416t-stlan,
antxt TYPE t416t-antxt,
END OF lty_stlan.
DATA:
lt_matnr TYPE STANDARD TABLE OF lty_matnr,
lt_werks TYPE STANDARD TABLE OF lty_werks,
lt_stlan TYPE STANDARD TABLE OF lty_stlan.
DATA:
ls_text TYPE wdr_name_value,
lt_label_texts TYPE wdr_name_value_list,
lt_column_texts TYPE wdr_name_value_list.
FIELD-SYMBOLS :
<matnr> TYPE lty_matnr,
<werks> TYPE lty_werks,
<stlan> TYPE lty_stlan.
* 2.Get Data & Output Table Setting
CASE ovs_callback_object->phase_indicator.
WHEN if_wd_ovs=>co_phase_0. "configuration phase, may be omitted
WHEN if_wd_ovs=>co_phase_1. "set search structure and defaults
WHEN if_wd_ovs=>co_phase_2.
CASE <lv_id>.
WHEN 'MATNR'.
SELECT
matnr
maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE lt_matnr
WHERE spras = sy-langu.
ovs_callback_object->set_output_table( output = lt_matnr ).
WHEN 'WERKS'.
SELECT DISTINCT
werks
name1
FROM t001w
INTO CORRESPONDING FIELDS OF TABLE lt_werks.
ovs_callback_object->set_output_table( output = lt_werks ).
WHEN OTHERS.
SELECT DISTINCT
stlan
antxt
FROM t416t
INTO CORRESPONDING FIELDS OF TABLE lt_stlan
WHERE spras = sy-langu.
ovs_callback_object->set_output_table( output = lt_stlan ).
ENDCASE.
* 2-2 Output Table Setting
* ovs_callback_object->set_output_table( output = lt_select_list ).
WHEN if_wd_ovs=>co_phase_3.
* apply result
CASE <lv_id>.
WHEN 'MATNR'.
_set_output : <matnr>.
WHEN 'WERKS'.
_set_output : <werks>.
WHEN OTHERS.
_set_output : <stlan>.
ENDCASE.
ENDCASE.
[ 처리할 VIew에서 사용하는 OVS Usage는 같은 Usage로 선언해준다 ]
728x90
'SAP > WD4A' 카테고리의 다른 글
[TIP] WD4A 프로그램 이름 찾기 (0) | 2024.08.28 |
---|---|
[Tip] Required 항목 Check (0) | 2014.09.19 |
[Source] Dynamic Content 설정 (0) | 2014.09.18 |
[Source] WD4A에서 ALV클릭 시 해당좌표값 알아내기 (0) | 2014.09.17 |
[View] View Designer가 보이지 않을 경우 (0) | 2014.09.17 |