Foxtable(狐表)用户栏目专家坐堂 → 窗口关闭按钮


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

主题:窗口关闭按钮

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
窗口关闭按钮  发帖心情 Post By:2018/4/22 16:48:00 [显示全部帖子]

窗口A中的关闭窗口按钮,想要实现的功能:
点击关闭按钮时,如果窗口A中的表A未作修改,窗口A直接关闭;如果窗口A中的表A已作修改,则询问是否保存表A:
1.如果点否不保存,则删除修改后未保存的行,窗口A关闭
2.如果点是则保存,并检查表A中新增的所有行中列1、列2、列3是否为空值。如果不是空值,则表A保存,窗口A关闭;如果任一列为空值,则返回窗口A,填写列1、2、3的值。
请帮我改一下代码:
If Forms("新增安全设施维保记录").opened Then
Dim nms() As String = {"维保日期","维保内容","维保人"}   '不允许为空的列名
    Dim dt As DataTable=Tables("新增安全设施维保记录_table1").DataTable
   If MessageBox.Show("当前表已修改,是否保存?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information)=7 Then '如果按否,则删掉本行数据
        For Each dr As DataRow In dt.DataRows
            If dr.RowState = DataRowstate.added Then
                dr.delete
            End If
        Next
    Else '否则退出
        For Each nm As String  In nms
                If dr.isnull(nm) Then
                    messagebox.show(nm & "维保日期/维保内容/维保人三列必须输入内容,否则请先删除无内容的行")
                    Return
                Else
                    dt.save
                    e.Form.close
        Return
    End If
......

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 8:25:00 [显示全部帖子]

不行啊老师,
现在的问题:
出现“是否保存“的提示框后,如果点击”是“,不保存,继续出现提示框”是否保存“,再点击是,保存,提示框关闭。
如果点击一次”否“,提示框不关闭,点击两次”否“后,新增的行删除了,提示框仍不关闭,继续点击”否“,提示框仍不关闭,再点击”是“,提示框关闭,窗口B关闭。
想要实现:
点击”是“,如果三列已输入内容,直接保存,关闭提示框,如果这三列中有空值,返回窗口B继续输入内容。
点击”否“,不保存修改,提示框关闭,删除当前修改的行,窗口B关闭

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 10:04:00 [显示全部帖子]

我上传个实例吧:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

三列有空白时,不删除行


[此贴子已经被作者于2018/4/23 10:54:27编辑过]

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 11:46:00 [显示全部帖子]

我的项目有问题:
页面集合中的七个页面,七个表,点击除”警示告知类台账“之外的所有六个表的”添加维保记录“中的”新增一行“按钮,警示告知类台账中的第五行都在窗口B中新增七行,并且保存。这样当我点击保存提示框中 的”否“的时候,不能删除窗口B 中已保存的行,所以重复出现保存提示框。

问题出在哪个事件?我找了很长时间,也没找到


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180423113447.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180423113512.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 14:14:00 [显示全部帖子]

这个问题已经解决了,谢谢老师
问题出在窗口B的beforeclose的代码上

但是窗口B新增一行时,窗口B中仍不出现新增的行

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 15:32:00 [显示全部帖子]

测试步骤:
1.应用窗口1,选择页面2,点击添加维保记录,打开了窗口2,点击新增一行,什么都不出现
2.同样选择页面1,就可以
3.再选择其他页面,也不行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目.foxdb

老师帮忙看一下,谢谢


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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/4/23 16:30:00 [显示全部帖子]

老师厉害,谢谢
我改了afterload代码,行了

 回到顶部