Foxtable(狐表)用户栏目专家坐堂 → [NEW]关于WORD报表的图片引用问题,图片存在FTP中[追加提问并附附件]。


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

主题:[NEW]关于WORD报表的图片引用问题,图片存在FTP中[追加提问并附附件]。

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


加好友 发短信
等级:小狐 帖子:360 积分:3174 威望:0 精华:1 注册:2011/4/20 1:40:00
[NEW]关于WORD报表的图片引用问题,图片存在FTP中[追加提问并附附件]。  发帖心情 Post By:2014/5/3 14:49:00 [只看该作者]

第一次问的问题:有一个员工表,其中有一列[相片]列,是远程FTP文件,WORD报表中设置为:[&相片,90,105]

但是在生成报表时无法显示出图片,这个问题怎么解决呀,其实远程文件系统已经默认同步在“RemoteFiles”文件中了。

 

追加问题:现在通过在表中添加一表达式辅助列,将对应的远程路径修改成与本地路径相对应的路径了。生成单条记录的报表没有问题,但是在生成勾选行时存多问题,主要是运用了“ReplaceWithImage”现先将项目文件附上来。

存在问题1、在使用以下代码时,勾选多行的情况下,打印出来的记录除相片成生总是第一行的相片外,其它正常。主要想搞清楚为什么相片总是显示第一行的指定相片,第二条记录及以后的相片为什么没有生成,是不是“ReplaceWithImage”是整体一次性替换有,而不是每次使用时替换。

'''
DataTables("通讯录").DataCols("相片").RaiseDataColChanged() '强制触发该列"DataColChanged"事件

Dim tm As String  = ProjectPath & "Attachments\通讯录.doc" '指定模板文件
Dim fl1 As String = ProjectPath & "Reports\人员信息卡_" & CStr(Date.Now).Replace("-","").Replace(" ","").Replace(":","") & ".doc" '指定目标文件
Dim fl2 As String = ProjectPath & "Reports\人员信息卡_" & CStr(Date.Now).Replace("-","").Replace(" ","").Replace(":","") & ".pdf" '指定目标PDF文件
Dim wrt As New WordReport(Tables("通讯录"),tm,fl1) '定义一个WordReport
Dim 勾选行 As List(of Row) = Tables("通讯录").GetCheckedRows
If 勾选行.Count > 0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("您已勾选了:" & 勾选行.Count & "行数据,请确认是否继续生成人员信息卡片。", "确认操作!!!", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each r As Row In 勾选行 '逐行生成报表

            wrt.ReplaceWithImage("[本地相片辅助列]",r("本地相片辅助列"),90,115) '把文字代换成图片
            wrt.BuildOne(r)

        Next
            wrt.Quit() '退出
        MessageBox.Show("生成完毕。","操作成功提示!!!",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
Else
    MessageBox.Show("您尚未勾选任何行,请确认勾选后再进行操作。","操作出错提示!!!",MessageBoxButtons.OK,MessageBoxIcon.Warning)
End If

-------------------------------------------------------------------------------------------------------------------------------

 

问题2、在改写成一面的代码后,打印出来的记录比如勾选了两行,但却只能生成第二条记录,第一行记录没有办法生成。代码哪里错了?

'''
DataTables("通讯录").DataCols("相片").RaiseDataColChanged() '强制触发该列"DataColChanged"事件

Dim tm As String  = ProjectPath & "Attachments\通讯录.doc" '指定模板文件
Dim fl1 As String = ProjectPath & "Reports\人员信息卡_" & CStr(Date.Now).Replace("-","").Replace(" ","").Replace(":","") & ".doc" '指定目标文件
Dim fl2 As String = ProjectPath & "Reports\人员信息卡_" & CStr(Date.Now).Replace("-","").Replace(" ","").Replace(":","") & ".pdf" '指定目标PDF文件

Dim 勾选行 As List(of Row) = Tables("通讯录").GetCheckedRows
If 勾选行.Count > 0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("您已勾选了:" & 勾选行.Count & "行数据,请确认是否继续生成人员信息卡片。", "确认操作!!!", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each r As Row In 勾选行 '逐行生成报表
            Dim wrt As New WordReport(Tables("通讯录"),tm,fl1) '定义一个WordReport
            wrt.ReplaceWithImage("[本地相片辅助列]",r("本地相片辅助列"),90,115) '把文字代换成图片
            wrt.BuildOne(r)
            wrt.Quit() '退出
        Next

        MessageBox.Show("生成完毕。","操作成功提示!!!",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
Else
    MessageBox.Show("您尚未勾选任何行,请确认勾选后再进行操作。","操作出错提示!!!",MessageBoxButtons.OK,MessageBoxIcon.Warning)
End If

----------------------------------------------------------------------------------------------------------------------

 

代码不同之处在于标注成红色的内容。谢谢各位。

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:项目文件.rar

[此贴子已经被作者于2014-5-5 12:18:07编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/4 8:53:00 [只看该作者]

这个暂时不能引用软件远程文件,或者你下载到attatchments目录看看吧

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/4 9:10:00 [只看该作者]

 楼主你可以用这个方法,结合表达式就行了

 

[&&图片文件,宽度,高度] 打印指定的图片文件,文件事先复制到Images或Attachments目录下,则只需指定文件名,例如:

[&&Denmark.png,48,48]

否则需要包括路径,例如:

[&&c:\data\Denmark.png,48,48]

 

<表达式> 对表达式进行计算,采用VBScript语法和函数,VBSCript提供了很多函数,具体请参考:VBScript参考

例如你要将出生日期以中文大写的形式打印出来,可以这样设置模板:

<CUDATE([出生日期])>


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/4 9:13:00 [只看该作者]

方案二:多加一列图片列,存放路径在RemoteFiles里,修改ftp图片列的时候,对应修改这一图片列的名字。

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


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

以后改一下,可以直接从ftp引用算了。

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


加好友 发短信
等级:小狐 帖子:360 积分:3174 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2014/5/4 18:59:00 [只看该作者]

我增加了一列表达式列的辅助列,WORD报表引用时用辅助列里面的内容,但还是出不来,我再检查一下是不是有问题。总觉得我的WORD有问题,就算不引用图片,生成一个十几行的报表也要花很长时间。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/4 19:23:00 [只看该作者]

以下是引用liguichuan在2014-5-4 18:59:00的发言:
我增加了一列表达式列的辅助列,WORD报表引用时用辅助列里面的内容,但还是出不来,我再检查一下是不是有问题。总觉得我的WORD有问题,就算不引用图片,生成一个十几行的报表也要花很长时间。

 

用例子说明问题......


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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2014/5/4 22:38:00 [只看该作者]

以下是引用狐狸爸爸在2014-5-4 9:16:00的发言:
以后改一下,可以直接从ftp引用算了。

期待,早点改好


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


加好友 发短信
等级:小狐 帖子:360 积分:3174 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2014/5/5 19:06:00 [只看该作者]

怎么没有人来解答呀?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 19:25:00 [只看该作者]

以下是引用liguichuan在2014-5-5 19:06:00的发言:
怎么没有人来解答呀?

 

 

 以后你修改原帖的时候,记得顶一下,不然就沉下去了。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目文件.zip


 回到顶部