線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1403
推到 Plurk!
推到 Facebook!

dbgrid中如何选择要显示那些行?

答題得分者是:Chance36
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-08 15:39:35 IP:218.85.xxx.xxx 未訂閱
dbgrid中可以隐藏某列,但如何隐藏某行呢?好像没有row属性啊?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-08 15:51:53 IP:211.76.xxx.xxx 未訂閱
您好: 要隱藏某列,只要您在下SQL語法時,下WHERE條件排除便可以啦!! ~~應無所住而生其心~~
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-08 16:13:51 IP:218.85.xxx.xxx 未訂閱
引言: 您好: 要隱藏某列,只要您在下SQL語法時,下WHERE條件排除便可以啦!! ~~應無所住而生其心~~
可我要判断的东西太复杂,所以想不出asl语句怎么写
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-08 16:40:45 IP:211.76.xxx.xxx 未訂閱
您好: 可以將您的條件說出來讓大家幫您想辦法 ~~應無所住而生其心~~
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-08 17:08:00 IP:203.204.xxx.xxx 未訂閱
引言: 可我要判断的东西太复杂,所以想不出asl语句怎么写
// 1..在 dbGrid->DataSource->DataSet(假設為Table1) 的OnFilterRecord 事件中撰寫
//
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  //條件判斷 理論上任何的程式碼皆可接受,但要注意 絕對不可動到DataSet的記錄指標  
  ....
  ....
  // 因為每筆記錄皆會觸發此事作,
  // 最後給作用中的記錄一個結果 (接受或不接受)
  If  (要顯示) Then 
    Accept := True
  Else
    Accept := False;
end;
     // 2..在需要過濾的時候將過濾功能打開
Tale1.Filted := True;
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-08 17:46:18 IP:218.85.xxx.xxx 未訂閱
引言:
// 1..在 dbGrid->DataSource->DataSet(假設為Table1) 的OnFilterRecord 事件中撰寫
//
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  //條件判斷 理論上任何的程式碼皆可接受,但要注意 絕對不可動到DataSet的記錄指標  
  ....
  ....
  // 因為每筆記錄皆會觸發此事作,
  // 最後給作用中的記錄一個結果 (接受或不接受)
  If  (要顯示) Then 
    Accept := True
  Else
    Accept := False;
end;
// 2..在需要過濾的時候將過濾功能打開
Tale1.Filted := True;
多谢,我马上试试。但我要如何提取tabel中的数据来做判断条件?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-08 18:09:06 IP:203.204.xxx.xxx 未訂閱
不用想太多,就是這樣 使用事件參數 If DataSet.FieldByname('xxxx').AsString > ... Then 或 直接用Table1 If Table1.FieldByname('xxxx').AsString > ... Then 發表人 - chance36 於 2004/02/08 18:25:24
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-08 19:14:59 IP:218.85.xxx.xxx 未訂閱
adoquery能用吗?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-08 20:34:14 IP:203.204.xxx.xxx 未訂閱
引言: adoquery能用吗?
有看到OnFilterRecord事件及Filted屬性 就可以
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-08 21:00:30 IP:218.85.xxx.xxx 未訂閱
引言:
引言: adoquery能用吗?
有看到OnFilterRecord事件及Filted屬性 就可以
倒!从没用过OnFilterRecord,不知应该在什么时候“將過濾功能打開”?能不能举个例子? 另:adoquery也有一个叫filtered
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-08 22:56:24 IP:203.204.xxx.xxx 未訂閱
假設 AdoQuery1已開啟一些資料錄    AdoQuery1.Close;
AdoQuery1.Filtered; // 記得要先設為 False;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('Select * From SomeTable');
AdoQuery1.SQL.Add('Where Field1=''SomeValue'' ');
AdoQuery1.Open;
// 如果有需要一開啟就過濾則加以下指令
AdoQuery1.Filtered := True;    // 1..在OnFilterRecord 事件中撰寫
//
procedure TForm1.AdoQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  // 姓'王' 且年齡大於等於30 者 才會顯示 其他則隱藏
  If     (DataSet.FieldByName('Age').AsInteger >= 30)
     And (Copy(DataSet.FieldByName('Name').AsString,1,2)= '王') Then 
    Accept := True  // 接受(會顯示)
  Else
    Accept := False;// 不接受(不會顯示)
end;
     // 2..在需要過濾的時候將過濾功能打開
例如在按了某個按鈕後才需過濾,則在該按鈕的OnClick事件中加入下列指令
Procedure TForm1.Button1Click(Sender:TObject);
Begin
  AdoQuery1.Filtered := True;//開啟功能
  或
  AdoQuery1.Filtered := Not AdoQuery1.Filtered; //切換功能
End;    
系統時間:2024-05-02 21:10:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!