Foxtable(狐表)用户栏目专家坐堂 → 求助:报表中各行动态引用图片列的内容


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

主题:求助:报表中各行动态引用图片列的内容

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


加好友 发短信
等级:小狐 帖子:343 积分:3921 威望:0 精华:0 注册:2018/4/6 18:02:00
求助:报表中各行动态引用图片列的内容  发帖心情 Post By:2018/8/18 17:52:00 [只看该作者]

各位老师:在导出报表时,我想加入一个图片,代码如下时可以导出图片

 

   Sheet(7,1).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\JH13002421.jpg"),6,6,190,190)

 

我想要的效果是:这个表里的一行中第7列是图片列,图片列的内容是图片的名称,要引用图片列的名称替换照片名称

 

   Sheet(7,1).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\dt.rows(6)(nms(7)) "),6,6,190,190)

 

代码改完后导出的报表没有图片。

 

最终效果是:在报表的第8列,显示各行的图片列的图片!

 

   Sheet(r,8).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\dt.rows(r)(nms(7)) "),6,6,190,190)

 

麻烦各位老师及大咖们给指点指点!


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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 8:57:00 [只看该作者]

图片存放的是什么内容?路径是否正确?msgbox("E:\不良照片\工序检验\不良照片\dt.rows(6)(nms(7)) ")

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


加好友 发短信
等级:小狐 帖子:343 积分:3921 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2018/8/19 9:42:00 [只看该作者]

老师:

   图片存放的是一张张图片。路径正确。msgbox("E:\不良照片\工序检验\不良照片\dt.rows(6)(nms(7)) ") 后显示:

 

导出的报表如下:

这个是按钮代码:

Dim dt As Table = Tables("整车质量报表_table1")
    Dim nms()  As String = {"日期1","编号","代号","底盘号","发动机号","序号","不良描述","本地不良照片","部门","检验岗1","班组","操作人","考核","原因分析","预防措施"} '要导出的列名
    Dim caps() As String = {"日期","编号","代号","底盘号","发动机号","序号","不良描述","照片","部门","检验岗","班组","操作人","考核","原因分析","预防措施"}  '对应的列标题 
    Dim szs() As Integer = {90,50,50,80,100,45,350,120,40,60,60,70,40,400,550} '对应的列宽 
Dim Book As New XLS.Book '定义一个Excel工作簿 
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim at As XLS.Style = Book.NewStyle '日期列的显示格式 
    at.Format = "yyyy-MM-dd"
    at.BorderTop = XLS.LineStyleEnum.Thin 
    at.BorderBottom = XLS.LineStyleEnum.Thin
    at.BorderLeft = XLS.LineStyleEnum.Thin
    at.BorderRight = XLS.LineStyleEnum.Thin
    at.BorderColorTop = Color.Black
    at.BorderColorBottom = Color.Black
    at.BorderColorLeft = Color.Black
    at.BorderColorRight = Color.Black
    at.AlignHorz = XLS.AlignHorzEnum.Center '水平居中
    at.AlignVert = XLS.AlignVertEnum.Center '垂直居中
Dim bt As XLS.Style = Book.NewStyle() 'ct样式为:黑线网格线,内容居左
    bt.BorderTop = XLS.LineStyleEnum.Thin  
    bt.BorderBottom = XLS.LineStyleEnum.Thin
    bt.BorderLeft = XLS.LineStyleEnum.Thin
    bt.BorderRight = XLS.LineStyleEnum.Thin
    bt.BorderColorTop = Color.Black
    bt.BorderColorBottom = Color.Black
    bt.BorderColorLeft = Color.Black
    bt.BorderColorRight = Color.Black
    bt.AlignHorz = XLS.AlignHorzEnum.Center     '水平居中
    bt.AlignVert = XLS.AlignVertEnum.Center '垂直居中
Dim ct As XLS.Style = Book.NewStyle() 'ct样式为:黑线网格线,内容居左
    ct.BorderTop = XLS.LineStyleEnum.Thin  
    ct.BorderBottom = XLS.LineStyleEnum.Thin
    ct.BorderLeft = XLS.LineStyleEnum.Thin
    ct.BorderRight = XLS.LineStyleEnum.Thin
    ct.BorderColorTop = Color.Black
    ct.BorderColorBottom = Color.Black
    ct.BorderColorLeft = Color.Black
    ct.BorderColorRight = Color.Black
    ct.AlignHorz = XLS.AlignHorzEnum.Left '水平居左
    ct.AlignVert = XLS.AlignVertEnum.Center '垂直居中
 For c As Integer = 0 To nms.length -1  '指定表头
    Sheet(0, c).Value = caps(c) '指定列标题
    Sheet(0, c).Style = bt
    Sheet.Cols(c).Width = szs(c) '指定列宽
 Next
 For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
        Sheet(r +1, c).Style = bt  '指定其余列显示居中带边框
        Sheet(r +1, 0).Style = at    '指定0列显示日期格式
        Sheet(r +1, 6).Style = ct    '指定6列显示居左带边框
        Sheet(r +1, 12).Style = ct    '指定6列显示居左带边框
        Sheet(r +1, 13).Style = ct    '指定6列显示居左带边框
     Next
 Next
Sheet(7,1).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\JJ2199841.jpg"),6,6,190,190)   '照片的名字能随当前行图片列名字一起导出到报表中  

'Sheet(r,8).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\dt.rows(r)(nms(7)) "),6,6,190,190)     '最终的效果是这样的,现在不能动态提出行中图片名称?   
msgbox("E:\不良照片\工序检验\不良照片\dt.rows(6)(nms(7)) ")
Book.Save( "D:\质量管理系统\日报\工序检验报表.xls" )
Dim Proc As New Process
Proc.File = "D:\质量管理系统\日报\工序检验报表.xls"
Proc.Start()

 

请老师费心!

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180819093523.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180819093611.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 9:45:00 [只看该作者]

Sheet(r,8).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\" & dt.rows(r)(nms(7))),6,6,190,190) 

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


加好友 发短信
等级:小狐 帖子:343 积分:3921 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2018/8/19 13:16:00 [只看该作者]

谢谢老师指教!

看来还是没有彻底理解帮助中的单引号双引号在何时应用!

 

 

  追问一下问题:我想动态合成一个报表,当天导出的报表,报表名称是当天的日期加工序检验报表。如 20180819工序检验报表.XLS。但怎样也导不出来!

  代码如下:

   Book.Save( "D:\质量管理系统\日报\工序检验报表.xls" )    
  'Book.Save( "D:\质量管理系统\日报\ 'Date.Today &工序检验报表.xls'" ) '保存为当天日期的工序检验报表.xls。
还请老师多费心!


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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 15:30:00 [只看该作者]

一样是4楼的用法啊!不是条件表达式,不是sql,基本和单引号没有任何关系

Book.Save( "D:\质量管理系统\日报\ " & Date.Today & "工序检验报表.xls" ) 

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


加好友 发短信
等级:小狐 帖子:343 积分:3921 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2018/8/19 17:35:00 [只看该作者]

谢谢,原来是把前面和后面的双引号括起来,中间的是日期,明白了,今天学了很多,这两个问题困绕了我很长时间了!

再次感谢老师指教!


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


加好友 发短信
等级:小狐 帖子:343 积分:3921 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2018/8/20 13:32:00 [只看该作者]

老师:这段代码我想要的效果是:当第七列的内容不为空时,行高设定为200,当为空值是,行高设定为40.但没有效果。

 For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
        If  dt.rows(r)(nms(7))  IsNot   Nothing   Then 
            Sheet.Rows(r+1).Height = 200  '设置第3行的行高
         Else
            Sheet.Rows(r+1).Height = 40  '设置第3行的行高
        End If
        Sheet(r+1,7).Value = New XLS.Picture(GetImage("E:\不良照片\工序检验\不良照片\" & dt.rows(r)(nms(7))),6,6,190,190) 

 

请老师给指点一下!


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180820132923.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180820133012.png
图片点击可在新窗口打开查看

 回到顶部