Foxtable(狐表)用户栏目专家坐堂 → 请教:编辑行之后自动保存


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

主题:请教:编辑行之后自动保存

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


加好友 发短信
等级:幼狐 帖子:114 积分:1108 威望:0 精华:0 注册:2012/12/4 18:28:00
请教:编辑行之后自动保存  发帖心情 Post By:2014/4/16 23:31:00 [只看该作者]

请教各位高手,

为提升用户体验,设计以下编辑控制点,不知最后一点如何实现。非常感谢

 

1. 新增或编辑行之后,自动保存

2. 自动保存时校验某列非空

3. 如果没有保存成功,不允许切换其他表。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/17 8:52:00 [只看该作者]

MainTableChanging事件


If DataTables(e.OldTableName).HasChanges Then
    MessageBox.show("有没保存内容")
    e.Cancel=True
End If

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


加好友 发短信
等级:幼狐 帖子:114 积分:1108 威望:0 精华:0 注册:2012/12/4 18:28:00
  发帖心情 Post By:2014/4/17 21:35:00 [只看该作者]

e.cancel 没有想到。就是要这个效果。

非常感谢。


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


加好友 发短信
等级:幼狐 帖子:114 积分:1108 威望:0 精华:0 注册:2012/12/4 18:28:00
  发帖心情 Post By:2014/4/17 21:42:00 [只看该作者]

非常感谢,要的是这个效果。

 

新问题来了,

如果修改关联表,切换主表,还是可以切换,请问如何处理啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/17 21:49:00 [只看该作者]

 改一下代码,检查整个项目的表是否有修改

 

For Each dt As DataTable In DataTables 

    If dt.HasChanges Then
        MessageBox.show("有没保存内容")
        e.Cancel=True
        exit for
    End If

Next

[此贴子已经被作者于2014-4-17 21:49:50编辑过]

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


加好友 发短信
等级:幼狐 帖子:114 积分:1108 威望:0 精华:0 注册:2012/12/4 18:28:00
  发帖心情 Post By:2014/4/17 22:53:00 [只看该作者]

非常感谢Bin兄和甜兄,已经解决了,自己也进一步优化了用户体验。分享如下:

 

编辑表之后如离开,提示是否保存。点击“是”,则立即保存。

 

Dim Result As DialogResult
For Each dt As DataTable In DataTables  '检查所有的表,包括关联表修改,也禁止切换
    If dt.HasChanges Then
        Result = MessageBox.Show("是否保存?","提示", MessageBoxButtons.YesNo)
        If Result = DialogResult.Yes Then
            Syscmd.Project.Save()
        Else
            e.Cancel=True
        End If
        Exit For '找到修改的表,便停止查找
    End If
Next

 

 


 回到顶部