Foxtable(狐表)用户栏目专家坐堂 → 求助换行前保存当前行的代码


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

主题:求助换行前保存当前行的代码

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2011/6/20 10:32:00 [只看该作者]

在BeforeAddDataRow事件中判断上一行的输入不完整(即"供应商_名称" ,"供应商_帐户名称","采购用途"为空 ),则禁止增加行的代码不会写呀?狐爸,来一个代码吧?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/6/20 10:44:00 [只看该作者]

以下是引用程兴刚在2011-6-20 10:21:00的发言:

1、直接这样:

If e.NewRange.RowSel <> e.OldRange.RowSel Then '而且即将选择另一行
    If e.Table.Current.IsNull("供应商_名称") OrElse e.Table.Current.IsNull("供应商_帐户名称") OrElse e.Table.Current.IsNull ("采购用途") Then '如果编号列为空
        MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
        e.Cancel = True '那么取消操作
    Else
        e.Table.Current.Save()
    End If
End If
2、屏蔽掉这一句,以后手工选择:

      e.Form.Controls("DateTimePicker1").Select()

主要怀疑第二点,当Tables("采购订单").AddNew()触发事件,正在执行的同时e.Form.Controls("DateTimePicker1").Select()让采购订单表表失去了焦点,导致该事件的 e.Table.Current 执行错误。

 

仅个人认为,可能是上述逻辑错误,没测试,也可能判断不准确,如果您测试确实如此,那就有解决办法!

马后炮了!


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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2011/6/20 11:17:00 [只看该作者]

测试了按以上修改,还是同样出现项目关闭退出


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/6/20 11:23:00 [只看该作者]

估计您的系统别的地方有类似的问题,备份后一个一个删除、测试,直到找出最后一个类似问题(初始初始阶段,设计过程中注意每步测试)

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


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

以下是引用红叶在2011-6-20 10:32:00的发言:
在BeforeAddDataRow事件中判断上一行的输入不完整(即"供应商_名称" ,"供应商_帐户名称","采购用途"为空 ),则禁止增加行的代码不会写呀?狐爸,来一个代码吧?

 

Dim r As Row =  Tables("xxx").Current
If  r IsNot Nothing Then
    If r.IsNull("供应商_名称") OrElse r.IsNull("供应商_帐户名称") OrElse r.IsNull("采购用途") Then
        MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
        e.Cancel = True
    Else
        r.Save()
    End If
End If


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/6/20 12:14:00 [只看该作者]

贺老师,新增行以后,鼠标焦点在新增的行,可否不判断 r IsNot Nothing ?当在BeforeAddDataRow事件中设置的代码,也必须判断当前行是否为空吗?(没测试,偷懒问一句,谢谢)

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/6/20 12:30:00 [只看该作者]

还是能新增行的

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/6/20 12:44:00 [只看该作者]

我理解错了,不是要取消新增行.

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


加好友 发短信
等级:小狐 帖子:357 积分:2895 威望:0 精华:0 注册:2008/9/1 14:05:00
  发帖心情 Post By:2011/6/20 14:06:00 [只看该作者]

1,采购订单表的BeforeSelChange事件设置代码为:

If e.Table.Current IsNot Nothing Then '如果当前行是数据行,也就是Current属性不为空
    If e.NewRange.RowSel <> e.OldRange.RowSel Then '而且即将选择另一行
        If e.Table.Current.IsNull("供应商_名称") OrElse e.Table.Current.IsNull("供应商_帐户名称") OrElse e.Table.Current.IsNull("采购用途") Then '如果编号列为空
            MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
            e.Cancel = True '那么取消操作
        Else
            e.Table.Current.Save()
        End If
    End If
End If

2,采购订单表的BeforeAddDataRow事件设置代码为:

   

Dim r As Row =  Tables("采购订单").Current
If  r IsNot Nothing Then
    If r.IsNull("供应商_名称") OrElse r.IsNull("供应商_帐户名称") OrElse r.IsNull("采购用途") Then
        MessageBox.Show("采购订单表中当前行的'供应商名称;供应商帐户名称,采购用途'均为必输项不能为空,请完整录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
        e.Cancel = True
    Else
        r.Save()
    End If
End If

当增加行时仍然是关闭项目退出?

当只测试采购订单表的BeforeAddDataRow事件,项目不会关闭退出,但是r.Save()对于采购订单表的BeforeSaveDataRow其中的代码,没有响应?

说明采购订单表的BeforeSelChange事件还是有问题,

[此贴子已经被作者于2011-6-20 14:09:36编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/6/20 14:22:00 [只看该作者]

你发个项目上来测试吧.

 回到顶部
总数 21 上一页 1 2 3 下一页