保存报表

报表除打印之外,通过下面三个方法,还可以保存为htm或pdf格式的文件,或保存为图片文件。

提示:以上方法有由一个可选参数,默认为True,如果设置为False,生成报表和保存报表的过程将不会显示进度窗口。

示例一

Dim doc As New PrintDoc '定义一个新报表
Dim
rt As New prt.RenderTable '定义一个新表格
Dim
ColNames As String() = New String(){"客户","产品", "数量","单价","金额"}
Dim
drs As List(of DataRow) = DataTables("订单").Select("日期 = #" & Date.Today & "#")
For
c As Integer = 0 To ColNames.Length - 1 '逐列设置和填入内容
    rt.Cells(0,c).Text = ColNames(c) '列名作为标题
    For
r As Integer = 0 To drs.Count -1 '开始填入该列内容
       
rt.Cells(r + 1, c).Text = drs(r)(ColNames(c))
    Next
Next

rt.Style.Gridlines.All = New prt.Linedef(Color.Gray)
doc.Body.Children.Add(rt)
'将表格加入到报表
doc.SaveHtm(
"c:\data\test.htm")

示例二

一些用户反馈在使用定义纸张,特别是纸张的宽度大过高度时,打印方向经常会遇到问题。

我们可以将报表保存为PDF文件,然后再打印,例如:

Dim fl As String = "c:\data\test.pdf"
Dim
doc  As New PrintDoc
Dim
ra As New prt.RenderArea
doc
.PageSetting.Width = 150
doc
.PageSetting.Height = 80
ra
.Width = "Parent.Width"
ra
.Height = "Parent.Height"
ra
.Style.Borders.All = New prt.Linedef(5, Color.Red)
doc
.Body.Children.Add(ra)
doc
.SavePDF(fl) '保存为PDF文件
Dim
Proc As New Process '打开PDF文件
Proc
.File = fl
Proc
.Start()

实例三

可以将生成的报表保存为图片文件,例如:

Dim doc As New PrintDoc
Dim
rt As New prt.RenderText
rt
.Text = "Hello Foxtable"
rt
.Style.TextColor = Color.Red
rt
.Style.TextAngle = -45
doc
.Body.Children.Add(rt)
doc
.SaveImage("c:\data\abc.jpg")

需要注意的是,上面的代码执行后,你得到的图片文件名并不是"abc.jpg",而是:

abc_page1.jpg
abc_page2.jpg
abc_page3.jpg
...

报表的每一页都会生成一个独立的图片文件。

SaveImage可以设置图片的分辨率,其语法为:

SaveImage(Filename,Resolution)

FileName:   要保存的文件名
Resolution: 可选参数,用于设置图片分辨率,默认为150,数值越大,图片越清晰,当然文件尺寸也会越大


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