全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1192
推到 Plurk!
推到 Facebook!

DBGrid的post問題

缺席
SuperLowB
初階會員


發表:96
回覆:77
積分:34
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-21 13:33:06 IP:203.198.xxx.xxx 未訂閱
在DBGrid裏,當我Insert 一列record 時,輸入完所有資料後,按鍵盤上的↓鍵之後,就會post 了這列record,而DBGrid上的指標也移到下一列record,但可不可以我想在按鍵盤上的↓鍵之後,post之前,做一些validation,如果發現輸入的資料有錯誤,不post 這列record,而DBGrid上的指標也移到下一列record,即仍然保留在這列record上,直輸入的資料正確無誤後,才可post,各位大哥應樣做?
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-21 14:02:37 IP:61.59.xxx.xxx 未訂閱
你可以寫在TTable的BeforePost Event中 參考參考^_^ void __fastcall TForm1::Table1BeforePost(TDataSet *DataSet) { if(MessageDlg("Update Record?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrNo) Abort(); } //--------------------------------------------------------------------------- -------------------------- ~天下本無事 庸人自擾之~
wager
一般會員


發表:2
回覆:10
積分:2
註冊:2003-05-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-03 09:32:37 IP:61.145.xxx.xxx 未訂閱
引言: 你可以寫在TTable的BeforePost Event中 參考參考^_^ void __fastcall TForm1::Table1BeforePost(TDataSet *DataSet) { if(MessageDlg("Update Record?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrNo) Abort(); } //--------------------------------------------------------------------------- -------------------------- ~天下本無事 庸人自擾之~
用這條語句的確可以解決樓頂大大的問題,但是請問如果是在insert或是edit資料行后,按上下移動資料行,出現提示保存,如果選擇了mrNo,也就是取消post,怎樣可以作到取消post后照樣滾動??? 請大大告之,謝謝!!!
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-03 10:10:06 IP:218.16.xxx.xxx 未訂閱
引言:
引言: 你可以寫在TTable的BeforePost Event中 參考參考^_^ void __fastcall TForm1::Table1BeforePost(TDataSet *DataSet) { if(MessageDlg("Update Record?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrNo) begin Abort(); Table1.next; //加入这句就可以在mrNo后继续移动 end; } //--------------------------------------------------------------------------- -------------------------- ~天下本無事 庸人自擾之~
用這條語句的確可以解決樓頂大大的問題,但是請問如果是在insert或是edit資料行后,按上下移動資料行,出現提示保存,如果選擇了mrNo,也就是取消post,怎樣可以作到取消post后照樣滾動??? 請大大告之,謝謝!!!
努力,相信会做的更好! 發表人 - xiaoning79627 於 2003/12/03 10:12:18
wager
一般會員


發表:2
回覆:10
積分:2
註冊:2003-05-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-03 11:43:38 IP:61.145.xxx.xxx 未訂閱
用這句語句恢復原值比用abort強多了,因為一旦用了Abort,所有事務全部取消,當然也包括post后面的scroll滾動事件,所以這個方案最好!不知是否合樓頂大大的要求,我是用這個辦法解決了我的應用! procedure TMdiChildFrm.ADOQuery1BeforePost(DataSet: TDataSet); if MessageDlg('你要保存當前的修改嗎?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then begin for i:=0 to dataset.FieldCount-1 do dataset.Fields.Fields[i].Value:= dataset.Fields.Fields[i].CurValue; end; end;
系統時間:2024-11-25 12:28:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!