아밥 초보 개발자입니다.
처음 질문 올려 봅니다.
alv로 뿌려진 테이블이 있는데요.
edit속성을 설정하여서 수정 가능하도록 했구요.
제가 막히는 부분이.. save 버튼을 눌렀을때,
수정된 필드가 있는 행은 시스템 시간, 일자, 사용자 이름으로 변경이 되어야 합니다.
도와주세요..
FORM SAVE_DATA .
CLEAR G_SUBRC.
DATA L_ANSWER.
DATA L_VALID.
DATA : BEGIN OF LS_DATA,
ERZET TYPE ERZET,
ERDAT TYPE ERDAT,
ERNAM TYPE ERNAM,
END OF LS_DATA.
* 엔터 입력 안해도 변경된 데이터 구할수 있게 함
CALL METHOD GRID->CHECK_CHANGED_DATA
IMPORTING
E_VALID = L_VALID.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 = '데이터를 저장 하시겠습니까?'
TEXTLINE2 = ' '
TITEL = '저장'
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = ''
IMPORTING
ANSWER = L_ANSWER.
CHECK L_ANSWER EQ 'J'.
IF L_VALID IS NOT INITIAL.
LOOP AT <DYN_TABLE> INTO <DYN_WA> .
LS_DATA-ERZET = SY-UZEIT .
LS_DATA-ERDAT = SY-DATUM .
LS_DATA-ERNAM = SY-UNAME .
MOVE-CORRESPONDING LS_DATA TO <DYN_WA> .
MODIFY <DYN_TABLE> FROM <DYN_WA> .
ENDLOOP .
ENDIF .
저장시점에는 수정여부를 알 수 없을 것 같군요.
그리드라면 data_changed 이벤트를 타게 될 것이고 해당 이벤트에서
변경되었다는 것을 어떤식으로든 알고 있어야 할 것 같습니다.
그러고 난 후 저장시에 해당조건에 대한 레코드에 대하여 하시고자
하는 일을 하시면 될 것 같네요.