以文本方式查看主题 - 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 -- 谢谢兄弟,代码直接送到嘴边了,营养非常丰富! |