ChartBuilder
ChartBuilder除了具备WinForm.Chart的所有属性和方法外,还具备以下两个属性:
PrintWidth: 打印宽度,单位为毫米
PrintHeight: 打印高度,单位为
ChartBuilder不需要加入到窗口中,即可生成图片,主要用于为报表生成图表。
示例一
我们希望能够为下面的表生成一个图表,生成的图表并不希望在窗口显示,而是直接保存为一个文件。
代码:
Dim
Chart
As New ChartBuilder
'定义一个图表变量
Dim Series As
WinForm.ChartSeries '定义一个图系变量
Chart.DataSource = "统计表"
'设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.X.DataField = "产品"
'X轴绑定到产品列
Series.Y.DataField = "数量"
'Y轴绑定到数量列
Chart.PrintWidth = 140
'宽度设为140毫米
Chart.PrintHeight = 100
'高度设为100毫米
Chart.SaveImage("c:\data\test.bmp")
'将生成的图表保存为文件。
上面的代码可以直接在命令窗口执行,无须新建一个窗口并插入Char控件来测试
示例二
下面的代码利用ChartBuilder来生成图表,然后直接插入到Excel报表中:
例如:
'生成Excel报表
Dim b
As New XLS.Book
Dim t As
Table =
Tables("统计表")
Dim s As
XLS.Sheet = b.Sheets(0)
For c As
Integer =
0
To t.Cols.Count -1
'添加列标题
s(0,
c).Value = t.Cols(c).Name
Next
For r As
Integer =
0
To t.Rows.Count -
1
'填入数据
For
c As
Integer =
0
To t.Cols.Count -1
s(r +1,
c).Value = t.rows(r)(c)
Next
Next
'生成图表
Dim Chart As
New ChartBuilder '定义一个图表变量
Dim Series As
WinForm.ChartSeries '定义一个图系变量
Chart.DataSource = "统计表"
'设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.X.DataField = "产品"
'X轴绑定到产品列
Series.Y.DataField = "数量"
'Y轴绑定到数量列
Chart.PrintWidth = 120
Chart.PrintHeight = 60
s(t.rows.Count + 2,1).Value
= New XLS.Picture(Chart.Image)
b.Save("c:\reports\test.xls")
Dim Proc As
New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()
上面的代码可以直接在命令窗口执行,无须新建一个窗口并插入Char控件来测试。
执行结果:
本页地址:http://www.foxtable.com/webhelp/topics/1242.htm