Foxtable(狐表)用户栏目专家坐堂 → 打印图片


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

主题:打印图片

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
打印图片  发帖心情 Post By:2020/3/15 21:28:00 [只看该作者]

表D的图片列有四张图片,将这四张图片打印到一张纸上,怎样改一下代码?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试求助项目20200315.foxdb



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


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/15 23:31:00 [只看该作者]

……
    '打印现场照片页
    Dim rt2 As New prt.RenderTable() '定义一个表格对象
    Dim rx2 As New prt.RenderText '定义一个文本对象
    Dim ra2 As New prt.RenderArea '定义一个容器
    ra2.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
    '设置一级标题
    rx2.text = "公司继续教育培训记录-现场照片"
    rx2.Style.FontSize = 14 '大体大小为18磅
    rx2.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
    rx2.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离5毫米
    ra2.Children.Add(rx2) '加入到容器中
    '设置表格样式
    rt2.Rows.Count = 1 '设置总行数
    rt2.Cols.Count = 1 '设置总列数
    rt2.Height = 250 '设置表格的高度
    rt2.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)
    'rt2.Rows(0).Height = 244 '设置行的高度
    ''rt2.Rows(1).Height = 122
    'rt2.Cols(0).Width = 210 '设置列的宽度
    'rt2.Cols(1).Width = 105
    '设置表格样式
    rt2.Style.GridLines.All = New prt.Linedef '设置网格线
    Dim rw2 As prt.Renderimage '定义一个图片对象
    Dim lst As List(of String) = rw.DataRow.Lines("现场照片")
Dim p As Integer = 0
    For k As Integer = 0 To lst.Count - 1 Step 2
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k))
        rw2.Width = 100
        rw2.Height = 120
        'rw2.Style.ImageAlign.StretchHorz = False '禁止水平方向扩展图片
        'rw2.Style.ImageAlign.StretchVert = False '禁止垂直方向扩展图片
        rt2.Cells(p,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k+1))
        rw2.Width = 100
        rw2.Height = 120
        'rw2.Style.ImageAlign.StretchHorz = False '禁止水平方向扩展图片
        'rw2.Style.ImageAlign.StretchVert = False '禁止垂直方向扩展图片
        rt2.Cells(p,1).RenderObject = rw2 '将单元格内容设置为图片对象rm
p+=1
    Next
    ra2.Children.Add(rt2) '将表格对象加入到报表中
    'ra2.Children.Add(rw2) '加入到容器中
    Doc.Body.ChildRen.Add(ra2) '将容器加入到报表中
Next
Doc.Preview() '预览报表

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2020/3/16 16:48:00 [只看该作者]

p+=1
这 段是什么意思?

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


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/16 16:52:00 [只看该作者]

就是【p= p+1】,p变量累加

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2020/3/16 21:04:00 [只看该作者]


For k As Integer = 0 To lst.Count - 1 Step 2
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k))
        rw2.Width = 100
        rw2.Height = 120
        rt2.Cells(p,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k+1))
        rw2.Width = 100
        rw2.Height = 120
        rt2.Cells(p,1).RenderObject = rw2 '将单元格内容设置为图片对象rm
        p + = 1
    Next

这段报错,老师帮忙再看一下

rw2.Image = GetImage(lst(k+1))

.NET Framework 版本:4.0.30319.1
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,公司继续教育,公司继续教育显示所有1,Click
详细错误信息:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index


[此贴子已经被作者于2020/3/16 21:05:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/16 21:09:00 [只看该作者]

For k As Integer = 0 To lst.Count - 1 Step 2
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k))
        rw2.Width = 100
        rw2.Height = 120
        rt2.Cells(p,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
if k+1 < lst.Count then
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k+1))
        rw2.Width = 100
        rw2.Height = 120
        rt2.Cells(p,1).RenderObject = rw2 '将单元格内容设置为图片对象rm
end if
        p + = 1
    Next

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2020/3/16 21:34:00 [只看该作者]

不显示图片,是不是因为我的图片太大了。

图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/16 22:00:00 [只看该作者]

图片放在哪里的?

msgbox(rw.DataRow("现场照片")

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2020/3/17 18:39:00 [只看该作者]

这是输出的结果:

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

一页纸打印四张图片太小了,一页打印两张图片,剩余的一张或两张在第二页打印。请老师改一下代码,谢谢了,多次麻烦您,不好意思。
现在的代码是:


    '打印现场照片页
    Dim rt2 As New prt.RenderTable() '定义一个表格对象
    Dim rx2 As New prt.RenderText '定义一个文本对象
    Dim ra2 As New prt.RenderArea '定义一个容器
    ra2.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
    '设置二级标题
    rx2.text = "公司继续教育培训记录-现场照片"
    rx2.Style.FontSize = 14 '大体大小为18磅
    rx2.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
    rx2.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离5毫米
    ra2.Children.Add(rx2) '加入到容器中
    '设置表格样式
    rt2.Rows.Count = 1 '设置总行数
    rt2.Cols.Count = 1 '设置总列数
    rt2.Height = 250 '设置表格的高度
    rt2.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)
    '设置表格样式
    rt2.Style.GridLines.All = New prt.Linedef '设置网格线
    Dim rw2 As prt.Renderimage '定义一个图片对象
    Dim lst As List(of String) = rw.DataRow.Lines("现场照片")
msgbox(rw.DataRow("现场照片"))
    Dim p As Integer = 0
    For k As Integer = 0 To lst.Count - 1 Step 2
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k))
        rw2.Width = 100
        rw2.Height = 120
        rt2.Cells(p,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
        If k+1 < lst.Count Then
            rw2 = New prt.Renderimage '定义一个图片对象
            rw2.Image = GetImage(lst(k+1))
            rw2.Width = 100
            rw2.Height = 120
            rt2.Cells(p,1).RenderObject = rw2 '将单元格内容设置为图片对象rm
        End If
        p + = 1
    Next
    ra2.Children.Add(rt2) '将表格对象加入到报表中
    Doc.Body.ChildRen.Add(ra2) '将容器加入到报表中Next


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


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/17 20:38:00 [只看该作者]

……
    rt.Cells(0,0).Text= "企业名称"
    rt.Cells(0,1).Text = rw("企业名称")
    rt.Cells(0,2).Text= "年度"
    rt.Cells(0,3).Text = rw("年度")
    ra.Children.Add(rt) '加入到容器中
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
    
    '打印现场照片页
    
    Dim lst As List(of String) = rw.DataRow.Lines("现场照片")
    
    For k As Integer = 0 To lst.Count - 1 Step 2
        Dim rt2 As New prt.RenderTable() '定义一个表格对象
        Dim rx2 As New prt.RenderText '定义一个文本对象
        Dim ra2 As New prt.RenderArea '定义一个容器
        ra2.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
        '设置一级标题
        rx2.text = "公司继续教育培训记录-现场照片"
        rx2.Style.FontSize = 14 '大体大小为18磅
        rx2.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
        rx2.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离5毫米
        ra2.Children.Add(rx2) '加入到容器中
        '设置表格样式
        rt2.Rows.Count = 1 '设置总行数
        rt2.Cols.Count = 1 '设置总列数
        rt2.Height = 250 '设置表格的高度
        rt2.Style.GridLines.All = New prt.LineDef(0.3,Color.blue)

        '设置表格样式
        rt2.Style.GridLines.All = New prt.Linedef '设置网格线
        Dim rw2 As prt.Renderimage '定义一个图片对象
        rw2 = New prt.Renderimage '定义一个图片对象
        rw2.Image = GetImage(lst(k))
        rw2.Height = 120
        rt2.Cells(0,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
        If k+1 < lst.Count Then
            rw2 = New prt.Renderimage '定义一个图片对象
            rw2.Image = GetImage(lst(k+1))
            rw2.Height = 120

            rt2.Cells(1,0).RenderObject = rw2 '将单元格内容设置为图片对象rm
        End If
        ra2.Children.Add(rt2) '将表格对象加入到报表中
        Doc.Body.ChildRen.Add(ra2) '将容器加入到报表中
    Next
    
Next
Doc.Preview() '预览报表

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