제가 지금 CLASS ALV를 사용하고있는데 특정라인에서 필드값을 수정하고 저장할시에
수정한 라인에 데이타만 저장할려고합니다.
즉 변경된 데이터들만 구분할려고 합니다.
속성중에 변경된 데이터를 구분할수있는 속성이 있다고 얼핏 들은거같은데 혹시 아시는 분이 있나요?
다른방법이 있더라도 알려주시길 바랍니다.
감사합니다.
댓글 4
-
데이비듀
2010.06.26 02:20
-
ABAP하는사람
2010.06.26 02:49
우선 답변해주셔서 감사합니다.
제가 바로 CALL METHOD grid_a->check_changed_data. 여기에서 넣어준담에 다시 인터널 테이블로 판단하는것을 피할려고 다른 방법을 찾고있는겁니다 ..ㅠㅠ 혹시 MODE같은 속성에 변경된라인만 값이 들어가지않나 싶어서요...
데이터를 수정하고 다시 원상태로 재수정햇을시까지 판단해줄려면 위에 방법으론 가능하긴한데 조금 복잡해서요...
-
맑은하늘
2010.06.26 03:09
check_changed_data 메쏘드는 grid 변경사항 여부를 체크합니다.
그리고 나서 변경사항이 있을경우 event : data_changed 를 일으키죠.
data_changed 이벤트 설정이 되어있다면 해당 이벤트에서
er_data_changed 매개변수(클래스임) mt_mod_cells 속성에 변경된 셀 정보가 들어옵니다.
이벤트에 디버그 거셔서 er_data_changed->mt_mod_cells 를 확인해 보세요.
필드이름/값/intenla table index 등등이 들어오니 이것으로 확인하시면 될 것 같네요.
-
ABAP하는사람
2010.06.26 18:51
아~~ 두분 다 너무 고맙습니다..
문제해결에 도움이 많이 되였습니다.
감사합니다 ^^
CLASS ALV라는게 SALV 사용하시는 거예요? 아니면 cl_gui_alv_grid 참조 한거예여??
후자라면 PAI 상에 저장시점에 소스 코딩을
CALL METHOD grid_a->check_changed_data.
이렇게 해주면 화면에서 입력 받은 값이 인터널 테이블에 들어오게 됩니다.
그러니 이 인터널 테이블을 이용해서 저장 하면 됩니다.