0

您好,此代码是否可以将搜索结果以类似样式的列表显示到 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;
4

1 回答 1

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;
于 2013-04-12T16:44:38.793 回答