以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]word报表中如何根据文本列的文本内容插入相应的签名图片  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66177)

--  作者:shenyl0211
--  发布时间:2015/3/31 16:32:00
--  [求助]word报表中如何根据文本列的文本内容插入相应的签名图片

在管理表中有“审核人”列,审核人为“张三”、“李四”这样的文本内容,而不是签名图片,现在要根据“张三”、“李四”自动调用相应的签名图片“张三.jpg”、“李四.jpg”插入到word表中。请问该如何实现?谢谢!


--  作者:有点甜
--  发布时间:2015/3/31 16:36:00
--  
 加入一列图片列,引用图片列。
--  作者:Bin
--  发布时间:2015/3/31 16:37:00
--  
图片放到Images目录里

利用ReplaceOne 替换设置标签
[&&张三.png,48,48]  即可

--  作者:shenyl0211
--  发布时间:2015/4/1 21:33:00
--  

1、甜版的方法在帮助中有介绍,虽然可行,但实在不想增加图片列,这样数据库会很大,也不好看。我的考勤管理系统中都用字符型签字,最后的请假条、考勤表、出差费汇总表、加班费汇总表等用专业报表打印签名。

2、现在想用word报表打印考核管理系统的考核表,将“考核人”单元格公式用[&&<[考核人]>.png,53,40]不行。

3、按bin版主的下列思路结果还是与[&&<[考核人]>.png,53,40]一样,单元格仅变成了[&&张三.png,53,40],还是停留在模板阶段:

    Dim tm As String  = ProjectPath & "Attachments\\考核表.doc"
    Dim fl As String = ProjectPath & "Reports\\考核表.doc"
    Dim wrt As New WordReport(Tables("考核管理"),tm,fl) 
    Dim tp As String
    For Each r As Row In Tables("考核管理").rows
         tp = "[&&" & r("考核人") & ".png,53,40]"
         wrt.ReplaceOne("[考核人]",tp)
         wrt.BuildOne(r)
    Next
    wrt.show()

4、下列语句为什么不会变换图片呢?

    For Each r As Row In Tables("考核管理").Rows
        wrt.ReplaceWithImage("[考核人]",r("考核人") & ".jpg",53,40)
        wrt.buildone(r)
    Next

 

难道真的只能用专业报表了吗?


--  作者:有点甜
--  发布时间:2015/4/1 21:36:00
--  

1、你可以用动态添加临时列或表达式列的方式啊;

 

2、没有这种语法;

 

3、只有这种方法;

 

4、第一个参数,必须是决定路径,比如 d:\\test.jpg


--  作者:shenyl0211
--  发布时间:2015/4/2 12:29:00
--  

甜版:

第4条的图片是显示的,但经过测试,不管其他行的“考核人”是谁,即不管r("考核人")的值是什么,用的都是第一行“考核人”的图片。

word报表真的需要完善。


--  作者:有点甜
--  发布时间:2015/4/2 14:08:00
--  
4、不可能,只要你合成的路径正确,就不会有问题,路径必须是绝对路径。
--  作者:shenyl0211
--  发布时间:2015/4/2 15:26:00
--  

甜版:经过测试,真的是可能的。规律如下:

1、只要图片文件与项目文件在同一个文件夹就可以,无需指定路径,根本不是必须在某个其它文件夹中。

2、只要第一个图片不存在,以后的图片就都不显示,但文字内容不变。

3、只要第一个图片存在,以后的图片就都不会改变,不管以后的图片是否存在。

 

你可以用一个单元格的模板文件、一列数据的表格、一张图片就可以测试。

 

[此贴子已经被作者于2015/4/2 15:26:35编辑过]

--  作者:有点甜
--  发布时间:2015/4/2 16:22:00
--  
 测试了一下 ReplaceWithImage 是整体性替换的。
--  作者:shenyl0211
--  发布时间:2015/4/2 20:18:00
--  

针对现实的应用和ReplaceWithImage存在的上述问题,希望狐爸能对ReplaceWithImage做些改进,

因为ReplaceWithImage查找的字符串肯定是具体的某列,而不会是某个具体的值,

例如,应该是[考核人]列,而不会是“张三”值,因为“张三”值可能出现在[姓名]、[经办人]、[审批人]、[审核人]列,但这些列都不是要替换的对象。

而用于替换的图片肯定与查找的字符串有关,

例如,查找“张三”值肯定是要用“张三”的图片,如果要用“李四”的图片,正常情况下应会先批量更改“张三”值为“李四”值,再将“李四”值替换为“李四”的图片。