以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 无法创建新的堆栈防护页面 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177491) |
-- 作者:edisontsui -- 发布时间:2022/5/24 17:20:00 -- 无法创建新的堆栈防护页面 If e.DataCol.Name = "开料完成人" Then If e.newvalue = "" Then If e.DataRow("特殊产品").contains("锯切") OrElse e.DataRow("特殊生产").contains("锯切") Then e.DataRow("开料") = "未锯切" e.DataRow("开料日期") = Nothing Else e.DataRow("开料") = "未开料" e.DataRow("开料日期") = Nothing End If Else If e.DataRow("特殊产品").contains("锯切") OrElse e.DataRow("特殊生产").contains("锯切") Then e.DataRow("开料") = "已锯切" e.DataRow("开料日期") = Date.now Else e.DataRow("开料") = "已开料" e.DataRow("开料日期") = Date.now End If End If Dim n As Integer = CurrentTable.Rows.Count - 1 For i As Integer = 0 To n Dim r As Row = CurrentTable.Rows(i) r("开料完成人") = e.DataRow("开料完成人") Next end if 上面是 datacolchanged 里面的代码,如果筛选出的数据行数不多时,可以顺利执行;如果筛选出的数据行数比较多时,就会出现“无法创建新的堆栈防护页面”这个提示。估计是 Fox...Next 循环语句那里的问题。请问有什么办法改善一下吗?
|
-- 作者:有点蓝 -- 发布时间:2022/5/24 17:25:00 -- Fox...Next 循环语句干嘛用的? |
-- 作者:edisontsui -- 发布时间:2022/5/24 20:10:00 -- 如果某行的"开料完成人"输入了数据,那么将当前显示出来的所有行之"开料完成人"里面都输入相同的数据。 |
-- 作者:有点蓝 -- 发布时间:2022/5/24 20:20:00 -- End If End If if vars("a") = false vars("a") = true Dim n As Integer = CurrentTable.Rows.Count - 1 For i As Integer = 0 To n Dim r As Row = CurrentTable.Rows(i) r("开料完成人") = e.DataRow("开料完成人") Next vars("a") = false end if end if
|
-- 作者:edisontsui -- 发布时间:2022/5/26 19:53:00 -- 现在运行没问题了。请问三行 vars 语句在这里怎样理解呢? |
-- 作者:有点蓝 -- 发布时间:2022/5/26 21:07:00 -- 控制不重复执行。也就是只有第一次触发的时候执行,循环里给"开料完成人"赋值的时候也会触发这个事件的,但是这时不会重复执行循环 |