以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口中的用户选择  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=53279)

--  作者:蝙蝠侠K02
--  发布时间:2014/7/4 9:21:00
--  [求助]窗口中的用户选择
     1. 打开人员添加窗口添加用户,一条一条添加没有问题。但全部增加时,若’人员添加窗口_Table1”中已有一行的复选框被选上,其他的复选框未选上,此时点击“全部增加”按钮就会出错,会出现重复用户。

      2. 当点击“全部删除”按钮时,只能个别删除。

      3. 当窗口关闭后再打开,已选用户仍在窗口表Table2中,怎样清除而不显示?

      请老师指教!我想问题1和2可能是单个增加(或删除)和全部增加(或删除)之间的冲突造成的,如何解决?


      
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:有点甜
--  发布时间:2014/7/4 9:38:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:Bin
--  发布时间:2014/7/4 9:40:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:蝙蝠侠K02
--  发布时间:2014/7/4 10:45:00
--  

      我测试两个老师的方案,均有问题。我想实现的结果:

          1. 当将table1的某行的复选框置为true时,可以在able2中增加相应行;

   当在table1的某行的复选框是true的情况下,将复选框由true变为false,删除table2中的相应行;

          2. 当逐一点击table2的某行的“×”时,可以逐行删除在table2的行,同时将table1中的相应

行的复选框置为false;

          3. 当点击“全部增加”按钮,增加全部用户(也要考虑特殊情况,当单选增加一行后,在点击“全部增加”按钮,增加所有;或切换部门,增加别的部门的用户)。

          4. 当点击“全部删除”按钮,删除全部用户(也要考虑特殊情况,当单选删除一行后,在点击“全部删除”按钮,删除所有)。

         

       BIN老师的代码运行提示错误:1. 单个删除有时需要点击两次,或反复测试无法删除。2. 在反复执行过程中有时发现强制关闭窗口,出现错误。

      我的测试动作:增加全部用户、删除个别用户、切换部门再增加新的用户、切换部门再删除的用户、增加1个再全部增加、删除全部用户、删除个别用户后新增用户并删除全部用户(上述动作可以打乱顺序,反复操作,以进行测试)。

 

      

     


--  作者:Bin
--  发布时间:2014/7/4 11:04:00
--  
如何单个删除要点击两次? 反复测试无法删除?  我反复测试都没问题啊?




--  作者:有点甜
--  发布时间:2014/7/4 11:15:00
--  

看不懂你的意思。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:蝙蝠侠K02
--  发布时间:2014/7/7 9:54:00
--  
    我测试一下甜老师最后的代码,增加全部用户时,出现重复值。请甜老师再看一下。
[此贴子已经被作者于2014-7-7 9:54:51编辑过]

--  作者:有点甜
--  发布时间:2014/7/7 10:01:00
--  

按钮代码

 

With  Tables("人员添加窗口_Table1")
    For Each r As Row In .Rows
        Dim idx As Integer = Tables("任务表.用户选择表").FindRow("用户账号 = \'" & r("用户账号") & "\'")
        Dim s As Row
        If idx = -1 Then
            s = Tables("任务表.用户选择表").AddNew()
        Else
            s = Tables("任务表.用户选择表").Rows(idx)
        End If
        s("用户账号") = r("用户账号")
        s("用户姓名") = r("用户姓名")
        s("部门名称") = r("部门名称")
        s("职位") = r("职位")
    Next
End With


--  作者:蝙蝠侠K02
--  发布时间:2014/7/7 10:14:00
--  
     我试了试,可以了。谢谢!
--  作者:蝙蝠侠K02
--  发布时间:2014/7/9 12:07:00
--  
      甜老师,你发的代码基本上解决了我的问题。但还有如下问题:
      1.全部删除时,table1中的有些行的复选框(删除前为TRUE)仍为TRUE,删除时应将已有的复选框去掉,即置为false。
      2.同样全部增加时,table1中的有些行的复选框(增加前为false)仍为false,增加时应将所有行的复选框置为true。
      
     上述的目的是与一行一行增加用户或删除用户的状态定义一致,即:table1的复选框为TRUE时,相应在table2增加行;
反过来,table1的复选框为 false 时,相应在table2没有相应行。

请甜老师再看一下!