PARAMETERS : P_AUART LIKE VBAK-AUART DEFAULT 'ZNOR'.
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN.
SELECT-OPTIONS : S_AUDAT FOR VBAK-AUDAT.
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_VBAK FROM VBAK
WHERE AUART = P_AUART
AND VBELN IN S_VBELN
AND AUDAT IN S_AUDAT.
여기서 유저가 시작값을 아무것도 넣지 않고 실행하였을 때 자료를 전부 가져오게 하는 방법을 찾고 있는데
where auart = p_auart 이 구문 때문에 아무 자료도 안가지고 오는데 어떻게 하면 모든 자료를 다 가지고 올 수 있을까요?
댓글 9
-
icarus
2008.02.12 17:45
-
옆집남자
2008.02.12 17:50
icarus님이 써주신 내용도 결국엔 실행하면 못 가져올듯 합니다.
concatenate를 썼는데 select 조건 where 에 and 결국 "="이 조건을 만족 시켜주지(아무것도 넣지 않고) 못하기 때문에 안됩니다.
변수 p_auart를 파라미터 말고 그냥 레인지 값인 select-options으로 해주면 되는데 꼭 파라미터로 선언 해야 하는건가요.?
-
icarus
2008.02.12 17:57
아닙니다...테스트 해 보시면 아시겠지만,,,
p_auart에 값이 없으면 lv_dyn이 initial 이 되기 때문에
where 조건에 아무런 영향도 주지 않습니다.
-
ABAP짱!
2008.02.12 18:05
icarus님 감사합니다 실행 됩니다 근데 하나만 더 질문 드리면 data 선언하신 lv_dyn은 어떤 의미인가요? -
icarus
2008.02.12 18:05
참고로, 옆집남자님께서 말씀하신 방법은 아래와 같이 하시면 됩니다.
(만일 파라미터와 마찬가지로 ZNOR 이라는 초기값을 주시려면 initialization에서 처리해 주시면 됩니다.)
*PARAMETERS : P_AUART LIKE VBAK-AUART DEFAULT 'ZNOR'.
SELECT-OPTIONS : S_AUART FOR VBAK-AUART NO-EXTENSION NO INTERVALS
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN.
SELECT-OPTIONS : S_AUDAT FOR VBAK-AUDAT.
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_VBAK FROM VBAK
WHERE AUART IN S_AUART
AND VBELN IN S_VBELN
AND AUDAT IN S_AUDAT. -
ABAP짱!
2008.02.12 18:06
Web In Abap 님 감사합니다 -
icarus
2008.02.12 18:06
lv_dyn은 동적으로 구성한 Select 조건절을 표현할 로컬 변수입니다.
-
ABAP짱!
2008.02.12 18:09
네~ 좋은 방법 알려주셔서 모두 감사드립니다 -
ABAP짱!
2008.02.12 19:01
이런 방법도 있군요
IF P_AUART = ' '.
P_AUART = '%'.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_VBAK FROM VBAK
WHERE AUART LIKE P_AUART
AND VBELN IN S_VBELN
AND AUDAT IN S_AUDAT.
DATA: lv_dyn(70).
PARAMETERS : P_AUART LIKE VBAK-AUART DEFAULT 'ZNOR'.
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN.
SELECT-OPTIONS : S_AUDAT FOR VBAK-AUDAT.
CLEAR: lv_dyn.
IF P_AUART IS NOT INITIAL.
concatenate ' auart = ''' p_auart '''' INTO lv_dyn.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_VBAK FROM VBAK
WHERE (lv_dyn)
AND VBELN IN S_VBELN
AND AUDAT IN S_AUDAT.