以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  图片列显示图片  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171490)

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

--  作者:aoc103
--  发布时间:2021/8/31 23:35:00
--  
经验之谈 如果是想在单元格里显示图片 要用DRAWCELL 使用GETIMAGE方法 另外,图片必须先下载 才能显示
--  作者:aoc103
--  发布时间: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
--  发布时间: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里 也可以写在按钮里 一进入 就模拟点击

--  作者:有点绿
--  发布时间:2021/9/1 0:40:00
--  
谢谢兄弟,代码直接送到嘴边了,营养非常丰富!