以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 在窗口的timeticker事件加入追载事件,此时双击窗口表的行,跳转的窗口显示的行信息怎么不是已选中的行信息?(目的为了实现实时刷新窗口中符合条件的数据) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114238) |
||||
-- 作者:guosheng -- 发布时间:2018/2/1 12:54:00 -- 在窗口的timeticker事件加入追载事件,此时双击窗口表的行,跳转的窗口显示的行信息怎么不是已选中的行信息?(目的为了实现实时刷新窗口中符合条件的数据) 窗口表的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 |
||||
-- 作者:有点甜 -- 发布时间:2018/2/1 14:34:00 -- 要记录位置,刷新好重新定位,如
Dim id = Tables("合同基本信息表").current("_Identify") |
||||
-- 作者:guosheng -- 发布时间: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编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/2/6 14:22:00 -- 回复楼上,代码不应该报错的。做一个出错的例子发上来测试。 |
||||
-- 作者:guosheng -- 发布时间:2018/2/7 14:28:00 -- 用一个外部表,两个窗口进行数据追载测试,依然报类似的错误。 1)通过sqlserver数据源建立的外部表,表名字:表12)窗口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”被约束为是唯一的。 请老师帮忙看看,怎么回事啊! |
||||
-- 作者:有点甜 -- 发布时间:2018/2/7 14:47:00 -- 我测试,没问题,请把你做的实例发上来。 |
||||
-- 作者:guosheng -- 发布时间:2018/2/7 15:42:00 -- 刚测试了一下又没出现错误了,我再研究一下吧。 |
||||
-- 作者:guosheng -- 发布时间:2018/2/7 16:15:00 -- 老师测试依然有问题。 任务栏的 查询报表页面的任务1链接窗口1,任务2链接窗口2。 项目发布后: A用户登录,点击任务1,打开窗口1 B用户登录,点击任务2,打开窗口2,并删除第二列的8,点击左上角保存;删除第二列的7,点击左上角保存。系统提醒错误了。 请老师帮忙看看吧
|
||||
-- 作者:有点甜 -- 发布时间:2018/2/7 16:42:00 -- 改成
DataTables("表2").load |
||||
-- 作者:guosheng -- 发布时间: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
|