선택화면의 pnpstat2 필드 (고용상태) 는 select-optoin 형태입니다.
IF pnpstat2 -low= '1'. "휴직자
DELETE gt_display WHERE pernr <> it_display-pernr.
ELSEIF pnpstat2-low = '3'. "재직자
DELETE gt_display WHERE pernr = it_display-pernr.
ENDIF.
이런구문을 써야 하는데
위 구문처럼 쓰면 low 값만 가져오잖아요.
in 을 써도 안되고 ..어떻게 써야 할지 찾아봐도 잘 모르겠어서 문의 드립니다.
알려주세요~~~
댓글 4
-
비안개
2008.03.26 20:50
-
모모
2008.03.27 01:33
로직을 조금 바꾸어 생각을 해보시는 것은 어떨까요?
(1) 가정: pnpstat2 에 재직자만
'get pernr.' 에는 이미 재직자만 있으므로 고민 필요 없음
(2) 가정: pnpstat2에서 재직자, 휴직자 모두 받아 들임.
get pernr에서
if p0000-stat2 = '1'.
휴직자 처리 로직....
elseif p0000-stat2 = '3'.
재직자 처리 로직....
endif.
이런 식으로 하시면 될 듯한데요.
혹은, pnpstat2를 읽지 말고, gt_display-stat2를 추가 하셔서 하시는 방법도 있습니다. -
초보아밥퍼
2008.03.27 18:21
select-optoin 을 어떻게 작성하셨는지 보면 더 쉽게 이해가 될듯.. ^^
-
꽁
2008.03.27 19:42
좋은 답변들 감사합니다.
SELECT-OPTIONS 변수인 경우로 조건을 주신다면.. low와 한값만 가능하다면...
READ TABLE PNPSTAT2 INDEX 1.
IF SY-SUBRC EQ 0.
IF pnpstat2 -low= '1'. "휴직자
DELETE gt_display WHERE pernr <> it_display-pernr.
ELSEIF pnpstat2-low = '3'. "재직자
DELETE gt_display WHERE pernr = it_display-pernr.
ENDIF.
ENDIF.
이렇게 하면 될 듯 싶은데.. 답변이 됬는지 모르겠네요