하나의 테이블에서 조건에따라(라디오버튼의 선택) 출력되는 필드의 종류가 틀리게 하려고 합니다..
어떤 방법이 있을까요,...
댓글 2
-
초보아밥퍼
2008.04.02 02:01
-
썬바바
2008.04.02 03:20
이것은 동적 쿼리를 사용하시면 됩니다.
참고하자면..
DATA: lw_cond(72) TYPE c,
lit_query LIKE TABLE OF lw_cond.
IF p_rb1 = 'X'.
CONCATENATE ' GR_NO = ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
CONCATENATE 'AND LOEKZ = ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
ELSEIF p_rb2 = 'X'.
CONCATENATE ' GR_NO NE ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
CONCATENATE 'AND LOEKZ = ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
ELSEIF p_rb3 = 'X'.
CONCATENATE ' GR_NO = ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
CONCATENATE 'AND LOEKZ NE ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
ELSEIF p_rb4 = 'X'.
CONCATENATE ' LOEKZ NE ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
CONCATENATE 'OR LOEKZ EQ ''' space '''' INTO lw_cond.
APPEND lw_cond TO lit_query.
ENDIF.
이렇게 조건에 따라서 만들어서 쿼리용 테이블에 넣어주고..
실제 select문에서는
SELECT * FROM zsa01
WHERE rs_section EQ 'R'
AND lifnr IN lt_lifnr
AND (lit_query).
이렇게 하시면 됩니다.
호곡....
라디오 버튼이 많으면 case 문을... 2개정도라면 if문을 사용하시면 되는데요...
방법은
case x.
when p_aa. <-- 라디오버튼 필드
select from ..
when p_bb.
select from ..
when p_cc.
select from ..
endcase.
이렇게 하시면 될겁니다.. 이건...냠냠