CHECK BOX를 3개 만들었습니다. 클릭할 경우와 클릭하지 않을 경우를 모두 더해보니 8가지의 경우의 수가 나오는데 이 경우의 수마다 select구문을 실행시켰습니다. 이런 방법말고 다른 간편하고 효율적인 방법이 있는지요?
그리고 만약 CHECK BOX가 여러개인데 필드에 따라서 사용여부를 판단하지 않고 그냥 클릭/미클릭 여부만 가지고 판단한다면 CHECK BOX가 하나 늘어날때마다 늘어나는 경우의 수를 모두 판단해주어야 하나요?
만들다가 문득 궁금증이 들어서 질문 올립니다.
고맙습니다.
댓글 3
-
SkyDream
2007.12.07 17:02
-
옆집남자
2007.12.07 17:51
3개의 체크박스는 8가지의 경우수가 생깁니다. 이걸 case 문으로 할경우 8개의 select 문을 해야겠죠..결국 라디오 버튼으로 비교해주시면 안됩니다. 라디오 버튼은 다중선택을 안하게끔 사용하잖아요.
case문이 아닌 if 조건 endif 문으로 체크박스가 3개면 if 조건 endif 조건을 3개를 주면 됩니다. 그리고 나온 데이타를 따로 조합하면 됩니다.
<ex>
if 체크박스1 = 'x'.
조건.
endif.
if 체크박스2 = 'x'.
조건.
endif.
if 체크박스3 = 'x'.
조건.
endif.
이러면 2개를 선택했건 3개를 선택했건 선택한 것에 대해서 if 문을 타기 때문에 나온 데이타를 조합만 하시면 됩니다.
허접한 답변이였습니다.
-
SAP폐인
2007.12.07 20:20
답변 감사드립니다.
8개의 select문으로 처리를 했었는데 좀더 간결한 방법이 없을까 고민하고 있었습니다.
고맙습니다.
SELECT의 WHERE절을 다음 예와 같이 한 번 구성해서 사용해 보세요.
아래 예는 check box가 아닌 radiobutton을 사용했을 경우에 어떤 것을 선택했느냐에 따라
where절의 조건을 구성해주는 것인데, check box에 맞게 처리하시면 될 것 같습니다.
DATA: wtab(72) OCCURS 0 WITH HEADER LINE.
* 선택한 조건에 따라 SELECT 조건 생성
CLEAR wtab.
CONCATENATE 'BUKRS = ''' p_bukrs '''' INTO wtab. APPEND wtab.
CASE 'X'.
WHEN p_in.
CLEAR wtab.
MOVE 'AND IO_GB = ''+''' TO wtab. APPEND wtab.
WHEN p_out.
CLEAR wtab.
MOVE 'AND IO_GB = ''-''' TO wtab. APPEND wtab.
ENDCASE.
* 입력조건에 대해 data select
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_data
FROM yttr02
WHERE (wtab)
AND budat IN s_budat.