Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- NEW-PAGE PRINT ON
- using value
- Dictionary Search Help
- Data Browser
- ALV Output Setting
- MONAT_F4
- ABAP
- 필드카탈로그
- ZPL
- BOJ_Gold
- DP - 무한배낭
- cfieldname
- SAP
- APPENDING CORRESPONDING
- SM36
- READ TABLE
- Union-Find
- changing value
- 날짜 계산 함수
- transporting
- qfieldname
- java
- FOR ALL ENTRIES IN
- DP - 유한배낭
- boole_d
- SAP GUI
- CTS #CTS 이관 #SAP #ABAP
- batch job
- DP - 무한배낭(순서)
- APPENDING
Archives
- Today
- Total
Jin's Library
Search Help Row 데이터 활용 본문
F4테이블에서 여러 데이터를 컨트롤 하고 싶을때
한 row의 각 데이터는 fldname을 찾아가 매핑해주어 값을 구해 활용하면 된다.
FORM f4_data_matnr.
DATA: lt_return TYPE TABLE OF ddshretval,
lv_matnr TYPE mara-matnr,
lv_dismm TYPE marc-dismm,
lt_mapping TYPE TABLE OF dselc.
" lt_result 기준 F0001 , F0002 , F0003 , F0004 , F0005 , F0006
SELECT DISTINCT a~matnr, a~werks, b~maabc, b~kzdie, a~mtart, b~dismm
INTO TABLE @DATA(lt_result)
FROM MARA AS a JOIN MARC AS b ON b~matnr EQ a~matnr.
APPEND VALUE #( fldname = 'F0006' " lt_result 의 6번째 필드의 값을 매핑
dyfldname = 'MRP_TYPE'
) TO lt_mapping.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MATNR'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MATNR-LOW'
value_org = 'S'
TABLES
value_tab = lt_result
return_tab = lt_return
dynpfld_mapping = lt_mapping[]. " lt_mapping 테이블 안에 저장된 필드들에 선택된 row의 필드값들이 매핑됨
IF lt_return IS NOT INITIAL.
lv_matnr = lt_return[ 1 ]-fieldval.
lv_dismm = lt_return[ 2 ]-fieldval. " 'F0006' 필드에 매핑된 값이 lt_return 에 저장된다.
DATA(lt_dynp) = VALUE dynpread_t( ( fieldname = 'S_MATNR-LOW' fieldvalue = lv_matnr )
( fieldname = 'S_DISMM-LOW' fieldvalue = lv_dismm ) ). " 업데이트 할 데이터를 할당
"현재 S_DISMM 는 screen-input = 0 상태, 선택한 matnr에 해당하는 dismm값을 같이 업데이트
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = '1000'
TABLES
dynpfields = lt_dynp " 할당된 필드의 값을 업데이트
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE e001 WITH TEXT-m01.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
ENDFORM.
'SAP > ABAP' 카테고리의 다른 글
| 테이블 데이터에 바로 단위 적용 시키기 (0) | 2024.02.20 |
|---|---|
| Company Code에 종속된 Plant (0) | 2024.02.20 |
| 프로그램 작성자 확인 (0) | 2024.01.05 |
| ICON Constants (0) | 2024.01.05 |
| boole_d (0) | 2024.01.05 |