起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 333|回复: 17

【搞定】[请求]关于关闭窗口时出现的数据未保存提示问题**

[复制链接]
发表于 2007-8-8 10:03:26 | 显示全部楼层 |阅读模式
我在窗体导航条的beforeaction事件中写了一些统计代码,统计子数据集的信息回填到主数据集的字段中,如果是正常操作,点击保存按钮,没有问题.但是如果修改了子数据集,没有保存直接退出窗体,系统会提示是否要保存,如果这时候保存,那么我的统计代码没有执行,请问怎么处理该问题?
回复

使用道具 举报

发表于 2007-8-8 10:32:48 | 显示全部楼层
可以把代码放到数据集的BeforeApplyupdates事件里。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-8 11:27:59 | 显示全部楼层
放到BeforeApplyupdates事件中会形成死循环
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-8 11:31:33 | 显示全部楼层
或者就是统计的结果更新到主数据集后不能成功提交,这个我已经debug跟踪过了.因为在子数据集BeforeApplyupdates统计的时候,主数据集已经post了,然后再把统计结果回填主数据集的时候会报错已提交.这个问题原来已经和刘素杰讨论过了,后来解决方案就是写在导航条的beforeaction事件中.
回复 支持 反对

使用道具 举报

发表于 2007-8-8 15:09:48 | 显示全部楼层
用1楼的方法,然后在窗体的CloseQuery事件里再处理下就行了,截获那个提示提交的对话框
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-8 15:52:53 | 显示全部楼层
有没有例子看看
回复 支持 反对

使用道具 举报

发表于 2007-8-8 16:13:05 | 显示全部楼层
procedure TMainForm.BizFormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
     统计代码;
   数据集.appleupdates;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-8 16:33:43 | 显示全部楼层
这样不是很好,这样的话,如果我先保存了,那么后面关掉窗口的时候还是要提示我保存,另外如果确实不需要保存怎么办?.希望能够在弹出那个提示保存的窗口后,根据操作是否要保存再确定要不要统计更新主数据集.
回复 支持 反对

使用道具 举报

发表于 2007-8-8 16:35:35 | 显示全部楼层
应该不会弹那个提示保存的窗口了,楼主先试试再说
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-9 10:20:29 | 显示全部楼层
我的意思是,这样修改的话,如果只是查询信息,不小心改到内容,关闭窗口的时候就自动保存了,不会提醒用户是否要保存,这样不是很好.最好是在截获那个提醒窗口后,让用户自己确定是否要保存比较好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-16 01:39 , Processed in 0.039265 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表