2013-04-12 68 views
0

你好這是可能的代碼顯示到tdbgrid的搜索結果在列表樣式? (例如,如果我搜索了約翰,所有在某一領域conataining約翰的數據將顯示在TDBGrid中)如何在此代碼中顯示到dbgrid我的查詢?

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

oic我如何使它發生在我的代碼?我需要改變這一切嗎? –

+0

那麼我建議你編輯你的問題問「如何」,而不是「是否有可能」 –

回答

2

只需添加一個數據源,設置屬性數據集數據集zdctable,將一個DBGrid到窗體並將屬性數據源設置爲數據源。

的代碼,你需要的唯一的一塊是在OnchangeEvent dcedit

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; 
+0

非常感謝你幫助我。將在稍後發佈,如果我已經得到它。祝你今天愉快。 –

+0

今天嘗試了代碼,但dbgrid沒有顯示任何東西,當我在dedit上鍵入時,試圖將它放在一個按鈕上:procedure TForm1.Button1Click(Sender:TObject); begin ztable1.FilterOptions:= [foCaseInsensitive]; //如果需要 ztable1.Filtered:= Length(Edit1.Text)> 0; 如果ztable1.Filtered然後 ztable1.Filter:= '集電極像' + QuotedStr( '%+ Edit1.Text +%') 否則ztable1.Filter:= ''; 結束;但仍是DBGrid的didnt顯示任何 –

+0

@ChunkChunk的Zeos看到使用*作爲通配符代替%,我做了一個編輯 – bummi

相關問題