有關dbgrid的問題 |
尚未結案
|
zoe888
一般會員 發表:1 回覆:1 積分:0 註冊:2004-07-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
1.假設 DBGrid1 顯示的是 Table1 的資料, ex:
begin ShowMessage(Table1.FieldByName('Field1').AsString); // 取 Field1 這欄位的值 Table1.FieldByName('Field1').AsString := '新值'; // 設定 Field1 這欄位的新的值 end;2. begin DBNavigator1.BtnClick(nbFirst); // 第一筆 DBNavigator1.BtnClick(nbPrior); // 上一筆 DBNavigator1.BtnClick(nbNext); // ... DBNavigator1.BtnClick(nbLast); DBNavigator1.BtnClick(nbInsert); DBNavigator1.BtnClick(nbDelete); DBNavigator1.BtnClick(nbEdit); DBNavigator1.BtnClick(nbPost); DBNavigator1.BtnClick(nbCancel); DBNavigator1.BtnClick(nbRefresh); end;-- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。 |
zoe888
一般會員 發表:1 回覆:1 積分:0 註冊:2004-07-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言: 1.dbgrid 在取值及set 值時,不用考慮到是第幾行嗎?如何得知dbgrid有幾行? focus目前是在第幾行?還有取值是要寫在Form5.beforepost 中嗎?您可注意到在 TDBGrid 的最左方有個三角形箭頭,它指到哪一筆(行) 所取的值就在哪一筆(行) 如果是想知道整個 Dataset 有幾筆,可使用 TDBGrid.DataSource.Dataset.RecordCount 如果是想知道 TDBGrid 一個畫面有幾筆, 參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39130 focus 在哪一筆,就是上述的箭頭指向哪一筆(行) 要取值就直接取就好了,為什麼要寫在 BeforePost Event 中? 引言: 2.呼叫DBNavigator1.BtnClick(nbInsert); 時他都是insert 在focus 的上方列,如何新增到下方列呢?nbInsert 是在箭頭所指向位置處插入一筆 想要新增到最下方的話,可用 TDBGrid.DataSource.Dataset.Append; 的方式 -- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 1.dbgrid 在取值及set 值時,不用考慮到是第幾行嗎?如何得知dbgrid有幾行?focus目前是在第幾行?還有取值是要寫在Form5.beforepost 中嗎?
//DBGrid在取值及Set值時(准确的說應是Table等資料集元件在取值及Set值時﹐是針對當前的資料錄(Focus)進行動作﹐所以不必考慮是第幾行嘍﹒
//取得目前資料錄的總筆數方法﹕
Label1.Caption := '總筆數為﹕' IntToStr(Table1.RecordCount);
//取得當前資料錄為第幾筆方法﹕
Label2.Caption := '指針位于第﹕' IntToStr(Table1.RecNo) '筆';
//取值的時機必須在資料集元件的State屬性為﹕瀏覽狀態(dsBrowse)﹐也可說成是非關閉狀態(dsInactive)﹐非編輯狀態(dsEdit)﹐非插入狀態(dsInsert)等﹒ 2.呼叫DBNavigator1.BtnClick(nbInsert); 時他都是insert 在focus 的上方列,如何新增到下方列呢?
//有一個簡單的方法就是在Insert之前﹐先將資料錄指針向下移動一筆﹐即移動指針到原Focus的下一筆資料上﹐再做Insert的動作﹐原則上就等同于Insert新資料到原Focus之后了﹐方法如下﹕
begin DBNavigator1.BtnClick(nbNext); DBNavigator1.BtnClick(nbInsert); end;參考看看﹗ Sorry hagar版大﹐回覆后發現撞到您了﹐失禮失禮 :D ========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/07/12 12:11:00
------
忻晟 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
來插花的。用DBNavigator1.BtnClick(nbFirst);
有點多此一舉的感覺。
用
TDBGrid.DataSource.Dataset.First;
TDBGrid.DataSource.Dataset.Prior;
TDBGrid.DataSource.Dataset.Next;
...... 也有一樣的功能。
除了.Delete沒有尋問刪除的對話框之外,其它都一樣。 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |