Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中PictureViewer的使用 4月11号 16楼有新问题,例子在9楼


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

主题:[求助]窗口中PictureViewer的使用 4月11号 16楼有新问题,例子在9楼

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/7 22:45:00 [显示全部帖子]

Dim pv As WinForm.PictureViewer = e.Form.Controls("PictureViewer1")
    If dr IsNot Nothing Then '如果找到的话
        Dim ls = dr.Lines("附件")
        For Each f As String In dlg.FileNames
            Dim file = "/上下游公司名录附件/" & dr("公司") & "/" & filesys.GetName(f)
            If ftp1.DirExists("/上下游公司名录附件/" & dr("公司")) = False Then
                ftp1.MakeDir("/上下游公司名录附件/" & dr("公司"))
            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)
pv.AddFile(file)
                    End If
                Else
                    MessageBox.Show( f & "上传失败" ,"提示" ,MessageBoxButtons.OK,MessageBoxIcon.Question)
                End If
            End If
        Next

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 8:37:00 [显示全部帖子]

再上传同命图片的时候是不是没有往PictureViewer里添加?

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 9:48:00 [显示全部帖子]

上传实例测试

本地是必须有文件的,ftp的文件必须下载到本机,才能使用,控件才能显示图片。

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 9:58:00 [显示全部帖子]

BeforeDeleteFile事件到项目里的RemoteFiles删除同名文件即可

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 11:35:00 [显示全部帖子]

BeforeAddFile事件
……

        dr.lines("附件") = ls
        e.DataRow.lines("附件") = ls
        e.DataTable.AcceptChanges
        dr.Save
        ftp1.Close
    End If
End If

新增按钮
……
Dim pv As WinForm.PictureViewer = e.Form.Controls("PictureViewer1")
Dim ftp As New FTPClient
ftp.host="xxx"
ftp.port = "xxx"
ftp.Account = "xxx"
ftp.password = "xxx"
pv.FTPclient = ftp
pv.BindingField = t.Name & ".附件"
t.AllowEdit = True

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 14:00:00 [显示全部帖子]

PictureViewer不指定ftp默认从Attachments取图片显示,如果指定ftp会从ftp下载文件到RemoteFiles,然后显示文件。

BeforeAddFile事件使用了e.cancel,所以添加的文件不会添加到单元格,要自己手工添加

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/8 15:44:00 [显示全部帖子]

理论上是不需要了。但是窗口刚打开时,并没有上传图片操作的时候,PictureViewer1就不会有这个设置,导致已加载数据的图片无法显示。所以这些设置应该放到表格fill加载数据之后。反过来应该可以去掉BeforeAddFile 事件的设置

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 15:56:00 [显示全部帖子]

同样的道理。说明删除图片的时候,没有从单元格去掉这个图片的名称

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 16:40:00 [显示全部帖子]

A文件没有从ftp里删除掉。应该路径不对,删除BeforeDeleteFile事件这一句【ftp1.RootDir = "/上下游公司名录附件" '设置根目录】

单元格文件名应该已经包含了"/上下游公司名录附件"

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


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/11 17:07:00 [显示全部帖子]

删除后没有保存。

dr = DataTables("窗口1_Table1").SQLFind("公司 = '" & tb.Value & "'")BeforeDeleteFile事件这里的dr并没有删除文件的代码,默认删除的是窗口表的数据

或者试试最后加一句e.datarow.save

 回到顶部
总数 12 1 2 下一页