Foxtable(狐表)用户栏目专家坐堂 → [求助]进度条代码


  共有2962人关注过本帖树形打印复制链接

主题:[求助]进度条代码

帅哥哟,离线,有人找我吗?
hanzhang98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]进度条代码  发帖心情 Post By:2019/4/26 15:53:00 [只看该作者]

老师好。想在“代码一”中加入“代码二”的进度条代码,但不知如何加入、加在那里。请老师帮助指导。谢谢。

代码一:
Dim f As New Filler    
f.SourceTable = DataTables("员工信息")  
f.SourceCols = "姓名,性别,民族,政治面貌"    
f.Fill() '填充数据

代码二:
Dim p As WinForm.ProgressBar = Forms("进度条").Controls("ProgressBar1")
p.Maximum = MainTable.Rows.Count '设置最大值
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值
For i As Integer = 0 To MainTable.Rows.Count - 1
    代码一.......
    p.Value = p.Value + 1           '当前值为已经完成的行数(进度条显示的进度)
Next


[此贴子已经被作者于2019/5/5 7:44:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 16:09:00 [只看该作者]

加不了,Filler是一次性处理的,获取不到进度的

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/26 16:31:00 [只看该作者]

老师好。那有什么方法可以进行一下提示吗,比如在开始时提示“正在复制......”  , 完成后提示 “复制完成。” 。请老师指导。谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 16:55:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/26 18:09:00 [只看该作者]

老师好。下面代码已在删除“表1”的行的代码中加入了显示进度条的代码。但只能在当前表是“表1”时才执行删除并显示进度条,否则当前表不是“表1”就不执行并提示出错“未将对象引用设置到对象的实例。”。

    请教老师,如何修改代码,才能实现在当前表不是“表1”时,也能执行删除“表1”行并显示进度条

Forms("窗口2").Open() 
Dim p As WinForm.ProgressBar = Forms("窗口2").Controls("ProgressBar1")    
p.Maximum = MainTable.Rows.Count      '设置最大值
p.Minimum = 0      '设置最小值
p.Value = 0     '设置当前值
For i As Integer = 0 To MainTable.Rows.Count - 1
    Tables("表A").current.delete    '删除行
    p.Value = p.Value + 1           '当前值为已经完成的行数(进度条显示的进度)
    Application.Doevents
Next
Forms("窗口2").Close()

如果不加入显示进度条的代码,就能在当前表不是“表1”时,也能删除“表1”的行。

[此贴子已经被作者于2019/4/26 18:11:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 20:49:00 [只看该作者]

Forms("窗口2").Open() 
Dim p As WinForm.ProgressBar = Forms("窗口2").Controls("ProgressBar1")    
p.Maximum = CurrentTable.Rows.Count      '设置最大值
p.Minimum = 0      '设置最小值
p.Value = 0     '设置当前值
For i As Integer = CurrentTable.Rows.Count - 1 To 0 step -1
    CurrentTable.Rows(i).delete    '删除行
    p.Value = p.Value + 1           '当前值为已经完成的行数(进度条显示的进度)
    Application.Doevents
Next
Forms("窗口2").Close()

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/27 11:03:00 [只看该作者]

老师好。请教老师,在“窗口1” 的按钮事件中,能不能给“窗口2”中的标签动态赋值。谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/27 11:07:00 [只看该作者]

Forms("窗口2").Controls("标签") .text = "某某某"  

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/5/5 8:05:00 [只看该作者]

老师好。以下进度条的代码已能初步运行。但是实际运行时,进度条不到满格就完成退出了,请老师帮助优化下面的代码,特别是黄色部分。谢谢。

Forms("进度条").Open() 
Dim p As WinForm.ProgressBar = Forms("进度条").Controls("ProgressBar1")  
p.Maximum = 100    '设置最大值
p.Minimum = 0      '设置最小值
p.Value = 5        '设置当前值
    代码一
p.Value = 10       '设置当前值
    代码二
p.Value = 20       '设置当前值

p.Maximum = 20 + DataTables("工资表").DataRows.Count - 1    '重新设置进度条的最大值(请老师帮助优化或修正代码)
For Each dr As DataRow In DataTables("工资表").DataRows
    Dim drs As List(of DataRow) = DataTables("工资累计").Select(filter)
    ......(中间代码略)
    p.Value = p.Value + 1           '进度条当前值为已经完成的进度(显示的进度)(请老师帮助优化或修正代码)
Next
Forms("进度条").Close()  
[此贴子已经被作者于2019/5/5 8:06:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/5 9:29:00 [只看该作者]

Forms("进度条").Open()
Dim p As WinForm.ProgressBar = Forms("进度条").Controls("ProgressBar1")
p.Minimum = 0      '设置最小值
p.Value = 1        '设置当前值
p.Maximum = DataTables("工资表").DataRows.Count    '重新设置进度条的最大值(请老师帮助优化或修正代码)
For Each dr As DataRow In DataTables("工资表").DataRows
    Dim drs As List(of DataRow) = DataTables("工资累计").Select(filter)
   
    p.Value = p.Value + 1           '进度条当前值为已经完成的进度(显示的进度)(请老师帮助优化或修正代码)
    application.Doevents
Next
Forms("进度条").Close()

[此贴子已经被作者于2019/5/5 9:29:09编辑过]

 回到顶部