以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]按单号一次性勾选上千条数据,程序假死退出  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185610)

--  作者:vvfree
--  发布时间:2023/3/5 20:54:00
--  [求助]按单号一次性勾选上千条数据,程序假死退出
[求助]按单号一次性勾选上千条数据,程序假死退出?请问有什么方式解决?
复选代码如下


For Each r As Row In e.Table.Rows
    If r("单号") = e.Row("单号") Then
        r.Checked = e.Row.Checked
        
    End If
Next

e.Form.Controls("TextBox1").Value = Tables("查询打印_Table1").GetCheckedRows().Count

--  作者:有点蓝
--  发布时间:2023/3/5 21:01:00
--  
下面事件有没有代码?

BeforeCheckRow

修改行复选框状态前执行。

AfterCheckRow修改行复选框状态后执行。

--  作者:vvfree
--  发布时间:2023/3/5 21:47:00
--  回复:(有点蓝)下面事件有没有代码?BeforeCheckRow...
以上都是在AfterCheckRow的事件代码,勾选太多就挂了,4-500行的时候没有问题
--  作者:有点蓝
--  发布时间:2023/3/5 22:14:00
--  
1楼代码都放在AfterCheckRow的事件?表事件一般不应该使用循环,想想:循环里每勾选一行,就会触发这个事件,1000行就触发1000次,事件里又循环,然后又触发,就是1000*1000次,第二次循环里还会继续触发.......

具体要做什么功能?

--  作者:vvfree
--  发布时间:2023/3/5 22:22:00
--  回复:(有点蓝)1楼代码都放在AfterCheckRow的事件?...
就是要实现同单号一次性勾选,
比如1000行或更多行都是同一单号,那我勾选一行就需要帮我勾选全部同单号的1000行,就是要实现这个功能。

--  作者:有点蓝
--  发布时间:2023/3/5 22:46:00
--  
SystemReady = False
For Each r As Row In e.Table.Rows
    If r("单号") = e.Row("单号") Then
        r.Checked = e.Row.Checked
        
    End If
Next
SystemReady = True
--  作者:vvfree
--  发布时间:2023/3/5 23:01:00
--  
谢谢!已经可以了,非常感谢!