第一次问的问题:有一个员工表,其中有一列[相片]列,是远程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
----------------------------------------------------------------------------------------------------------------------
代码不同之处在于标注成红色的内容。谢谢各位。
[此贴子已经被作者于2014-5-5 12:18:07编辑过]