Foxtable(狐表)用户栏目专家坐堂 → 关闭窗口前判断如何实现?


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

主题:关闭窗口前判断如何实现?

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


加好友 发短信
等级:幼狐 帖子:155 积分:1488 威望:0 精华:0 注册:2017/1/31 17:27:00
关闭窗口前判断如何实现?  发帖心情 Post By:2018/9/4 22:39:00 [只看该作者]

请问老师,窗口关闭时如何判断父表当前行及其子表的关联数据行是已保存状态,我想实现在关闭时,如果有修改过的行和新增的行 在退出前提示,这个如何实现啊。

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/4 22:50:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:155 积分:1488 威望:0 精华:0 注册:2017/1/31 17:27:00
  发帖心情 Post By:2018/9/5 8:15:00 [只看该作者]

我现在就是用的haschanges ,但是HasChanges 在删除行后保存,点退出按钮还会有提示,不是我想要的结果。
行状态这种方法应该可行,但是需要判断父表的行状态,及子表所有行关联行的状态,比较麻烦,有没有简单点的方法?

行状态的判断这样做对吗?

dim fdr as row = tables(“父表”).current
dim drs as list(of datarow)= fdr.datarow.getchildrows
if fdr.datarow.rowstate = DataRowState.Added or  fdr.datarow.rowstate = DataRowState.Modified then
   message.show(......)
end if
for each r as datarow in drs
   if r.datarow.rowstate = DataRowState.Added or  r.datarow.rowstate = DataRowState.Modified then
       message.show(.....)
   end if
next

[此贴子已经被作者于2018/9/5 8:16:52编辑过]

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


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

试试

 

'根据DataTable获取一个System.Data.DataTable类型变量
Dim t As System.Data.DataTable = CurrentTable.DataTable.BaseTable
'获取新增行数
Dim t1 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Added )   '新增行
If t1 IsNot Nothing Then Output.Show("新增" & t1.Rows.Count)
'获取修改行数
Dim t2 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Modified )   '修改行
If t2 IsNot Nothing Then Output.Show("修改" & t2.Rows.Count)
'获取已删除行数
Dim t3 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Deleted )   '已删除行
If t3 IsNot Nothing Then Output.Show("删除" & t3.Rows.Count)


 回到顶部