分享

数据处理窗口CloseQuery事件编程

 日尼禾称 2016-12-08
该事件下的脚本流程是首先判断数据是否修改过,如果修改过,则让用户选择是否保存,用户确认保存则保存,不保存则退回事务然后关闭窗口。保存数据时,保存成功则直接关闭窗口,保存失败则让用户确认是否关闭窗口,用户确认要关闭则关闭窗口。脚本如下:
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
这样的语句修改后很简洁,但用户必须首先使用“保存”按钮保存数据,然后才能单击“退出”按钮关闭窗口,也就是说程序硬性规定了用户的执行流程。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多