Foxtable(狐表)用户栏目专家坐堂 → 在窗口的timeticker事件加入追载事件,此时双击窗口表的行,跳转的窗口显示的行信息怎么不是已选中的行信息?(目的为了实现实时刷新窗口中符合条件的数据)


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

主题:在窗口的timeticker事件加入追载事件,此时双击窗口表的行,跳转的窗口显示的行信息怎么不是已选中的行信息?(目的为了实现实时刷新窗口中符合条件的数据)

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
在窗口的timeticker事件加入追载事件,此时双击窗口表的行,跳转的窗口显示的行信息怎么不是已选中的行信息?(目的为了实现实时刷新窗口中符合条件的数据)  发帖心情 Post By:2018/2/1 12:54:00 [显示全部帖子]

窗口表的doubleclick事件:
Dim tbl As Table = Tables("完善签约审批窗口_Table1")
If tbl.Current IsNot Nothing Then
If user.group=tbl.current("承办部门")
    Dim wz As Integer = Tables("合同基本信息表").FindRow(tbl.current.DataRow)
    If wz >=0 Then
        Tables("合同基本信息表").position= wz
        MainTable=Tables("合同基本信息表")
        forms("完善一条签约审批窗口").open()
    End If
Else
e.cancel=True
End If
End If

窗口的timeticker事件:
If user.group="服务管理中心"  Or  user.group="公司领导"   Or  user.group="企管部"
    Forms("完善签约审批窗口").StopRedraw()
    LockBaseMainForm()
    DataTables("合同基本信息表").StopRedraw()
    DataTables("合同基本信息表").RemoveFor("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").AppendLoad("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").ResumeRedraw()
    UnLockBaseMainForm()
    Forms("完善签约审批窗口").ResumeRedraw()
    Tables("完善签约审批窗口_Table1").filter="承办部门 is not null And 承办人 Is null"
Else
    Forms("完善签约审批窗口").StopRedraw()
    LockBaseMainForm()
    DataTables("合同基本信息表").StopRedraw()
    DataTables("合同基本信息表").RemoveFor("承办部门='"& user.group &"' and 承办人 is null")
    DataTables("合同基本信息表").AppendLoad("承办部门='"& user.group &"' and 承办人 is null")
    DataTables("合同基本信息表").ResumeRedraw()
    UnLockBaseMainForm()
    Forms("完善签约审批窗口").ResumeRedraw()   
    Tables("完善签约审批窗口_Table1").filter="承办部门='"& user.group &"' and 承办人 is null"
End If

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/6 12:57:00 [显示全部帖子]

系统提示错误:列“_Identify”被约束为是唯一的。值“24”已存在。该如何解决啊?
即使不加入追载确定当前位置的代码,也会出现以上错误。测试结果,问题出在红色阴影的两行代码上。如果单用户登录不会提示错误,但是如果多用户同时登录会提示以上错误。
窗口的timeticker事件:
If user.group="服务管理中心"  Or  user.group="公司领导"   Or  user.group="企管部"
    Dim id=Tables("完善签约审批窗口_Table1").current("_identify")
    Forms("完善签约审批窗口").StopRedraw()
    LockBaseMainForm()
    DataTables("合同基本信息表").StopRedraw()
    DataTables("合同基本信息表").RemoveFor("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").AppendLoad("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").ResumeRedraw()
    UnLockBaseMainForm()
    Forms("完善签约审批窗口").ResumeRedraw()
    Tables("完善签约审批窗口_Table1").filter="承办部门 is not null And 承办人 Is null"
    Dim i=Tables("完善签约审批窗口_Table1").findrow("_identify="& id)
    If i>0
        Tables("完善签约审批窗口_Table1").position=i
    End If
Else
    Dim id=Tables("完善签约审批窗口_Table1").current("_identify")
    Forms("完善签约审批窗口").StopRedraw()
    LockBaseMainForm()
    DataTables("合同基本信息表").StopRedraw()
    DataTables("合同基本信息表").RemoveFor("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").AppendLoad("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").ResumeRedraw()
    UnLockBaseMainForm()
    Forms("完善签约审批窗口").ResumeRedraw()
    Tables("完善签约审批窗口_Table1").filter="承办部门='"& user.group &"' and 承办人 is null"
    Dim i=Tables("完善签约审批窗口_Table1").findrow("_identify="& id)
    If i>0
        Tables("完善签约审批窗口_Table1").position=i
    End If 
End If
[此贴子已经被作者于2018/2/6 13:13:19编辑过]

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/7 14:28:00 [显示全部帖子]

用一个外部表,两个窗口进行数据追载测试,依然报类似的错误。
1)通过sqlserver数据源建立的外部表,表名字:表1
2)窗口1:主窗口,所有者表为表1,表控件table1 绑定表1,副本,只读。
窗口的timeticker事件:
DataTables("表1").RemoveFor("第一列 is not null and 第二列 is null")
DataTables("表1").AppendLoad("第一列 is not null and 第二列 is null")
Tables("窗口1_Table1").filter="第一列 is not null and 第二列 is null"

3)窗口2,主窗口,所有者表为表1,表控件table1 绑定表1,副本,并可编辑。

4)A用户登录并打开窗口1

5)B用户登录并打开窗口2,将某行第二列的内容删除,点击系统左上角 保存按钮,提示错误:列“_Identify”被约束为是唯一的。
请老师帮忙看看,怎么回事啊!

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/7 15:42:00 [显示全部帖子]

刚测试了一下又没出现错误了,我再研究一下吧。

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/7 16:15:00 [显示全部帖子]

老师测试依然有问题。
任务栏的 查询报表页面的任务1链接窗口1,任务2链接窗口2。
项目发布后:
A用户登录,点击任务1,打开窗口1
B用户登录,点击任务2,打开窗口2,并删除第二列的8,点击左上角保存;删除第二列的7,点击左上角保存。系统提醒错误了。
请老师帮忙看看吧
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.foxdb


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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/8 10:57:00 [显示全部帖子]

还的麻烦老师看看。
在原来的追载中加入DataTables("合同基本信息表").load(),解决了系统提示列唯一的错误。但是出现了新的问题:
1、窗口一直在闪烁。
2、刷新后重新定位的红色底纹代码失效。

如果将DataTables("合同基本信息表").load()代码去掉,不会出现1和2的问题。

If user.group="服务管理中心"  

 Dim id=Tables("合同基本信息表").current("_identify")
    Forms("完善签约审批窗口").StopRedraw()
    DataTables("合同基本信息表").StopRedraw()
    DataTables("合同基本信息表").load()
    DataTables("合同基本信息表").RemoveFor("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").AppendLoad("承办部门 is not null and 承办人 is null")
    DataTables("合同基本信息表").ResumeRedraw()
   Forms("完善签约审批窗口").ResumeRedraw()
    Tables("完善签约审批窗口_Table1").filter="承办部门 is not null And 承办人 Is null"
    
    Dim i=Tables("合同基本信息表").findrow("_identify="& id)
    If i>0
        Tables("合同基本信息表").position=i
         Tables("合同基本信息表").position=i
    end if
end if

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/8 13:16:00 [显示全部帖子]

多谢老师,修改后以上问题都基本解决了。但是还需请教老师:如何实现在“窗口1”中鼠标点击表控件的某单元格,光标也跟着移动到该行。
按照老师意见修改代码后,目前的小问题是:在“窗口1”的表控件中,单击某单元格后,光标会移动到“固定的某一行”,是怎么回事啊?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/2/8 14:55:00 [显示全部帖子]

经过测试,老师提供的解决方案是完美的。多谢老师。

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/14 18:22:00 [显示全部帖子]

为何要在removefor前加一句load代码,load代码不要是否可以?

 回到顶部