Q&A

  • table 컴포넌트의 filter에 관한 질문입니다....ㅠㅠ
제가 지금 하려고 하는 일은 고객table과 거래원장table에서

고객의 코드를 입력하면, 고객정보를 나타내고, 거래원장에서 그 고객에 해당되는

거래 내역만을 DBGrid에 나타내고 싶은데.. filter의 사용에서 문제가 발생합니다.

도와주세요...

다른 님들의 질문을 종합해봐도 계속 에러만 나타나고요..ㅠㅠ

소스까지 올립니다. 틀린 부분을 지적해 주세요...

아님 다른 방법이라도...

-------------------------------------------------------------------------

procedure TFrm_Dechul.DBEdit1KeyPress(Sender: TObject; var Key: Char);

var

chk_code : string; //DBEdit.text에서 고객코드를 받음.

chk_filter : string;//TB_Mast 테이블에서 사용할 필터의 구문의 받는 변수.

begin

if key = #13 then begin

key := #0;

chk_code := Trim(DBEdit1.text);

WITH DM_1.TB_cust DO BEGIN

CANCEL;

SETKEY;

FieldByName('CUST_CODE').AsString := chk_code;

Gotokey;

IF GOTOKEY THEN BEGIN

with DM_1.TB_Mast do begin

{ Cancel;

Setkey;

FieldByName('MST_CSCODE').AsString := chk_code;

GotoKey;}

Filtered := False;

chk_filter := 'MST_CSCODE=''+DBEdit1.text+''';

Filter := chk_filter;

Filtered := True;

end;

END ELSE BEGIN

showmessage('fault');

END;



end;

end;

end;

3  COMMENTS
  • Profile
    양상철 2000.08.25 19:24
    어떤 메세지로 에러가 나오는지는 잘 모르겠군요....

    제일먼저 눈에 띄는 것이...

    코딩에보면



    chk_filter := 'MST_CSCODE=''+DBEdit1.text+''';

    부분이 있는데....



    chk_filter := 'MST_CSCODE='''+DBEdit1.text+'''';

    ^ ^

    콤마부분을 잘 비교해보세요...

    아마도 이부분인듯....



    안되시면 에러메세지도 같이 올려주세요....



    -쬐금 아는넘이----



  • Profile
    coolling 2000.08.25 20:14
    > chk_filter := 'MST_CSCODE=''+DBEdit1.text+''';

    > 부분이 있는데....

    >

    > chk_filter := 'MST_CSCODE='''+DBEdit1.text+'''';

    ^ ^

    이렇게 수정했습니더. 근데 에러가....

    -----------------

    Project gold.exe raised exception class EVarianError with message

    'Invalid variant thpe conversion', process stopped. Use step or Run to continue;

    -----------------

    이렇게 났습니다. 어케 해야 하나요????



  • Profile
    양상철 2000.08.25 21:14
    coolling wrote:

    > > chk_filter := 'MST_CSCODE=''+DBEdit1.text+''';

    > > 부분이 있는데....

    > >

    > > chk_filter := 'MST_CSCODE='''+DBEdit1.text+'''';

    > ^ ^

    > 이렇게 수정했습니더. 근데 에러가....

    > -----------------

    > Project gold.exe raised exception class EVarianError with message

    > 'Invalid variant thpe conversion', process stopped. Use step or Run to continue;

    > -----------------

    > 이렇게 났습니다. 어케 해야 하나요????

    이 메세지는 DataType이 일치하지 않을때 나는 메세지 입니다.

    에러가 걸리는 라인이 이부분이 맞는지요....

    만일 맞다면....

    MST_CSCODE의 DataType가 무엇인지요...

    만일 문자열이라면 에러가 안날것이지만...

    만일 그렇지 않다면...예를 들면 정수나 실수라면...

    chk_filter := 'MST_CSCODE='+DBEdit1.text;

    이렇게 고치세요....

    그럼 수고하세요....