請問如何在DBGrid內作資料異動~ |
尚未結案
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
|
meta
中階會員 發表:3 回覆:60 積分:57 註冊:2004-06-09 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
|
meta
中階會員 發表:3 回覆:60 積分:57 註冊:2004-06-09 發送簡訊給我 |
//參考Fishman大文章..
http://delphi.ktop.com.tw/topic.php?topic_id=43708
「不過先決條件是該欄位 type 為數字(Integer,Float,Word...皆可)」..
因為欄位格式不同,所以無法使用.. //這是自己試的,D7下ok!
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin AdoDataSet1.Edit; if Field.DisplayName='test' then if (Length(Field.Text)<2) and(Field.Text<>'') then begin Field.Text:='0' Field.Text; AdoDataSet1.Post; end; end;//應該有更好的方法..再想想.研究一下.. |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi All, Sorry !! 插一下花 假設該欄位型態為 String 則可以這樣: 1.
uses StrUtils
然後在該 Field 的 OnGetText Event 加入以下程式碼 procedure TForm1.ClientDataSet1sGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := RightStr('00' + TField(Sender).AsString,2);
end; 2.
設定該欄位的 EditMask 為 00;1;_(EditMask 僅對 TStringField 有用,TFloatField、TIntegerField 等數字型態欄位並無該項設定) ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
meta
中階會員 發表:3 回覆:60 積分:57 註冊:2004-06-09 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
Hi Fishman /meta~ 謝謝你們所提供方法~最後我是利用ADOQuery2DSDesigner7GetText處理 procedure TForm1.ADOQuery2DSDesigner7GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if ADOQuery2.Eof <> true then
begin
Text := formatfloat('00',Strtoint(Trim(ADOQuery2.fieldbyname('充填起始番號').AsString)));
end;
end; 但是奇怪吶~為什麼修改某一記錄時~
卻要修改資料結束時~
指標再指至下一筆才可以真正在存入值的動作呢~ 謝謝你們~ 麻煩大家
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi t0288542,
DataSet 特性即是如此,方可減少不斷更新資料庫問題,否則同一筆資料10個欄位,輸入時豈不是得更新10次? 若有必要可於 DBGrid 的 OnColExit 事件加入一些程式碼自行 Post procedure TForm1.DBGrid1ColExit(Sender: TObject); begin if TDBGrid(Sender).DataSource.DataSet.State in [dsInsert,dsEdit] then TDBGrid(Sender).DataSource.DataSet.Post; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |