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