테이블 컨트롤 구성은 대략
--------------------------------------------------------
| g/l계정 | g/l계정명 | 코스트센타 | 코스트 센타 명 |
--------------------------------------------------------
|(입력필드)| (출력필드) | (입력필드) | (출력필드) |
--------------------------------------------------------
| | | | |
--------------------------------------------------------
| | | | |
--------------------------------------------------------
| | | | |
--------------------------------------------------------
이렇습니다.
입력필드에 직접 입력하거나 파서블 엔트리를 띄워서 선택하면 그 옆 출력필드에 그 값에대한 텍스트가 나타나게 됩니다.
직접 입력할 경우엔 엔터를 쳐야 계정명이 나타나는데, 파서블 엔트리를 사용할때는 엔트리 선택하자마자 값이 나타나게 하려고 합니다.
간단하게 하는 방법 없을까요?
DATA : LV_SAKNR LIKE SKAT-SAKNR.
CLEAR : ITAB1 , ITAB1[] , P_VALUE.
SELECT SAKNR TXT50 FROM SKAT UP TO 200 ROWS
INTO TABLE ITAB1
WHERE SPRAS = SY-LANGU.
PERFORM F4_VALUE_REQUEST TABLES ITAB1
USING 'SAKNR'
CHANGING LV_SAKNR.
PERFORM CONVERSION_SAKNR CHANGING LV_SAKNR.
READ TABLE ITAB1 WITH KEY SAKNR = LV_SAKNR.
IF SY-SUBRC EQ 0.
P_VALUE = ITAB1-SAKNR.
CLEAR : TAB_UPDATE, TAB_UPDATE[].
TAB_UPDATE-FIELDNAME = 'ITAB-SAKNR'.
TAB_UPDATE-FIELDVALUE = P_VALUE.
TAB_UPDATE-STEPL = P_LINE.
APPEND TAB_UPDATE.
CLEAR P_VALUE.
P_VALUE = ITAB1-TXT50.
TAB_UPDATE-FIELDNAME = 'ITAB-TXT50'.
TAB_UPDATE-FIELDVALUE = P_VALUE.
TAB_UPDATE-STEPL = P_LINE.
APPEND TAB_UPDATE.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = TAB_UPDATE
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
UNDEFIND_ERROR = 7
OTHERS = 8.
ENDIF.
tab_update의 stepl필드에 값이 계속 1이 들어갑니다... ㅠㅠ 도와주세요..
아니면 이것보다 더 좋은방법이 있으시면 알려주세요.
펑션 'DYNP_GET_STEPL'을 이용해서 STEPL값을 받으신후
TAB_UPDATE-STEPL = 받은 STEPL값.
이렇게 해보세요.