Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表打印员工相片的代码问题


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

主题:[求助]专业报表打印员工相片的代码问题

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]专业报表打印员工相片的代码问题  发帖心情 Post By:2019/8/14 15:32:00 [只看该作者]

老师好。专业报表打印员工相片的代码不对,请老师帮助修正。谢谢。

Dim Doc As New PrintDoc
Dim rt As New prt.RenderTable()
Dim btwb As New prt.RenderText
Dim CurRow As Row = Tables("员工").Current 
Dim fd As String = DataTables("员工").DataCols("照片").DefaultFolder 
Dim xm As String = Tables("员工").Current("姓名") 
Dim rm As New prt.RenderImage() '定义一个图片对象
If fd = "" Then fd = ProjectPath & "RemoteFiles\Attachments" & "\" & xm & ".jpg" 
rm.Image = GetImage(fd) '要打印的图片的路径和文件名
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(0,11).Image = GetImage(rm)
rt.Cells(0,11).RenderObject = rm '将单元格内容设置为图片对象rm
Doc.Body.Children.Add(rt) '将表格对象加入到报表中

Doc.Preview() '预览报表


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

去掉这句
rt.Cells(0,11).Image = GetImage(rm)

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/14 15:46:00 [只看该作者]

老师好。去掉[rt.Cells(0,11).Image = GetImage(rm)] 这句后,照片列为空。
[此贴子已经被作者于2019/8/14 16:36:05编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/14 16:01:00 [只看该作者]

上传实例看看

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/14 16:36:00 [只看该作者]

老师好。上一个问题已解决,是文件路径不对。

又有一个问题,下面黄底色代码中的表, 如果改为窗口表 就运行出错 “不存在名称为 “窗口1_Table1” 的 DataTable!” 。应如何修改,请老师指导。谢谢。

Dim CurRow As Row = Tables("窗口1_Table1").Current 
Dim fd As String = DataTables("窗口1_Table1").DataCols("照片").DefaultFolder     ‘这句运行出错
Dim xm As String = Tables("窗口1_Table1").Current("姓名")

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/14 17:06:00 [只看该作者]

如果不是副本,直接使用主表名称即可

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/14 17:17:00 [只看该作者]

老师好。
Dim CurRow As Row = Tables("窗口1_Table1").Current 
Dim fd As String = DataTables("员工").DataCols("照片").DefaultFolder     这样改行不行
Dim xm As String = Tables("窗口1_Table1").Current("姓名")


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

行不行测试一下就知道呀

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/14 17:52:00 [只看该作者]

老师好。再请教老师,能不能根据员工表、当前行的员工姓名,直接用代码获取照片列已下载到本地的全路径文件名,不要用手工指定。因为[If fd = "" Then fd = ProjectPath & "RemoteFiles\Attachments\文件夹1\文件夹2" & "\" & xm & ".jpg"] 其中的“文件夹1\文件夹2” 要根据员工所在部门的不同而改变。如果用手工指定,就的经常改代码,特别是多客户端时尤为不方便。  谢谢。

补充,也就是能不能用代码直接获取Foxtable读取已下载到本地的照片的全路径及文件名。谢谢。


[此贴子已经被作者于2019/8/14 18:04:38编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/8/15 8:35:00 [只看该作者]

既然姓名作为文件名可以用变量xm来动态合成,部门一样可以啊:

dim bm as string = tables("xxx").Current("部门")
If fd = "" Then fd = ProjectPath & "RemoteFiles\Attachments\" & bm &  "\" & xm & ".jpg"


 回到顶部