Q&A

  • TTable Filter 관련 질문
안녕하세요

아래와 같이
TTable Filter를 이용하여 txtFind.text 의 검색어로 시작되는 레코드만
찾고자 합니다.

FilterDevice:='name= '''+txtFind.text+'*''';
      frmDb.TbDevice.Filter:=FilterDevice;

요부분인데요..
머가 잘못이 된건지 출력이 되지 않습니다.
확인 부탁드립니다;ㅁ;

---------------------
procedure TfrmDVCFind.btnFindClick(Sender: TObject);
begin
  With frmDB,frmMain Do
  Begin
    If TbDevice.Active = False Then
       TbDevice.Open;
       TbDevice.First;
    If TbDevice.Active = False Then TbDevice.Active:= True;
    If TbDevice.Filtered = False Then TbDevice.Filtered:= True;
      FilterDevice:='name= '''+txtFind.text+'*''';
      frmDb.TbDevice.Filter:=FilterDevice;


   If TbDevice.Findkey([DeviceNo]) = True Then
      DispDevice;
      CurrentDeviceColor;
      PanDevice.Visible := True;
      panAuto.Visible := False;
      panManual.Visible := False;
      cmdDevice.Value := True;
  End;
  frmMain.cmdDeviceDownClick(Sender);
end;
1  COMMENTS
  • Profile
    권익수 2010.01.14 23:52
    OnFilterRecord 를 사용해보세요.
    Table Component를 어떤걸 사용하고 계신지 몰라도 Table Componet 에 따라서 Filter 에서 한글 처리가 제대로 안되는 경우가 있습니다.

    <!--CodeS-->
    procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
    begin
    // Accept := Pos(EName.Text, DataSet.FieldByName('cust_name').AsString) > 0;
    Accept := Pos(UpperCase(EName.Text), UpperCase(DataSet.FieldByName('cust_name').AsString)) > 0;
    end;
    <!--CodeE-->