以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 显示执行的行号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102049) |
||||
-- 作者:2900819580 -- 发布时间:2017/6/12 14:59:00 -- [求助] 显示执行的行号 Dim tb As Table = Tables(e.Form.Name & "_Table1") For i As Integer = 0 To tb.Rows.Count - 1 Dim r As Row = tb.Rows(i) Dim dr As DataRow = DataTables("物料表").SQLFind("代码 = \'" & R("物料代码") & "\'") If dr IsNot Nothing Then dr("采购负责人") = R("制单") Next MessageBox.Show("负责人更新完成") 如上面的代码,如果行号比较多,会给人家感觉程序死机一样。如何可以实现 执行开始时会出现一个对话框,显示执行的行号,和进度条。 [此贴子已经被作者于2017/6/12 15:16:14编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/6/12 15:15:00 -- 具体你的问题。 |
||||
-- 作者:2900819580 -- 发布时间:2017/6/12 15:17:00 -- 以下是引用有点色在2017/6/12 15:15:00的发言: 具体你的问题。 Dim tb As Table = Tables(e.Form.Name & "_Table1") For i As Integer = 0 To tb.Rows.Count - 1 Dim r As Row = tb.Rows(i) Dim dr As DataRow = DataTables("物料表").SQLFind("代码 = \'" & R("物料代码") & "\'") If dr IsNot Nothing Then dr("采购负责人") = R("制单") Next MessageBox.Show("负责人更新完成") 如上面的代码,如果行号比较多,会给人家感觉程序死机一样。如何可以实现 执行开始时会出现一个对话框,显示执行的行号,和进度条。 |
||||
-- 作者:有点色 -- 发布时间:2017/6/12 15:23:00 -- 试试这样
Dim tb As Table = Tables(e.Form.Name & "_Table1") MessageBox.Show("负责人更新完成") |
||||
-- 作者:有点色 -- 发布时间:2017/6/12 15:24:00 -- 如果还需要进度条,参考
http://www.foxtable.com/webhelp/scr/0793.htm
|
||||
-- 作者:2900819580 -- 发布时间:2017/6/12 15:43:00 -- 老师,这样子,为什么Label的内容一直不变的呢? Forms("窗口4").open Dim p As WinForm.ProgressBar = Forms("窗口4").Controls("ProgressBar1") Dim la As WinForm.Label = Forms("窗口4").Controls("Label1") p.Maximum = MainTable.Rows.Count \'设置最大值 p.Minimum = 0 \'设置最小值 p.Value = 0 \'设置当前值 For i As Integer = 0 To MainTable.Rows.Count - 1 \'MainTable.Rows(i)("第一列") = i If i Mod 20 = 0 Then la.text = i & "/" & MainTable.Rows.Count p.Value = i \'当前值为已经完成的行数 End If Next |
||||
-- 作者:有点色 -- 发布时间:2017/6/12 15:43:00 -- 看看
http://www.foxtable.com/webhelp/scr/1476.htm
|
||||
-- 作者:2900819580 -- 发布时间:2017/6/12 16:00:00 -- 老师增加上去了,但跟进度进度条不同步,数字早就跑完了,进度条还在跑 Forms("窗口4").open Dim p As WinForm.ProgressBar = Forms("窗口4").Controls("ProgressBar1") Dim la As WinForm.Label = Forms("窗口4").Controls("Label1") p.Maximum = MainTable.Rows.Count \'设置最大值 p.Minimum = 0 \'设置最小值 p.Value = 0 \'设置当前值 For i As Integer = 0 To MainTable.Rows.Count - 1 Application.DoEvents() la.text = i & "/" & MainTable.Rows.Count p.Value = i \'当前值为已经完成的行数 Next
[此贴子已经被作者于2017/6/12 16:00:40编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/6/12 16:03:00 -- 代码没问题,请把进度条设置成【标准样式】 |
||||
-- 作者:2900819580 -- 发布时间:2017/6/12 19:26:00 --
老师,三种模式都试过了。还是不行 ,数字完成了,进度条还没走完。 [此贴子已经被作者于2017/6/12 19:26:46编辑过]
|