Foxtable(狐表)用户栏目专家坐堂 → 删除之后的保存问题


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

主题:删除之后的保存问题

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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
删除之后的保存问题  发帖心情 Post By:2020/2/6 9:53:00 [只看该作者]


侧面还行 9:43:09
在父表窗口中的关联子表增加行,保存退出父表窗口后可以直接关闭项目


但是在父表窗口中,删除关联子表的行后,保存退出父表窗口,若要关闭项目,必须再保存一次是什么原因



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/6 10:20:00 [只看该作者]

保存退出父表窗口  - 这里的保存有没有保存子表?

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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
  发帖心情 Post By:2020/2/6 10:23:00 [只看该作者]

保存了,代码如下

With Tables("销售定单主表")
    If .Current IsNot Nothing Then
        Dim drs As List (of DataRow)=.Current.DataRow.getchildrows("销售定单明细表")
        For Each dr As DataRow In drs
            dr.Save()
        Next
        .Current.Save()
    End If
End With


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/6 10:27:00 [只看该作者]

这种保存对删除的行无效

With Tables("销售定单主表")

    If .Current IsNot Nothing Then
        tables("销售定单明细表").save
        .Current.Save()
    End If
End With

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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
  发帖心情 Post By:2020/2/6 10:42:00 [只看该作者]

如果用这个代码的话,我明细表删除之后,窗口不用保存都可以关闭了

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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
  发帖心情 Post By:2020/2/6 10:44:00 [只看该作者]

before close 代码如下:

 

Dim drs As List (of DataRow)=Tables("销售定单主表").current.DataRow.getchildrows("销售定单明细表")
For Each dr As DataRow In drs
If dr.Rowstate <> DataRowstate.unchanged Then '如果当前行已经修改过
    e.Cancel = True
MessageBox.Show("内容已更改,请保存或撤销")
ElseIf dr.isnull("数量") Then
e.Cancel = True
MessageBox.Show("销售定单明细表有空行")
End If
Next


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/6 10:51:00 [只看该作者]

这种方法一样无法判断删除的行,这样判断即可:http://www.foxtable.com/webhelp/topics/0387.htm

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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
  发帖心情 Post By:2020/2/6 11:30:00 [只看该作者]

如果明细表删除行,如下语句在beforeclose里执行无效吗:

 

If DataTables("销售定单明细表").HasChanges Then 

    e.Cancel = True
MessageBox.Show("内容已更改,请保存或撤销")
End If

 

 


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


加好友 发短信
等级:幼狐 帖子:161 积分:1240 威望:0 精华:0 注册:2019/10/12 19:54:00
  发帖心情 Post By:2020/2/6 11:31:00 [只看该作者]

这个主表有很多明细表,之前都是在beforeclose里执行的,我想还是在beforeclose里判断


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/6 11:48:00 [只看该作者]

beforeclose肯定可以的,这个是主窗口?如果是同一个表的2个主窗口,打开A主窗口,B主窗口会被自动关闭,且B主窗口beforeclose无效。

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