Foxtable(狐表)用户栏目专家坐堂 → FTP自动下载报错


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

主题:FTP自动下载报错

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
FTP自动下载报错  发帖心情 Post By:2022/3/1 9:27:00 [只看该作者]

老师,我表中有三列是图片列,属性是自动下载,当快速切换不同行时,FTP的图片附件没下载完成就会报错,之前提了类似问题没解决好。

原贴地址:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=162824

[此贴子已经被作者于2022/3/1 9:27:27编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/1 9:53:00 [只看该作者]

我使用阿里云的ftp测试,同样添加了3个图片列,在列窗口,和添加了一个窗口绑定3个图片浏览器控件,测试快速点击切换不同的行,测试没有问题。我把\RemoteFiles里的图片都删除掉,再测试也没有问题。

您的项目应该还有其它什么代码影响了,做个例子发上来测试

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/3/1 10:18:00 [只看该作者]

我查看了所有代码,有可能出现问题的地方有3个:

1、全局表事件:CurrentChanged

Select Case e.Table.Name
    Case  "主窗口_Table1","主窗口_Table2"
        Tables("主窗口_Table1").Grid.ScrollBars = 0 '0 无 1 横向 2 纵向 3 横向纵向
        Tables("主窗口_Table2").Grid.ScrollBars = 0 '0 无 1 横向 2 纵向 3 横向纵向
    Case Else '其他所有表显示纵横向滚动条
        For Each t As Table In Tables
            t.Grid.ScrollBars = 3 '0 无 1 横向 2 纵向 3 横向纵向
            t.Grid.ScrollOptions = 1
            't.Grid.Styles.EmptyArea.Border.Style = 0        '去表格边框
            't.Grid.Styles.EmptyArea.backcolor = color.white '空白区白色背景
        Next
End Select

2、项目事件:ystemIdle

Dim str2 As String = "                                                                                                                          屏幕最佳显示分辨率:1920*1080"
StatusBar.Message2 = str2
'自动计算
Dim str1 As String = ""
Dim t As Table = CurrentTable
If t.Name <> "主窗口_Table1" AndAlso t.Name <> "主窗口_Table2" Then
    Str1 = Str1 & "计数:" & t.Aggregate(AggregateEnum.Count, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & ""
    Str1 = Str1 & "  累计:" & t.Aggregate(AggregateEnum.Sum, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & ""
    Str1 = Str1 & "  平均:" & t.Aggregate(AggregateEnum.Average, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & ""
    'Str1 = Str1 & "  最大:" & t.Aggregate(AggregateEnum.Max, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    'Str1 = Str1 & "  最小:" & t.Aggregate(AggregateEnum.Min, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    'Str1 = Str1 & "标准差:" & t.Aggregate(AggregateEnum.Std, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    'Str1 = Str1 & "总体标准差:" & t.Aggregate(AggregateEnum.StdPop, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    'Str1 = Str1 & "方差:" & t.Aggregate(AggregateEnum.Var, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
    'Str1 = Str1 & "总体方差:" & t.Aggregate(AggregateEnum.VarPop, t.TopRow, t.LeftCol, t.BottomRow, t.RightCol) & " "
End If
StatusBar.Message3 = Str1

3、当前表的CellButtonClick事件

e.cancel = True
Select  Case e.Col.Name
    Case  "中标通知书"
        Dim dlg As New openFileDialog '定义一个新的SaveFileDialog
        dlg.MultiSelect = True
        If dlg.showDialog = DialogResult.Ok Then '如果用户单击了确定按钮
            Dim ftp1 As new  ftpclient
            ftp1.host="*********"
            ftp1.Account = "*******1"
            ftp1.password = "1*****19"
            Dim r As Row = Tables("业绩管理").Current
            Dim ls = r.DataRow.Lines("中标通知书")
            For Each f As String In dlg.FileNames
                Dim file = "/公司业绩/" & r("项目名称") & "/" & filesys.GetName(f)
                If ftp1.DirExists("/公司业绩/" & r("项目名称")) = False Then
                    ftp1.MakeDir("/公司业绩/" & r("项目名称"))
                End If
                Dim Result As DialogResult
                If ftp1.FileExists(file) Then
                    Result = MessageBox.Show("文件已经存在,是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                End If
                If result = Nothing OrElse result = DialogResult.Yes Then
                    If  ftp1.Upload(f,file,True) = True Then
                        If ls.contains(file) = False Then
                            ls.add(file)
                        End If
                    Else
                        MessageBox.Show( f & "上传失败" ,"提示" ,MessageBoxButtons.OK,MessageBoxIcon.Question)
                    End If
                End If
            Next
            r.DataRow.lines("中标通知书") = ls
            ftp1.Close
            r.save
        End If
End Select
Select  Case e.Col.Name
    Case  "合同协议书"
        Dim dlg As New openFileDialog '定义一个新的SaveFileDialog
        dlg.MultiSelect = True
        If dlg.showDialog = DialogResult.Ok Then '如果用户单击了确定按钮
            Dim ftp1 As new  ftpclient
            ftp1.host="*****0"
            ftp1.Account = "ft****"
            ftp1.password = "1*******9"
            Dim r As Row = Tables("业绩管理").Current
            Dim ls = r.DataRow.Lines("合同协议书")
            For Each f As String In dlg.FileNames
                Dim file = "/公司业绩/" & r("项目名称") & "/" & filesys.GetName(f)
                If ftp1.DirExists("/公司业绩/" & r("项目名称")) = False Then
                    ftp1.MakeDir("/公司业绩/" & r("项目名称"))
                End If
                Dim Result As DialogResult
                If ftp1.FileExists(file) Then
                    Result = MessageBox.Show("文件已经存在,是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                End If
                If result = Nothing OrElse result = DialogResult.Yes Then
                    If  ftp1.Upload(f,file,True) = True Then
                        If ls.contains(file) = False Then
                            ls.add(file)
                        End If
                    Else
                        MessageBox.Show( f & "上传失败" ,"提示" ,MessageBoxButtons.OK,MessageBoxIcon.Question)
                    End If
                End If
            Next
            r.DataRow.lines("合同协议书") = ls
            ftp1.Close
            r.save
        End If
End Select
Select  Case e.Col.Name
    Case  "竣工验收报告"
        Dim dlg As New openFileDialog '定义一个新的SaveFileDialog
        dlg.MultiSelect = True
        If dlg.showDialog = DialogResult.Ok Then '如果用户单击了确定按钮
            Dim ftp1 As new  ftpclient
            ftp1.host="****0"
            ftp1.Account = "f*1"
            ftp1.password = "19***9"
            Dim r As Row = Tables("业绩管理").Current
            Dim ls = r.DataRow.Lines("竣工验收报告")
            For Each f As String In dlg.FileNames
                Dim file = "/公司业绩/" & r("项目名称") & "/" & filesys.GetName(f)
                If ftp1.DirExists("/公司业绩/" & r("项目名称")) = False Then
                    ftp1.MakeDir("/公司业绩/" & r("项目名称"))
                End If
                Dim Result As DialogResult
                If ftp1.FileExists(file) Then
                    Result = MessageBox.Show("文件已经存在,是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                End If
                If result = Nothing OrElse result = DialogResult.Yes Then
                    If  ftp1.Upload(f,file,True) = True Then
                        If ls.contains(file) = False Then
                            ls.add(file)
                        End If
                    Else
                        MessageBox.Show( f & "上传失败" ,"提示" ,MessageBoxButtons.OK,MessageBoxIcon.Question)
                    End If
                End If
            Next
            r.DataRow.lines("竣工验收报告") = ls
            ftp1.Close
            r.save
        End If
End Select


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/3/1 10:24:00 [只看该作者]

测试,应该是因为问题1 的原因造成的,问题1代码注释后就没问题了

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/1 10:46:00 [只看该作者]

全局表事件:CurrentChanged为什么要控制其它的表,正常控制触发事件的表就可以了吧。特别是Case Else,任何一个表选择不同的行都要改所有表的设置,有这个必要吗。再说这种设置只需要设置一次可以了吧,每改变不同的行都要设置一次?

Select Case e.Table.Name
    Case  "主窗口_Table1","主窗口_Table2"
        e.Table.Grid.ScrollBars = 0 '0 无 1 横向 2 纵向 3 横向纵向
    Case Else '其他所有表显示纵横向滚动条
            e.Table.Grid.ScrollBars = 3 '0 无 1 横向 2 纵向 3 横向纵向
            e.Table.Grid.ScrollOptions = 1
End Select

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/3/1 11:01:00 [只看该作者]

以上3个问题代码都注释掉,快速换行还是有问题,调试加上msgbox有个关闭弹窗的时间问题,就不会出问题。

所有表都测试,就这个表用鼠标点击不同的行,明显比其他表反应慢,找不到问题了。

[此贴子已经被作者于2022/3/1 11:01:40编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/3/1 11:47:00 [只看该作者]

我把文件发给客服测试了一下,也说没问题,估计电脑配置也有影响

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/1 11:52:00 [只看该作者]

估计是项目里某些用法有问题

 回到顶部