Q&A

  • 첫번째 콤보박스에 있는 데이타를 그 다음 콤보박스의 파라미터로 넘기기...?
안녕하세요...
델파이7, Win2000pro 사용중입니다...
콤보박스를 이용해 조건 검색하는 걸 만들어 보려는데 잘 되지 않아 질문드립니다.
3개의 콤보가 있습니다.
첫번째 콤보박스에는 대분류 코드와 이름을 가져와서 이름만을 보여줍니다. 이 첫번째 콤보박스에서 가져온 코드를 두번째 콤보박스의 WHERE절의 파라미터로 넘겨서 일치하는 코드와 이름을 가져와  2번째 콤보박스에 이름을 보여줍니다. 이런식으로 3번째 콤보박스까지 해놓고 조회를 하는겁니다.
쉽게 말하자면, 쇼핑몰을 보면 컴퓨터 선택시에 노트북 나오고 노트북 선택시 모델명나오게 하는 등등...
TStringList를 사용하면 된다고 들었는데 잘 되지가 않더군요...
..........................................................................................................................................
var
lslCode : TStringList;
.
.
lslCode.Create();
..........................................................................................................................................
위 소스는 허준님의 답변에서 봤는데 너무 짧아 이해하기 힘들군요....여러분들의 자세한 설명을 부탁드립니다.
모두 즐코하시고 행복하세요...
2  COMMENTS
  • Profile
    열심히 2002.12.10 22:22
    이거 DBLookUpComboBox쓰면 될것 같은데요...

    그리고 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;

    이런식으로 하면 연쇄적으로 하위로 이벤트를 발생시키는 거죠...


  • Profile
    LuckyBoy 2002.12.10 19:49
    ComboBox1 : 대분류
    ComboBox2 : 중분류
    ComboBox3 : 소분류 라고 예를 들어보겠습니다...


    ComboBox1의 Change or Exit Event에
    begin
       ComboBox2.Items.Clear;
       ComboBox3.Items.Clear;
       (중분류를 조회해서..
      for i := 0 to RecordCount - 1 do
       ComboBox2.Items.Add(중분류);
      //기본적으로 첫번째값으로 중분류를 선택해놓는다..
      ComboBox2.ItemIndex := 0;
    end;

    ComboBox2의 Change or Exit Event에
    begin
       ComboBox3.Items.Clear;
       (소분류를 조회해서..
      for i := 0 to RecordCount - 1 do
       ComboBox3.Items.Add(소분류);
      //기본적으로 첫번째값으로 소분류를 선택해놓는다..
      ComboBox3.ItemIndex := 0;

    end;

    허접한 코딩이지만 이러한 방식으로 하시면 되리라 생각이 되는데여..

    • 열심히
      2002.12.17 01:15
      간단하게 DBMemo 컴퍼넌트를 쓰면 됩니다.. 그럼 쿼리 오픈되면 현재 커서의 memo란 필드가 들어가게 됩...
    • 최은석
      2002.12.11 20:00
      옵션에 있습니다.. Options 밑에 dgAlwaysShowSelection 이란 넘이 있져 이넘을 False 로 해주시면 됩니...
    • 김상수
      2002.12.12 02:25
    • 장민우
    • 2002.12.11 02:07
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이달원
      2002.12.11 02:21
      우선은 가장 좋은 방법은 한번 해보시는게 좋을것 같습니다. 일반적인 DLL로드 방식을 해보시고 안되면 I...
    • 윤승환
      2002.12.11 02:19
      wrapper dll을 작성하시는 방법을 권합니다. extension -> regular -> delphi
    • 장민우
      2002.12.11 02:39
      답변해주셔서 감사합니다. '확장DLL' 은 사실 저도 책보고 첨 알았습니다... ^^; 그리고 wrapper dll ...
    • 윤승환
      2002.12.11 19:38
      VC++에서는 C 스타일(regular)의 표준 dll과 MFC Class포인터를 인자를 자유롭게 넘겨줄 수 있는 Extension...
    • 박홍재
      2002.12.11 02:53
      정확하게 현재 어떤식으로 DB Table이 구성이 되어있는지 몰라 질문을 이해할 수가 없군요. 우선 간단하게 ...
    • 질문걸
    • 2002.12.11 01:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박홍재
      2002.12.11 02:44
      -------------------------------------------------- 어떤 식으로 구현을 하려고 하시는 지 모르겠군요. ...
    • 질문걸
      2002.12.11 19:10
      답변 감사합니다...^^
    • Wookey
    • 2002.12.10 23:09
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Wookey
      2002.12.14 22:10
      감사하다는 인사 말씀 늦었습니다. 님들의 성의 있는 답변으로 문제가 모두 해결 되었습니다. 다시 한번...
    • KDDG_Hoya
      2002.12.11 18:29
      값이 Null 일때.. 계산을 못하니.. 필드가 null 일시 0 으로 처리하면 될 것 같네요. 아래는 -.- B...
    • 열심히
      2002.12.10 23:56
      select A, B, B*100/decode(A,null,1,0,1,A) from ~ 오라클 문법입니다..SQL2000에서는 함수가 다를지도 ...
    • 김지엽
      2002.12.11 01:12
      SET ARITHABORT OFF - 산술오류로 이상 종료하지 않는다. SET ARITHIGNORE ON - 산술오류를 무시한다. SE...
    • 짜앙구
    • 2002.12.10 21:17
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 전원이
    • 2002.12.10 20:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.12.10 21:56
      안녕하세요. 최용일입니다. 델파이의 비트연산자에는 shl, shr, or, and, xor등이 있습니다... C의 S...
    • 권오진
    • 2002.12.10 20:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.12.10 22:29
      박후선 님은 아주 유명하신 분이시져..^_^ 도움되시길 바라구여~ 항상 즐거운 프로그래밍 하시길~ ...
    • 황준동
      2003.10.09 00:43
      답변이 될지는 모르겠지만요. 제가 경험한 바로는 이런 문제가 있습니다. 다름이 아니라 한글 때문에 그런...
    • 이치영
    • 2002.12.10 19:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2002.12.10 22:22
      이거 DBLookUpComboBox쓰면 될것 같은데요... 그리고 CloseUp(선택되서 콤보박스의 리스트가 펼쳐진게 ...
    • LuckyBoy
      2002.12.10 19:49
      ComboBox1 : 대분류 ComboBox2 : 중분류 ComboBox3 : 소분류 라고 예를 들어보겠습니다... ComboBox...
    • 신명호
    • 2002.12.10 18:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2002.12.11 00:04
      님 무슨 말씀하시는지 모르겠네요.. 소스가 없다뇨??....아직 못만들었단 얘긴가? 만약에 조건을 입...
    • 델파이탐크루즈
      2002.12.10 21:15
      에러난 말 그대로 입니다. DataSet이 Insert 또는 Edit 모드가 아니라서 에러가 나는겁니다. 그러니 ...
    • 김재현
    • 2002.12.10 10:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박홍재
      2002.12.11 02:57
      -------------------- 크랙은 아니 되구요...ㅠ.ㅠ 만드신 분에게 소스를 달라구 하시던가 아니면 새로 ...
    • 이철희
    • 2002.12.10 07:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.12.10 08:21
      안녕하세요. 최용일입니다. 매크로는 상수나 함수로 바꾸시면 됩니다. interface const  &n...
    • 하병준
    • 2002.12.10 07:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델파이탐크루즈
      2002.12.10 21:12
      이렇게 하시면 될듯 싶군요... procedure TForm.FormActivate(Sender: TObject); begin   (...
    • 하병준
      2002.12.10 23:50
    • 강환춘
    • 2002.12.10 06:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2002.12.10 22:07
      뭘 수정 하실건지라도 알져주시지요..... 누구더러 찾으시라는건지...뭐가 잘못된거지 써주세요
    • 강환춘
      2002.12.11 01:47
      죄성합니다. 찾았습니다. 그래두 읽어 주셔서 감사합니다. 위에 다른 질문 올리겟습니다. 그것도좀 봐주세...