Foxtable(狐表)用户栏目专家坐堂 → [求助]如何DATATABLE的数据被清除时在录入窗口进行更新


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

主题:[求助]如何DATATABLE的数据被清除时在录入窗口进行更新

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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
[求助]如何DATATABLE的数据被清除时在录入窗口进行更新  发帖心情 Post By:2014/11/19 15:06:00 [只看该作者]

专家:

      我在数据表<表A>的datacolchange事件中进行以下判断

当A列的内容发生变化时,如果该记录不符合判定条件时,执行了e.datarow("A列") =  nothing

      我建了一个录入窗口,当中插入了记录窗口控件并绑定到表A,插入了一个table表,绑定到表A,

当我输入数据时,在A列输入的数据错误时,会给出警告,在table表中A列的内容会被清空,但在

记录窗口中列A的数据不会清空,如果想同步实现记录窗口中的列A数据也被清空,同时把焦点落在列A。

如何实现?以上,谢谢!

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/19 15:08:00 [只看该作者]

 刷新一下记录窗口即可

 

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

 


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 7:50:00 [只看该作者]

焦点呢?

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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 8:34:00 [只看该作者]

上传样版,在窗口中的内径、内毛刺里可以输入数据,当数据超出时,会提示,并清空数据,

这些会反应在table控件中,在recordgrid控件中没有反应,如果我是在内径中输入,如果

按了回车键,一旦有错误提示后,我希望,光标还能回到内径栏中,而不是执行回车到下一

栏中。


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 8:35:00 [只看该作者]

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/20 8:46:00 [只看该作者]

Forms("窗口1").Controls("RecordGrid1").basecontrol.Row=3  这样可以设置记录窗口的选中行

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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 14:39:00 [只看该作者]

这行代码加在什么位置?如果加在表的DATACOLCHANGE事件中,没有效果啊。

还有前面说的Refresh是用在哪里?我加在DataColchange事件中也没有效果。

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/20 14:51:00 [只看该作者]

 去掉之前的代码,在validateEdit加入代码

 

If e.col.name = "内径" Then
    Dim cr As Row = e.Row
    If cr.Isnull("内径")  Then
        Return
    Else
        If val(cr("内径")) > val(3.43) OrElse val(cr("内径")) < val(3.4) Then
            MessageBox.Show("当前数值超出了管理范围,确定要输入?","确认",MessageBoxButtons.OK)
            e.cancel = True
        End If
    End If
End If
If e.Col.name = "内毛刺" Then
    Dim cr As Row = e.Row
    If cr.Isnull("内毛刺")  Then
        Return
    Else
        If val(cr("内毛刺")) > val(0.1) Then
            MessageBox.Show("当前数值超出了管理范围,确定要输入?","确认",MessageBoxButtons.OK)
            e.cancel = True
        End If
    End If
End If
If e.Col.name = "外径A" Then
    Dim cr As Row = e.Row
    If cr.Isnull("外径A")  Then
        Return
    Else
        If val(cr("外径A")) > val(5.95) OrElse val(cr("外径A")) < val(5.9) Then
            MessageBox.Show("当前数值超出了管理范围,请确认?","警告",MessageBoxButtons.OK)
            e.cancel = True
        End If
    End If
End If

If Forms("窗口1").Opened Then
    Forms("窗口1").Controls("RecordGrid1").refresh
End If


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 15:39:00 [只看该作者]

如果按当前代码运行,输入的不合适数据是不会被清空的,

如果在e.cancel = ture 前加上 cr("内径") = nothing 的话,

table控件内的数据会被清空,但记录窗口的数据还是不会被清空。

是什么原因呢?


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/11/20 15:51:00 [只看该作者]

而且这种输入还有一个很大的问题,就是当我输入的数据不满足要求,会跳出提示窗,

但事后如果我无论是清空了数据还是没有清空,如果我去点了另外一个单元格,那错

误的数据还是会自动录入,并且不会有错误提示。这样对于预防错误输入是没有任何

意义的。

[此贴子已经被作者于2014-11-20 15:52:14编辑过]

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