Foxtable(狐表)用户栏目专家坐堂 → 请教老师,如何设计未保存提示?


  共有25296人关注过本帖树形打印复制链接

主题:请教老师,如何设计未保存提示?

帅哥哟,离线,有人找我吗?
czy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 12:11:00 [显示全部帖子]

If DataTables("某表").HasChanges Then
    Dim Meb As DialogResult
    MessageBox.Show("某表已经被修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
    Select Case Meb
    Case DialogResult.Yes
        DataTables("某表").Save()
        e.form.Close()
    Case DialogResult.No
        e.form.Close()
    End Select
End If

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 13:38:00 [显示全部帖子]

不好意思,楼上代码漏了最关键的,未对Meb变量赋值。

If DataTables("某表").HasChanges Then
    Dim Meb As DialogResult
    Meb = MessageBox.Show("某表已经被修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
    if  Meb = DialogResult.Yes Then
        DataTables("某表").Save()
        e.form.Close()
    Elseif  Meb = DialogResult.No Then
        e.form.Close()
    End If
Else
    e.form.Close()
End If
[此贴子已经被作者于2009-3-29 13:39:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 15:29:00 [显示全部帖子]

这个应该比较难办吧。
假如你不是关闭窗口,而是判断是否进行过修改,然后关闭项目就容易办。
无论根据判断是否关闭窗口,此时的修改过的值都真真切切的存在于表中,只要你以后执行保存,修改过的数据都会进行保存。
从你的个表述看,最好的办法是当选择否后,判断CanUndo是否有撤消的信息,直至全部撤消。
[此贴子已经被作者于2009-3-29 15:31:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 15:38:00 [显示全部帖子]

CanUndo是判断指定表的。
只是帮助中没有这样的示例,偶不会代码。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 15:41:00 [显示全部帖子]

借你的贴,我倒希望老六增加清除编辑标记的函数,这样更能灵活处理一些特殊的要求。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 15:51:00 [显示全部帖子]

Tables("表名").CanUndo
CanUndo能返回一个集合吗?如果能够返回问题就很好解决,否则只能挠头了。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 19:37:00 [显示全部帖子]

以下是引用gdlgh在2009-3-29 16:39:00的发言:
试下这样?

Do While Tables("表名").CanUndo
    Syscmd.Edit.Undo()
Loop


是个好方法。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 20:43:00 [显示全部帖子]

以下是引用mr725在2009-3-29 20:22:00的发言:

CanUndo

判断指定的Table是否有可以撤销的编辑操作。
留意到菜单中的撤销按钮吗?在当前Table没有可撤销的操作时,该按钮是不可用的,该特性就是利用的CanUndo属性实现的,以后学习菜单设计的时候,你会接触到很多这种例子。

注意:用代码修改数据后 狐表的撤销按钮是不可用的!

[此贴子已经被作者于2009-3-29 20:22:33编辑过]


从楼主发的图片看,完全可以满足要求,他的窗口只有增加行和删除行的按钮,可以将这两个按钮用系统命令。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 21:07:00 [显示全部帖子]

以下是引用mr725在2009-3-29 21:03:00的发言:

我的演示可以说明问题吗? 


图片点击可在新窗口打开查看此主题相关图片如下:undo不起作用啊~.gif

[此贴子已经被作者于2009-3-29 21:02:54编辑过]


这个无需演示的,道理明摆着用代码是不行的。
我是以楼主发的图片在猜测,如真象lxl版主所说,这个问题只有老六能解决。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/29 23:49:00 [显示全部帖子]

你这个效果就是gdlgh所说的效果,只是编辑数据肯定能符合要求,就象你们所说通过代码变动的数据没办法撤消。

 回到顶部
总数 14 1 2 下一页