以文本方式查看主题

-  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、在子表中选择部分员工,右键删除,这些员工同步显示到了窗口表中。

问题是:
此时,如果再全选窗口表中的员工,想加入到这个部门时,有些员工勾不上。

如果一次操作没有问题,多操作几次就会出现这个问题。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目77.zip


问题出在哪里呢?


--  作者: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
    t.Position = i
Next


--  作者:chnfo
--  发布时间:2017/11/28 16:57:00
--  
Good,完美解决之………………
加入这一段之后,就可以每一行都选中了哟