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


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

主题:[求助]进度条问题

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]进度条问题  发帖心情 Post By:2014/10/6 15:04:00 [只看该作者]

下面这段代码中,进度条不能正常显示,麻烦老师们审查一下,是什么地方出错了,谢谢

 

 

With Tables("信访办理_附件表")
    If .ShowCheckBox = False Then  '单个下载
        If  .Current IsNot Nothing Then
            Dim wj As String = .Current("路径及文件名")
            Dim Ifo As new FileInfo(wj)
            If FileSys.FileExists(wj) = True    '检查文件是否存在
                Dim dlg As New SaveFileDialog   '定义一个新的SaveFileDialog
                dlg.FileName = Ifo.Name
                dlg.Title = "文件下载..."
                dlg.OverwritePrompt =True
                'dlg.InitialDirectory = SpecialFolder.MyDocuments
                If dlg.FileName = wj Then
                    dlg.InitialDirectory = SpecialFolder.MyDocuments       '最初显示的目录为我的文档
                End If
                If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
                    If dlg.FileName <> wj Then   '不能保存于当前目录
                        FileSys.CopyFile(wj,dlg.FileName,True)
                        .Current("下载次数") = .Current("下载次数") + 1
                        .Current("最近下载人") = _UserName
                        .Current("最近下载时间") = Date.Now
                        Dim lst As new List(of String)
                        lst =  .Current.DataRow.Lines("下载情况")
                        If .Current("下载情况") = Nothing Then
                            lst.Add("序号    下载时间        下载人   计算机名")
                            lst.Add(.Current("下载次数")  & "   " & Date.Now & "   " & _UserName & "   " & SysInfo.ComputerName)
                        Else
                            lst.Add(.Current("下载次数")  & "   " & Date.Now & "   " & _UserName & "   " & SysInfo.ComputerName)
                        End If
                        .Current.DataRow.Lines("下载情况") = lst
                        .save()
                        If MessageBox.Show("文件下载成功,是否打开?","温馨提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)=DialogResult.Yes Then
                            Dim Proc As New Process   '打开文件
                            Proc.File = dlg.FileName
                            Proc.Start()
                        End If
                    End If
                End If
            Else
                MessageBox.Show("下载失败!该文件已不存在,可能已被删除!","温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
            End If
        End If
    Else     '批量下载
        If .GetCheckedRows.count = 0 Then
            MessageBox.Show("错误!未选择要下载的附件,请勾选!.","温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            Return
        Else
            Dim dlg As New FolderBrowserDialog   '定义一个新选择目录对话框
            dlg.Description = "请选择批量下载文件的路径..."  '对话框说明信息
            dlg.ShowNewFolderButton = True   '显示新建文件夹按钮
            If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
                Dim s As Integer = 0  '记录成功下载文件的个数
                '显示进度条
                Forms("进度").Show  '打开进度窗口
                Dim pb As WinForm.ProgressBar = Forms("进度").Controls("进度条")
                Dim xx As WinForm.Label = Forms("进度").Controls("信息")
                Dim xx1 As WinForm.Label = Forms("进度").Controls("信息1")
                Dim jd As WinForm.Label = Forms("进度").Controls("进度")
                xx1.Text = "下载附件,请稍等..."
                xx.text = "正在下载:"
                pb.Minimum = 0
                pb.Maximum = .GetCheckedRows.count
                pb.Value = 0
                jd.text = "0%"
               
                '======================
                For I As Integer = 1 To .GetCheckedRows.count
                    Dim r As Row = .GetCheckedRows(i-1)
                    Dim wj As String = r("路径及文件名")
                    Dim Ifo As new FileInfo(wj)   '文件信息
                    xx.text = "正在下载: " & Ifo.Name
                    If FileSys.FileExists(wj) = True    '检查文件是否存在,只有该文件存在才下载复制
                        FileSys.CopyFile(wj,dlg.SelectedPath & "\" & Ifo.Name ,True)  '复制文件
                        s = s + 1
                        '更新下载信息
                        r("下载次数") = r("下载次数") + 1
                        r("最近下载人") = _UserName
                        r("最近下载时间") = Date.Now
                        Dim lst As new List(of String)
                        lst =  r.DataRow.Lines("下载情况")
                        If r("下载情况") = Nothing Then
                            lst.Add("序号    下载时间        下载人   计算机名")
                            lst.Add( r("下载次数")  & "   " & Date.Now & "   " & _UserName & "   " & SysInfo.ComputerName)
                        Else
                            lst.Add( r("下载次数")  & "   " & Date.Now & "   " & _UserName & "   " & SysInfo.ComputerName)
                        End If
                        r.DataRow.Lines("下载情况") = lst
                    End If
                    pb.Value = i
                    jd.text = Round2(pb.Value/pb.Maximum*100,1) & "%"
                   
                Next
                .save()
                Forms("进度").Close  '关闭进度窗口
                If MessageBox.Show("成功下载 " & s & " 个文件.现在是否打开目录,请确认?","温馨提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes  Then
                    Dim Proc As New Process   '打开目录
                    Proc.File = dlg.SelectedPath
                    Proc.Start()
                End If
            End If
        End If
       
    End If
End With


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


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

 怎样不正常?报什么错

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2014/10/6 15:12:00 [只看该作者]

能显示进度窗口,但不实时显示提示信息(百分比、当前复制文件名),全部复制结束了才显示这些信息。

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


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

 这个原因,参考 http://www.foxtable.com/help/topics/1476.htm

 

 


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2014/10/6 15:14:00 [只看该作者]

老师,我加过个暂停语句,但还是未达到预期效果,是不是位置错了?

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


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

 回复5楼,加在最里面的那个循环。

 

 你多加在几个地方试试就清楚了


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2014/10/6 15:19:00 [只看该作者]

老师,测试通过,加了三处暂停语句。谢谢

 


 回到顶部