안녕하세요...
델파이7, Win2000pro 사용중입니다...
콤보박스를 이용해 조건 검색하는 걸 만들어 보려는데 잘 되지 않아 질문드립니다.
3개의 콤보가 있습니다.
첫번째 콤보박스에는 대분류 코드와 이름을 가져와서 이름만을 보여줍니다. 이 첫번째 콤보박스에서 가져온 코드를 두번째 콤보박스의 WHERE절의 파라미터로 넘겨서 일치하는 코드와 이름을 가져와 2번째 콤보박스에 이름을 보여줍니다. 이런식으로 3번째 콤보박스까지 해놓고 조회를 하는겁니다.
쉽게 말하자면, 쇼핑몰을 보면 컴퓨터 선택시에 노트북 나오고 노트북 선택시 모델명나오게 하는 등등...
TStringList를 사용하면 된다고 들었는데 잘 되지가 않더군요...
..........................................................................................................................................
var
lslCode : TStringList;
.
.
lslCode.Create();
..........................................................................................................................................
위 소스는 허준님의 답변에서 봤는데 너무 짧아 이해하기 힘들군요....여러분들의 자세한 설명을 부탁드립니다.
모두 즐코하시고 행복하세요...
그리고 CloseUp(선택되서 콤보박스의 리스트가 펼쳐진게 닫혔을떄)
이란 이벤트에서 제어해주면 됩니다..
각각의 DBLookUpComboBox에 쿼리와 데이타 소스를 올리고 3개씩이 되겠죠
쿼리를 마스터 디테일형태로 만들어줍니다.(하위 쿼리의 데이타소스를 상위쿼리의로 잡아주면 돼겠죠.)
그러면 가장 상위의 선택이 됐을떄 중간의 이벤트를 불러주고요..아답답하네
아래를 참고하세염..
procedure TFIPGOV1.DBProcessLCloseUp(Sender: TObject);
begin
if not QryProcessM.IsEmpty then Begin
DBProcessM.KeyValue := QryProcessM.fieldbynam('PROCESS_CD').AsString;
//위 문장은 쿼리를 리프레쉬했을떄 리스트 박스에 공란으로 돼있기떔에
하나 선택해주는것
end;
DBProcessMCloseUp(Sender);
end;
procedure TFIPGOV1.DBProcessMCloseUp(Sender: TObject);
begin
if not QryProcessS.IsEmpty then Begin
DBProcessS.KeyValue := QryProcessS.fieldbyname('PROCESS_CD').AsString;;
end;
DBProcessSCloseUp(Sender);
end;
이런식으로 하면 연쇄적으로 하위로 이벤트를 발생시키는 거죠...