Foxtable(狐表)用户栏目专家坐堂 → 专业报表打印图片的问题


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

主题:专业报表打印图片的问题

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
专业报表打印图片的问题  发帖心情 Post By:2017/6/26 17:02:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:专业报表图片.jpg
图片点击可在新窗口打开查看

如上图,用户要求打印图片在中间,图片是在ftp服务器上,有一列专门显示地址,这种方式要如何实现,还有图片显示位置有合并是不是只能显示在最左侧,不能在中间?

谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/26 21:09:00 [显示全部帖子]

sqltable的图片列不能打开图片浏览器窗口吗?在窗口afterload中写了如下代码
Tables(e.Form.name & "_明细").Cols("图片").OpenWindow()

不起作用,是不是只能另外增加一个图片浏览器控件来绑定到图片列?

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/26 21:56:00 [显示全部帖子]

'---设置ftp图片列的属性
If Tables(winName & "_" & ctl.name).Cols.Contains("图片") Then
    DataTables(winName & "_" & ctl.name).DataCols("图片").ExtendType = ExtendTypeEnum.Images '图片列
    DataTables(winName & "_" & ctl.name).DataCols("图片").Remote = True
    DataTables(winName & "_" & ctl.name).DataCols("图片").FTPClient.Host = ftp_Host
    DataTables(winName & "_" & ctl.name).DataCols("图片").FTPClient.Account = ftp_User
    DataTables(winName & "_" & ctl.name).DataCols("图片").FTPClient.password = ftp_Pwd
    DataTables(winName & "_" & ctl.name).DataCols("图片").FTPClient.port = ftp_Port  'ftp端口不是21时必须指定
    DataTables(winName & "_" & ctl.name).DataCols("图片").FTPClient.UTF8 = True '避免中文乱码
    Tables(winName & "_" & ctl.name).Cols("图片").OpenWindow  '打开图片列窗口

这些在sqltable加载后都有设置的,在图片列中点击单元格按钮都可以正常打开显示,但用户想在切换行时就能显示不同的图片,所以不知道为何红色这个代码不起作用?


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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/27 22:35:00 [显示全部帖子]

Dim ColNames As String() = New String(){"序号","产品编码","品名","图片","规格","数量","计量单位","箱号","装箱数","备注"}
Dim drs As List(Of DataRow)
drs = DataTables("订单_明细").Select("订单编号 = '" & CurRow("订单编号") & "'")
If drs.count > 0 Then  '如果有值
    For i As Integer = 0 To drs.Count-1
        rt.Rows(rt.Rows.Count).Height = rh
        For c As Integer = 0 To ColNames.Length -1
            If c = 0 Then  '序号列格式化为两位
                rt.cells(rt.Rows.Count-1,c).text = Format(i+1,"00")
            ElseIf c = 3 Then  '图片列
                Dim rm As New prt.RenderImage() '定义一个图片对象
                rm.Image = GetImage(drs(i)(ColNames(c))) '请改为实际的图标名称和路径
                rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '图片水平居中
                rm.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center '图片垂直居中
                rm.Style.ImageAlign.StretchHorz = False '禁止水平方向扩展图片
                rm.Style.ImageAlign.StretchVert = False '禁止垂直方向扩展图片
                rt.cells(rt.Rows.Count-1,c).RenderObject = rm '将单元格内容设置为图片对象rm
.......
            End If
        Next
    Next
End If

请教下老师,红色的地方因为图片列是用ftp上的jpg文件,用msgxob()显示出来的路径是"/Photo/11-UR80.jpg"

打印预览的结果没有出错,但是图片列全部都变为空了,那个地方的路径应该怎么写才正确?
谢谢! 

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/27 23:01:00 [显示全部帖子]

因为是ftp的远程文件,所以本地的安装目录的"\RemoteFiles\Photo"下有相同的图片,但单元格中是显示的"/Photo/11-UR80.jpg",
想问下这个斜杠一个是 "\" ,一个是 "/" 需要替换为相同的吗?这两个斜杠有的地方一样,有的不一样有时很难理解

 回到顶部