以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗口表的数据刷新问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110186) |
||||
-- 作者:chnfo -- 发布时间:2017/11/28 15:02:00 -- [求助]窗口表的数据刷新问题 有三个表,一个是员工Emp、一个是部门Dep,一个是部门员工分配DE,设置了主子表的关联关系。 希望打开窗口表中加载员工表。但要过滤 1、部门切换的时候,已经在本部门的员工,在窗口表中不再显示。 2、可以多选员工,加入当前部门。 3、如果部门中的某几个员工删除时,在窗口表中同步显示这些员工。 功能都做了,基本达到要求。 现在的功能包括: 1、切换到部门1,全选员工,点确定,加入到本部门,这没问题。 2、在子表中选择部分员工,右键删除,这些员工同步显示到了窗口表中。 问题是: 此时,如果再全选窗口表中的员工,想加入到这个部门时,有些员工勾不上。 如果一次操作没有问题,多操作几次就会出现这个问题。
问题出在哪里呢? |
||||
-- 作者:chnfo -- 发布时间:2017/11/28 15:34:00 -- 如图所示 此主题相关图片如下:无标题.png |
||||
-- 作者:chnfo -- 发布时间:2017/11/28 15:35:00 -- button1的事件调了一下: Dim r As Row = Tables("Dep").Current Dim t As Table = e.Form.Controls("Table1").Table If r IsNot Nothing Then Dim k As String = DataTables("DE").GetComboListString("EmpCode","DepCode = \'" & r("Code") & "\'") If k = "" Then t.Filter = "true" Else Dim a As String = "\'" & k.Replace("|","\',\'") & "\'" t.Filter = "Code not in (" & a & ")" End If End If |
||||
-- 作者:有点甜 -- 发布时间:2017/11/28 15:54:00 -- 测试了一下,这个是bug,没办法处理。
建议你隐藏复选框,单独用一列作为复选框吧,如 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=87896&skin=0
|
||||
-- 作者:chnfo -- 发布时间:2017/11/28 16:09:00 -- ,彻底晕菜…………………… 一行行选或全选,这个当然没有问题,但是如果要多选其中的十行八行的,就极其痛苦了。
[此贴子已经被作者于2017/11/28 16:11:56编辑过]
|
||||
-- 作者:chnfo -- 发布时间:2017/11/28 16:44:00 -- 这个BUG能修复不,要不然有些功能用起来挺惨的。 注意到一个动作可以解决这个问题。 就是把窗口中的每一行都点一遍,就可以选中了。 能不能在button1的事件中增加一些代码,模拟把所有的行都点一遍?
[此贴子已经被作者于2017/11/28 16:45:31编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/28 16:52:00 -- 以下是引用chnfo在2017/11/28 16:44:00的发言:
能不能在button1的事件中增加一些代码,模拟把所有的行都点一遍?
[此贴子已经被作者于2017/11/28 16:45:31编辑过]
加上代码
For i As Integer = 0 To t.Rows.count-1 |
||||
-- 作者:chnfo -- 发布时间:2017/11/28 16:57:00 -- Good,完美解决之……………… 加入这一段之后,就可以每一行都选中了哟
|