Foxtable(狐表)用户栏目专家坐堂 → 图片列显示图片


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

主题:图片列显示图片

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


加好友 发短信
等级:婴狐 帖子:17 积分:197 威望:0 精华:0 注册:2021/8/31 3:16:00
图片列显示图片  发帖心情 Post By:2021/8/31 23:24:00 [只看该作者]

图片点击可在新窗口打开查看
我已经通过代码的方式用ftp上传了图片,但是我想要在单元格显示小图的同时能够单击放大,这个如何实现,因为我看了单元格绘图那个帮助,没有相关的描述,而且我的图片都在ftp上,这里面就有点复杂了,难道还要先下载到本地上面,下载到本地上放哪里呢,如何下载呢?

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


加好友 发短信
等级:童狐 帖子:252 积分:2920 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2021/8/31 23:35:00 [只看该作者]

经验之谈 如果是想在单元格里显示图片 要用DRAWCELL 使用GETIMAGE方法 另外,图片必须先下载 才能显示

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


加好友 发短信
等级:童狐 帖子:252 积分:2920 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2021/8/31 23:36:00 [只看该作者]

Select e.Col.name
    Case "产品图片"
        Dim Colname As String="图片地址"
        
        If not e.Row.DataRow.IsNull("图片地址") Then
            If FileSys.FileExists(e.Row("图片地址"))Then
                e.StartDraw
                Dim img As Image = GetImage(e.Row("图片地址"))
                Dim xposition As Integer=3 '定义填充初始位置 X轴
                Dim yposition As Integer=3 '定义填充初始位置 Y轴
                Dim imgwidth As Integer = e.Table.cols(e.Col.name).width-xposition*2 '定义图片的宽 从列宽中获取
                Dim imgheight As Integer = e.Table.Grid.Rows(e.Table.Current.Index+1).HeightDisplay-yposition*2 '定义图片的高 从表格中的行高获取
                If imgwidth>imgheight Then '如果宽度大于高度 则图片的大小的宽度以高度作为标准
                    imgwidth=imgheight
                ElseIf imgwidth<imgheight '如果宽度小于高度,则图片的大小的高度按宽度作为标准
                    imgheight=imgwidth
                End If

                If img.width<img.height Then '本段代码为设置自动缩放 如果有些图片的长宽不一,则要动态修改图片的长宽
                    imgwidth=imgheight/img.Height*img.Width '更新要填充的图片的宽度
                    xposition=(imgheight-imgwidth)/2+ xposition '图片片居中
                ElseIf img.width>img.height Then
                    imgheight= imgwidth/img.Width*img.Height '更新要填充的图片的高度
                    yposition=(imgwidth-imgheight)/2+ yposition '图片片居中
                End If
                e.Graphics.DrawImage(img, e.x + xposition,e.y + yposition,imgwidth,imgheight) '绘制产品图片
                e.EndDraw
            End If
        End If
        
End Select
这是我的代码 你可以去参考下 没用的可以删掉,有自动缩放跟居中的功能
[此贴子已经被作者于2021/8/31 23:36:09编辑过]

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


加好友 发短信
等级:童狐 帖子:252 积分:2920 威望:0 精华:0 注册:2017/10/15 20:04:00
  发帖心情 Post By:2021/8/31 23:41:00 [只看该作者]

Dim ftp1 As new ftpclient
ftp1.host=var_ftpserver
ftp1.Account = var_user
ftp1.password = var_password
ftp1.UTF8=True
Dim picdir As String=var_localpic '定义图片下载位置



For Each dr As DataRow In DataTables("正在生产表_Table1").DataRows '从数据表中提取数据
    Dim dr2 As DataRow = DataTables("tbl_商品表").sqlfind("商品编号='" & dr("商品编号") & "'")
    If not dr2.IsNull("产品图片") Then
        If not FileSys.FileExists(picdir &  dr2("产品图片")) Then ' 如果文件不存在 则下载文件
            ftp1.Download( dr2("产品图片"),picdir &  dr2("产品图片"))
        End If
        If  FileSys.FileExists(picdir &  dr2("产品图片")) Then ' 如果文件存在 则下载文件
            dr("图片地址") = picdir & dr2("产品图片") '设置本地图片地址变量   
        End If
    End If
    
Next
ftp1.Close '关掉FTP连接
载入之前要先下载图片 这个是写在按钮里的代码 可以放在AFTERLOAD里 也可以写在按钮里 一进入 就模拟点击

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


加好友 发短信
等级:婴狐 帖子:17 积分:197 威望:0 精华:0 注册:2021/8/31 3:16:00
  发帖心情 Post By:2021/9/1 0:40:00 [只看该作者]

谢谢兄弟,代码直接送到嘴边了,营养非常丰富!

 回到顶部