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

DBgrid元件「修改及新增模式」時,如何判斷都有輸入資料才能跳開

答題得分者是:channel
esp_pzj
初階會員


發表:32
回覆:70
積分:40
註冊:2007-02-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-17 00:10:01 IP:219.86.xxx.xxx 訂閱
問題是這樣:
我用dbgrid元件新增或修改資料時,要先判斷是否都輸入資料才能post進資料庫。
不過當我正在「新增或修改資料時」,直接點選別列的資料,就會post進資料庫,
然後跳到該例, 如何在「新增或修改資料時」,點選別列資料,必需先判斷是否都有輸入資料,post進資料庫,才可以跳到該例, 如果還沒完成輸入資料, 不可跳到該例,繼續修改或新增資料。

或者在「新增或修改資料時」,不要讓使用者跳到別列,等確定或取消修改新增後才能跳到別例

謝謝 各位前輩

------
學藝不精 謝多多指教
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-17 01:11:22 IP:59.114.xxx.xxx 訂閱
在連結dbgrid的DataSet中的BeforePost Event判斷那些欄位該輸入

procedure TForm1.Query1BeforePost(DataSet: TDataSet);
begin
if DataSet.FieldByName('FieldA').AsString = '' then
raise Exception.Create('請輸入FieldA');
end;



===================引 用 esp_pzj 文 章===================
問題是這樣:
?? 我用dbgrid元件新增或修改資料時,要先判斷是否都輸入資料才能post進資料庫。
?? 不過當我正在「新增或修改資料時」,直接點選別列的資料,就會post進資料庫,
?? 然後跳到該例,?如何在「新增或修改資料時」,點選別列資料,必需先判斷是否都有輸入資料,post進資料庫,才可以跳到該例, 如果還沒完成輸入資料, 不可跳到該例,繼續修改或新增資料。

?? 或者在「新增或修改資料時」,不要讓使用者跳到別列,等確定或取消修改新增後才能跳到別例

????????????????????????????????? 謝謝? 各位前輩

------
~小弟淺見,參考看看~
esp_pzj
初階會員


發表:32
回覆:70
積分:40
註冊:2007-02-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-17 20:36:06 IP:219.81.xxx.xxx 訂閱
謝謝前輩:這個方法可以達到我想要的功能,
我有放在BeforePost Event內
,不過會出現debugger,
project xxxx.exe raised exception class Exception
with message '''請輸入FieldA' . Process stopped.
Use Step or Run to continue.
可以讓它不要出現debugger嗎?
還是我使用上有錯誤?


再請問一下 raiseException.Create及是什麼意思丫,我以幫我解釋一下嗎?

raise Exception.Create('請輸入FieldA');



===================引 用 channel 文 章===================
在連結dbgrid的DataSet中的BeforePost Event判斷那些欄位該輸入

procedure TForm1.Query1BeforePost(DataSet: TDataSet);
begin
? if DataSet.FieldByName('FieldA').AsString = '' then
??? raise Exception.Create('請輸入FieldA');
end;


------
學藝不精 謝多多指教
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-17 23:42:38 IP:59.114.xxx.xxx 訂閱
raise Exception.Create('請輸入FieldA');
其實就是等於以下這兩行
MessageDlg('請輸入FieldA', mtError, [mbOk], 0);
abort;

會出現debugger,是因為您還開啟delphi Run您的Project
如果您直接執行您的exe檔(因為user是執行您的exe檔),就不會有這種情況了

===================引 用 esp_pzj 文 章===================
謝謝前輩:這個方法可以達到我想要的功能,
我有放在BeforePost Event內
,不過會出現debugger,
project xxxx.exe raised exception class Exception?
with message '''請輸入FieldA' . Process stopped.?
Use Step or Run to continue.
可以讓它不要出現debugger嗎?
還是我使用上有錯誤?


再請問一下??raiseException.Create及是什麼意思丫,我以幫我解釋一下嗎?

?raise Exception.Create('請輸入FieldA');



===================引 用 channel 文 章===================
在連結dbgrid的DataSet中的BeforePost Event判斷那些欄位該輸入

procedure TForm1.Query1BeforePost(DataSet: TDataSet);
begin
? if DataSet.FieldByName('FieldA').AsString = '' then
??? raise Exception.Create('請輸入FieldA');
end;

?
------
~小弟淺見,參考看看~
esp_pzj
初階會員


發表:32
回覆:70
積分:40
註冊:2007-02-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-18 08:45:56 IP:210.60.xxx.xxx 訂閱
感謝channel前輩詳細回答
小弟受益良多
------
學藝不精 謝多多指教
系統時間:2024-04-28 23:46:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!