如何不觸發 OnExit 而將資料寫入 Table 裡 |
尚未結案
|
thomas0728
中階會員 發表:112 回覆:260 積分:89 註冊:2002-03-12 發送簡訊給我 |
各位大大:
當我在修改一筆資料時,當游標停在某一個欄位做修改資料時,此時如果使用者去按存檔,因為此欄位並無法順利的執行到 OnExit 事件,所以資料並不會真正寫入,此時 TClientDataSet.FieldByName('aaa').Value=Null ,所以在 pos前無法針對此欄位的值做判斷,而無又不想用模擬按鍵去執行跳往下一個欄位的動作,因為我在 OnExit 另有寫一此事作,我的用意只是要在存檔前判斷此筆資料是否重覆,如果去執行時會先跳出我在 OnExit 中寫的檢查鍵值不可空白的程式,
也就是我希望能透過程式把目前在 TDBEdit 上的資料寫入該新增時的 Record 裡,而不觸發 OnExit
謝謝,希望這樣的描述大家看的懂 ps:我的 POS 按鍵是 TSpeedButton 所以並不會讓 TDBEdit 的 Focus 轉移 如果愛情也有味覺
那麼 有沒有ㄧ種愛
微微泛酸 不太苦澀 有點甜密
嚐起來的滋味讓人想起幸福
Thomas Chiou
------
Thomas Chiou |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi thomas0728, 不知是否有誤解你的意思
procedure TForm1.SpeedButton1Click(Sender: TObject); begin If ClientDataSet1.State in [dsInsert,dsEdit] then begin ClientDataSet1.FieldByName(DBEdit1.DataField).AsString := DBEdit1.Text; ClientDataSet1.ApplyUpdates(-1); end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
thomas0728
中階會員 發表:112 回覆:260 積分:89 註冊:2002-03-12 發送簡訊給我 |
確實有點麻煩,事實上我是用 TcxDBTextEdit....等控制元件
使用 TCxDBTextEdit(ActiveControl).Text; 可以得到值沒錯
但用 cdsBillHead.FieldByName(TDBEdit(ActiveControl).DataField).AsString 却會有問題,因是取到值把,也就是我無法今 cdsBillHead.FieldByName(TDBEdit(ActiveControl).DataField).AsString:=TCxDBTextEdit(ActiveControl).Text;
不知錯在那 如果愛情也有味覺
那麼 有沒有ㄧ種愛
微微泛酸 不太苦澀 有點甜密
嚐起來的滋味讓人想起幸福
Thomas Chiou
------
Thomas Chiou |
evanskang
一般會員 發表:6 回覆:7 積分:2 註冊:2004-03-01 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言: 各位大大: 當我在修改一筆資料時,當游標停在某一個欄位做修改資料時,此時如果使用者去按存檔,因為此欄位並無法順利的執行到 OnExit 事件,所以資料並不會真正寫入,此時 TClientDataSet.FieldByName('aaa').Value=Null ,所以在 pos前無法針對此欄位的值做判斷,而無又不想用模擬按鍵去執行跳往下一個欄位的動作,因為我在 OnExit 另有寫一此事作,我的用意只是要在存檔前判斷此筆資料是否重覆,如果去執行時會先跳出我在 OnExit 中寫的檢查鍵值不可空白的程式, 也就是我希望能透過程式把目前在 TDBEdit 上的資料寫入該新增時的 Record 裡,而不觸發 OnExit 謝謝,希望這樣的描述大家看的懂 ps:我的 POS 按鍵是 TSpeedButton 所以並不會讓 TDBEdit 的 Focus 轉移 如果愛情也有味覺 那麼 有沒有ㄧ種愛 微微泛酸 不太苦澀 有點甜密 嚐起來的滋味讓人想起幸福 Thomas Chiou1: 打開TClientDataSet的欄位編輯器 找到你要的欄位 然後有一個 onValidate事件 把你要做此筆資料是否重覆的判斷的程式碼 寫在裡面 就可以了 2: 你之所以會觸發OnExit事件 是因為TDBEdit.text := ''所引起的 如果有資料 自然不會觸發OnExit事件 另外補充一點 : 需要作判斷的 盡量不要寫在OnExit事件 這樣會造成某種程度的不方便 你可以寫在存檔紐裡面 或onBeforePost事件裏會較理想 當然 如果因為某種因素非要寫在OnExit事件 也不是不行啦 不知道有沒有誤會你的意思 天行健 君子當自強不息~~@.@ 發表人 - t.j.b 於 2004/08/31 22:32:14
------
天行健 君子當自強不息~~@.@ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |