后台报表与远程图片
上一节讲述了基于后台数据生成报表。
在基于后台数据生成报表的过程中,会根据指定的Select语句生成一些临时的数据表(DataTable),这些临时表和现有的DataTable没有任何关系,在代码执行完毕之后,会被自动销毁。
你也许担心一个问题,既然这些临时表是独立存在的,如果我们使用了FTP进行远程图片管理, 那么之前所有的相关设置和这些临时表应该是没有关系的,这是否会导致图片引用失败呢?
实际上我们无需担心这个问题,假定我们通过下面的代码添加了一个临时表:
book.AddDataTable("员工","","Select * from {员工} where 姓名 = '王伟'")
此临时表的名称为"员工",在生成报表前,系统会自动从现有的数据表中找到员工表,并从中提取有关远程文件的设置应用到临时表中。 系统是根据表名匹配的,所以添加临时表的时候,必须和对应的数据表同名。
显然如果员工表没有加载,那么系统将无法从现有表中提取相关设置应用到临时表中,此时可以通过Book的DataTables属性引用这些临时表,用代码设置列的扩展类型、FTP地址和密码等,参考代码:
Dim
Book As
New XLS.Book(ProjectPath
&
"Attachments\资料卡.xls")
Dim
fl As
String =
ProjectPath &
"Reports\资料卡.xls"
book.AddDataTable("员工","","Select
* from {员工} where 姓名 = '王伟'")
book.DataTables("员工").DataCols("照片").ExtendType
= ExtendTypeEnum.Images
'扩展类型为图片
book.DataTables("员工").DataCols("照片").Remote
= True '使用FTP管理
With
book.DataTables("员工").DataCols("照片").FTpClient
'设置FTP属性
.Host
= "168.218.199.25"
.Account =
"ftpuser"
.Password =
"13613800"
End
With
Book.Build()
Book.Save(fl)
Dim
Proc As
New
Process
Proc.File
= fl
Proc.Start()