后台报表与远程图片


上一节讲述了基于后台数据生成报表。

在基于后台数据生成报表的过程中,会根据指定的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()

参考: FTPClient


本页地址:http://www.foxtable.com/webhelp/topics/3303.htm