Foxtable(狐表)用户栏目专家坐堂 → [求助]出现个怪异的问题,不知道怎么回事(已解决)


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

主题:[求助]出现个怪异的问题,不知道怎么回事(已解决)

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
[求助]出现个怪异的问题,不知道怎么回事(已解决)  发帖心情 Post By:2016/10/28 14:34:00 [显示全部帖子]

在窗体打开的情况下,窗体有关联表

主表为当前行为某一行,鼠标焦点从主表移到窗体的关联表时,会出现主表当前行变动


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


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

如图,一开始主表当前行在102行,鼠标移动点击窗体关联表(如窗体培训记录),就会出现主表当前行变动的情况,但是不是所有都变,而是偶发,频率还比较高,大概30%的操作会出现这个问题,我不知道怎么会这样?
有没有人碰到过这个问题,或者问题可能出现在什么地方,望指点


 


[此贴子已经被作者于2016/10/29 15:26:43编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 10:49:00 [显示全部帖子]

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


这个是CurrentChanged代码,跟这个有关么?



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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 10:51:00 [显示全部帖子]

主表数据是全部加载的,只是做了筛选显示,而且也没有筛选条件变动

之前的情况,他们涉及哪个环节多一点,能再具体一点么?

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 11:00:00 [显示全部帖子]

注释了CurrentChanged代码,好像没有这个问题了,能帮忙看下,哪个代码会引起当前行变动么?

还有一个函数代码:Functions.Execute("SearchEntName",uuid)
Dim uuid As String =args(0)
Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://XXXXXXX/enterpriseId="& uuid, True)   '获得实时信息
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop

'把数据json数据转化成对象
Dim json As String = XMLH.responseText
Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With

If data.total=0 Then
    
    For Each o As object In data.data
        If o.enterpriseName<>"" Then
            Vars("V_entName")=o.enterpriseName
            Vars("V_entpdName")=o.proddistName
        End If
    Next
Else
    Return "未查询到企业!"
End If

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 11:13:00 [显示全部帖子]

我发现,鼠标点击更换当前行,有时会触发两次CurrentChanged,这是怎么回事?

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 11:22:00 [显示全部帖子]

也没几段代码,唯一有疑问的,就是这个函数了

Functions.Execute("SearchEntName",uuid)

调用Dim XMLH As Object

XMLH = CreateObject("Microsoft.XMLHTTP")
好像也不会引起主表数据筛选变动啊?

是不是一个潜在的bug啊?

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 11:23:00 [显示全部帖子]

以下是引用有点蓝在2016/10/29 11:18:00的发言:
代码全部注释,一段段启用,看是那一段代码问题。

表格失去焦点,然后又获取焦点,就算行不变也会触发CurrentChanged的

重新获取焦点时,偶尔也会触发两次


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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 13:47:00 [显示全部帖子]

以下是引用浙江仔在2016/10/29 11:00:00的发言:
注释了CurrentChanged代码,好像没有这个问题了,能帮忙看下,哪个代码会引起当前行变动么?

还有一个函数代码:Functions.Execute("SearchEntName",uuid)
Dim uuid As String =args(0)
Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://XXXXXXX/enterpriseId="& uuid, True)   '获得实时信息
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop

'把数据json数据转化成对象
Dim json As String = XMLH.responseText
Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With

If data.total=0 Then
    
    For Each o As object In data.data
        If o.enterpriseName<>"" Then
            Vars("V_entName")=o.enterpriseName
            Vars("V_entpdName")=o.proddistName
        End If
    Next
Else
    Return "未查询到企业!"
End If

确实跟这个代码有关,注释了就不会跳行


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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 14:29:00 [显示全部帖子]

经测试,鼠标焦点从主表(单元格)离开,如果是直接点窗体关联表,那么跳行的几率大,如果先点窗体,再点窗体关联表,那么不会跳行了。

还有,鼠标焦点从主表单元格离开,如果直接点击窗体关联表的空白处(如图无数据行处),那么窗体焦点获取会失败,需要鼠标再点击一下,才能获取焦点
在这个过程中,窗体没有获取焦点的时候,就会发生跳行现象



图片点击可在新窗口打开查看此主题相关图片如下:qq图片201621029143011.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/10/29 14:32:03编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 14:34:00 [显示全部帖子]

点击关联表无数据行的地方时,窗体没有获取焦点

相当于鼠标点击了窗体关联表下面主表的数据行,主表数据也就跳到鼠标点击的位置下方这行

 

 

测试了空白项目,不存在这个问题,那么就跟代码有关系了

而且点窗体空白处都这样的情况,不光是关联表的无数据行地方

 

能指点迷津么?

 

跟这个代码肯定是有关系的了,导致了窗体焦点获取失败

Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://XXXXXXX/enterpriseId="& uuid, True)   '获得实时信息
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop
 
或者跟这个关系很大了,CurrentChanged触发两次
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=92232
[此贴子已经被作者于2016/10/29 14:43:01编辑过]

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