제가 alv 펑션으로 개발을 했었는데 alv class로 개발하게 되었습니다.
근데 궁금한것이 펑션에서는 mark,zmark -> gs_layout-box_fname = 'MARK'. 로 코딩하고 카탈로그에 적어주는데
class에서는 mark 이 필드가 필요 한건지요??
mark라는 필드가 선택한 필드를 알기위함인데.
CALL METHOD REF_ALV_GRID->GET_SELECTED_ROWS 하니깐 알아서 선택한 필드 알아서 찾아 오는데..ㅡㅡㅋ
alv class에서도 mark라는 필드를 사용하는지요??
댓글 4
-
새로고침
2009.02.19 22:12
-
greenHair
2009.02.19 23:25
Class에서는 Mark 사용 안됩니다.
Mark 로 적용이 안되니 대신 GET_SELECTED_ROWS 메소드가 있는것이지요.
말씀하신 CALL METHOD REF_ALV_GRID->GET_SELECTED_ROWS 메소드로 선택된 인덱스를 찾아와서
원본 인터널 테이블의 인덱스를 대조하여 데이터를 처리하셔야 합니다.
-
아이쿠!
2009.02.20 17:47
네 저도 클래스에서 전체선택 버튼 만들려고 mark를 사용해봤는데 제 실력으론 도저히 코딩할수가 없더라고요..
여러 프로그램을 뒤져봐도 클래스로 짠거에는 전체버튼도없고...
인터널 테이블에 X를 박아줘도 값만들어갈뿐..
괜히 리프레쉬에 문제가 있는지 필드카탈로그에 문제가 있는지 삽질만 ( sap-jil ) 3일동안했어요..
덕분에 궁금증이 해결됐습니다.
-
아이쿠!
2009.02.20 17:54
새로고침님
혹시 class로 짠 프로그램 중에 전체버튼선택, 전체해제버튼 소스가 있으시면 쫌 올려주세요..
이것 때문에 오기가 생겨서 있다면 꼭 고치고 싶습니다.
조회된 Data를 사용자로 하여금 선택하게 할경우, 굳이 Mark필드가 없어도 되겠죠. 마우스로 드래그 해서 선택해도 되니..
암튼 어떤 방식으로든 선택을 했으니,
CALL METHOD REF_ALV_GRID->GET_SELECTED_ROWS 가 선택되어진 Row를 찾아왔을겁니다.
알아서 가져올수는 없는 노릇입니다.
결론적으로 말하면, alv class에서도 mark 필드 필요하면 사용합니다.
gs_layout-sel_mode = 'A' :A~D 설정하면 됩니다.