안녕하세요^^
현재 구현하고 싶은 것은 ALV내의 CHECK BOX를 클릭했을시
스크린 중 일부 필드만 REFRESH 하려는 건데요
일단 저는 변경할 필드에 값넣고 스크린을 다시 호출하게 해봤습니다.
[현상]
1. 앞에 ENTER등 이벤트가 없었다면 CHECK BOX클릭시 변경하려는 필드는 잘 변경되는데
다른 필드들은 ABAP변수로 복사가 되지 않아 날라갑니다.
=> PAI를 타야 값복사가 될텐데 PAI를 소스상으로 호출하는 방법이 있을까요? 그 다음에 스크린을 CALL하면 될듯한데..
2. 만약 CALL 스크린을 안하고 아얘 스크린 중에 필드 일부만 REFRESH할 방법이 있다면
이것도 하나의 해결 방법이 될 듯합니다.
HELP~~ 부탁드려요^^
댓글 3
-
남군
2010.04.04 23:36
-
짱구
2010.04.05 19:46
아래 쪽 찾아보니
CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE
EXPORTING
NEW_CODE = 'CHANGE_MGR'.
요거 사용해서 pai쪽으로 호출이 되는거 같아요~^^
감사합니다ㅎ
-
MadMax
2010.04.05 23:52
alv 내 checkbox click 할경우 alv 내 field 를 갱신할 경우는 local class 내 data_changed 에서 해당 field 의 값을 변경한후 alv refresh 하시면 되고, alv 가 아닌 screen field 값 변경인 경우 위 짱구님 말씀하신데로 data_changed 마지막에 넣어 주시면 될것 같습니다. 참고하세요.
pai블럭을 말씀 하시는게 check box를 클릭을 user command로 해결 하시려는 것으로 보이는데 그 방법보단
check box 클릭 자체도 어찌보면 'X' or ''의 값이 들어 가듯이 해당 필드의 값을 변경하려는 것은 change event를
태우면 되고 이벤트 태울때 check box를 체크한 레코드를 미리 읽은 상태에서 값을 변경해야
다른 필드들의 값이 날라가지 않겠네요..