以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关闭窗口前判断如何实现?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124351)

--  作者:hebxtshhyj
--  发布时间:2018/9/4 22:39:00
--  关闭窗口前判断如何实现?
请问老师,窗口关闭时如何判断父表当前行及其子表的关联数据行是已保存状态,我想实现在关闭时,如果有修改过的行和新增的行 在退出前提示,这个如何实现啊。
--  作者:有点蓝
--  发布时间:2018/9/4 22:50:00
--  
参考:http://www.foxtable.com/webhelp/scr/0387.htm


--  作者:hebxtshhyj
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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)