數據處理窗口CloseQuery事件編程

該事件下的腳本流程是首先判斷數據是否修改過,如果修改過,則讓用戶選擇是否保存,用戶確認保存則保存,不保存則退回事務然後關閉窗口。保存數據時,保存成功則直接關閉窗口,保存失敗則讓用戶確認是否關閉窗口,用戶確認要關閉則關閉窗口。腳本如下:
int li_flag
If dw_1.ModifiedCount() <> 0 or dw_1.DeletedCount() <> 0 Then
Beep(2)
li_flag = MessageBox("確認","數據已經修改,是否保存",Question!,YesNoCancel!,1)
Choose Case li_flag
Case 1//用戶要求保存
If dw_1.Update() = 1 Then//如果保存成功
commit;//提交數據
return 0//關閉窗口
Else//保存不成功
rollback;//回退事務
Beep(2)//響鈴兩聲
//讓用戶確認是否關閉窗口
If MessageBox("錯誤","數據保存不成功,是否還要關閉窗口?",&
Question!,YesNo!,2) = 1 Then
return 0//關閉窗口
Else
return 1//不關閉窗口
End If
End If
Case 2//不保存數據
rollback;//回退事務
return 0//關閉窗口
Case 3//用戶選擇了Cancel
return 1//不允許關閉窗口
End Choose
Else//數據窗口中的數據沒有修改過
return 0//直接關閉窗口
End If
上面的腳本也可以簡化成以下語句:
If dw_1.ModifiedCount() <> 0 or dw_1.DeletedCount() <> 0 Then
Beep(2)
MessageBox("提示", "數據已經修改,請先保存數據再退出! ")
Return 1
Else
Close(parent)
End If
這樣的語句修改後很簡潔,但用戶必須首先使用“保存”按鈕保存數據,然後才能單擊“退出”按鈕關閉窗口,也就是說程序硬性規定了用戶的執行流程。
發佈了29 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章