Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现修改完当前行后必须保存才能对其它行进行操作?请帮忙看看代码是否有问题!已上传文件,请再帮忙看看!(已解决)


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

主题:[求助]如何实现修改完当前行后必须保存才能对其它行进行操作?请帮忙看看代码是否有问题!已上传文件,请再帮忙看看!(已解决)

美女呀,离线,留言给我吧!
amanda123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:59 积分:535 威望:0 精华:0 注册:2011/12/7 11:35:00
[求助]如何实现修改完当前行后必须保存才能对其它行进行操作?请帮忙看看代码是否有问题!已上传文件,请再帮忙看看!(已解决)  发帖心情 Post By:2011/12/22 10:45:00 [只看该作者]

在表事件PositionChanged添加了如下语句,是希望每修改完一行中的数据后,在光标离开当前行再点击其它行时能自动提示用户是否保存在该行中所做的改动。目前的问题是:修改完当前行后,点击其它的行没有出现提示,必须是点击其它行后再返回点击该行才会弹出提示框,请问问题出在哪里? With Tables("结算方式窗口_table1") If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改 Else Dim Result As DialogResult Result = MessageBox.Show("是否保存当前行的修改?", "提示", MessageBoxButtons.YesNo) If Result = DialogResult.Yes Then Tables("结算方式窗口_table1").Current.Save() Else Tables("结算方式窗口_table1").Current.Reject() End If End If End With
[此贴子已经被作者于2011-12-22 16:52:45编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/12/22 12:10:00 [只看该作者]

放到AfterEdit中试试。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/12/22 12:18:00 [只看该作者]

楼主还是传个文件吧,窗口中的table不知绑没绑定表,别人也不好分析了。


 回到顶部
美女呀,离线,留言给我吧!
amanda123
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:59 积分:535 威望:0 精华:0 注册:2011/12/7 11:35:00
  发帖心情 Post By:2011/12/22 13:31:00 [只看该作者]

你好,将其放在afteredit中是每编辑完一个单元格后均提示保存,太繁锁了,我上传了项目文件,麻烦再帮我看看!

 回到顶部
美女呀,离线,留言给我吧!
amanda123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:59 积分:535 威望:0 精华:0 注册:2011/12/7 11:35:00
  发帖心情 Post By:2011/12/22 13:32:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:northwind20111213.rar


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/22 14:11:00 [只看该作者]

看看这里的示例二:

 

http://www.foxtable.com/help/topics/0645.htm

 


 回到顶部
美女呀,离线,留言给我吧!
amanda123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:59 积分:535 威望:0 精华:0 注册:2011/12/7 11:35:00
  发帖心情 Post By:2011/12/22 14:30:00 [只看该作者]

我在AfterSelChange中添加了下面的代码,结果是没有做任何操作,只是要光标一动,就老是弹出保存的消息窗口,请帮忙看看代码错在哪里? If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行 Dim Result As DialogResult MessageBox.show("当前行已修改末保存,请保存或撤销修改!") Result = MessageBox.Show("是否保存当前行的修改?", "提示", MessageBoxButtons.YesNo) If Result = DialogResult.Yes Then Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行 r.Save() '保存之 Else Tables("结算方式窗口_table1").Current.Reject() End If End If End If

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/22 14:44:00 [只看该作者]

1、删除你原来的AfterEdit事件代码.

2、AfterSelChange事件代码设置为:

 

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As DataRow = e.Table.Rows(e.OldRange.Rowsel).DataRow '获得原来选择的行
        If r.RowState = DataRowState.Modified OrElse r.RowState = DataRowState.Added Then
            If  MessageBox.Show("当前行已经修改,是否保存?", "提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
                r.Save() '保存之
            End If
        End If
    End If
End If

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


 回到顶部
美女呀,离线,留言给我吧!
amanda123
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:59 积分:535 威望:0 精华:0 注册:2011/12/7 11:35:00
  发帖心情 Post By:2011/12/22 16:51:00 [只看该作者]

问题解决了,非常感谢!

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/12/23 8:06:00 [只看该作者]

以下是引用狐狸爸爸在2011-12-22 14:44:00的发言:

1、删除你原来的AfterEdit事件代码.

2、AfterSelChange事件代码设置为:

 

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As DataRow = e.Table.Rows(e.OldRange.Rowsel).DataRow '获得原来选择的行
        If r.RowState = DataRowState.Modified OrElse r.RowState = DataRowState.Added Then
            If  MessageBox.Show("当前行已经修改,是否保存?", "提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
                r.Save() '保存之
            End If
        End If
    End If
End If

 

 

 

 下载信息  [文件大小:868.0 KB  下载次数:9]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

若不保存则禁止换行,如何写代码?


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