如何在此代码中向dbgrid显示我的查询?

时间:2013-04-12 15:41:13

标签: delphi firebird dbgrid zeos

你好这个代码是否有可能在tdbgrid中显示类似样式的列表中的搜索结果? (例如,如果我搜索了john,那么在某个字段上包含john的所有数据都将显示给tdbgrid)

procedure Tspcb.dccolbtnClick(Sender: TObject);
begin
  zdctable.First;
  while not zdctable.EOF do
  begin
     if (zdctable.FieldByName('Collector').AsString = dcedit.Text)
     then begin
        cn.Caption := zdctable.FieldByName('Client_Name').AsString;
        col.Caption := zdctable.FieldByName('Collector').AsString;
        pay.Caption := zdctable.FieldByName('Daily_Payment').AsString;
        date.Caption := zdctable.FieldByName('Date').AsString;
        ddate.Caption := zdctable.FieldByName('Due_Date').AsString;
        id.Caption := zdctable.FieldByName('ID').AsString;
        la.Caption := zdctable.FieldByName('Loan').AsString;
        tc.Caption := zdctable.FieldByName('Total_Collectibles').AsString;
     end;

     ShowMessage('click ok for next profile');
     zdctable.Next;
  end;
end;

1 个答案:

答案 0 :(得分:2)

只需添加数据源,将属性数据集设置为数据集zdctable,将DBgrid添加到表单并将属性数据源设置为数据源。

您需要的唯一代码是在dcedit的OnchangeEvent中

procedure TForm3.dceditChange(Sender: TObject);
begin
   zdctable.FilterOptions:=[foCaseInsensitive]; // if wished
   zdctable.Filtered := Length(dcEdit.Text) > 0;
   if zdctable.Filtered then
      // zdctable.Filter := 'Collector like ' + QuotedStr('%' + dcEdit.Text + '%') 
      zdctable.Filter := 'Collector like ' + QuotedStr('*' + dcEdit.Text + '*') // Zeos- Syntax
   else  zdctable.Filter := '';
end;