|
ASP脚本利用组件输出统计图形
(作者:王文军 2000年12月05日 11:22)
随着Internet/Intranet技术的兴起,服务器/浏览器架构解决方案在越来越多的领域得到应用。以网站的方式,应用户不同要求对有关数据做出统计,动态输出各种统计图,是这类解决方案的一个难点。
本文讨论以微软IIS/PWS为Web Server的一种动态输出各种统计图形的具体解决方法。
我们知道,微软IIS/PWS中实现动态网页最常用的技术是开发ASP脚本,对VBScript或JScript编程,利用内置或第三方组件对数据库或其它数据进行访问,依据结果产生动态网页,发送到客户端,由浏览器解释显示结果,显示结果一般是表格形式。但如果采用统计图形(柱状图、折线图、饼图等)方式输出结果,则不能直接生成网页,而要把结果提交给可以输出图形的组件,再由组件完成图形输出。此类组件软件市场上很多,也可以自行开发。本文将介绍目前较好的统计图输出专用组件:TeeChart Pro。
TeeChart Pro功能强大,这里仅介绍其作为ASP组件在服务器端输出统计图形文件一种功能。
TeeChart Pro组件在服务器端输出统计图形文件的设计思路是:首先通过初始化确定图形大小、背景和坐标提示;然后把统计数据按系列组织起来,一组数据对应一个系列,该组件将自动以柱状图或饼图等多种形式(可以指定)输出这些数据;最后调用相应的方法(成员函数)在服务器上形成指定的图形文件。
下面具体介绍该组件的开发使用方法:
首先,创建一个TeeChart组件对象,我们命名为CurChart:
Dim CurChart
Set CurChart=Server.CreateObject("TeeChart.TChart")
然后对该对象的有关属性进行初始化,设置标题、坐标提示和图形大小及背景:
CurChart.RemoveAllSeries
' 设置输出图形大小
CurChart.Width = 600
CurChart.Height = 310
' 设置总标题
CurChart.Header.Text.Clear
CurChart.Header.Text.Add("统计结果")
CurChart.Header.Font.Color=RGB(255,0,0)
CurChart.Header.Font.Size=12
' 设置横坐标标题
CurChart.Footer.Text.Clear
CurChart.Footer.Text.Add("预 报 时 效 (月)")
CurChart.Footer.Font.Color=RGB(255,255,255)
CurChart.Footer.Font.Size=11
' 设置横坐标刻度
CurChart.Axis.Bottom.Labels.Font.Color=RGB(255,255,255)
CurChart.Axis.Bottom.Labels.Font.Bold=True
CurChart.Axis.Bottom.Labels.Font.Size=10
' 设置纵坐标标题
CurChart.Axis.Left.Title.Caption="概 率 (%)"
CurChart.Axis.Left.Title.Font.Color=RGB(255,255,0)
CurChart.Axis.Left.Title.Font.Size=11
' 设置纵坐标刻度
CurChart.Axis.Left.Labels.Font.Color=RGB(255,255,0)
CurChart.Axis.Left.Labels.Font.Bold=True
CurChart.Axis.Left.Labels.Font.Size=10
' 指定各系列的提示位置
CurChart.Legend.Alignment=1
' 设置图形背景
CurChart.Panel.Gradient.Visible=True
CurChart.Panel.Gradient.StartColor=&&HEE2922
CurChart.Panel.Gradient.EndColor=&&HFFFF99
' 设置三维效果
CurChart.Walls.Left.Size=6
CurChart.Walls.Bottom.Size=6
CurChart.Aspect.Chart3DPercent=30
CurChart.Aspect.View3D = True
至此,我们已经规定了坐标框架和图形基本面貌。下面对各系列进行逐一赋值,确定显示结果。示例代码如下:
Dim Result(5)
' 5种统计概率结果,对应5个系列
Dim ResultText(5)
' 5种统计概率结果的提示字符串
ResultText(0) = "REEP"
ResultText(1) = "LOGIT2"
ResultText(2) = "判别"
ResultText(3) = "完全预报"
ResultText(4) = "综合"
ChartType = 1 ' 输出柱状图
for ResultIndex=0 to 4
CurChart.AddSeries(ChartType)
' 增加一个系列数据
set Result(ResultIndex)=CurChart.Series(ResultIndex)
Result(ResultIndex).Clear
' 获取第ResultIndex种统计方法今年前4月各月的概率结果,连同提示加入图表
for MonthID=0 to 3
ResultData = MonthIDResultIndex3 +(10-ResultIndex)5 ' 模拟数据
Result(ResultIndex).Add ResultData, (MonthID+1)&&"月", &&HFFFFFF
next
' 设置各系列的有关提示
Result(ResultIndex) = ResultText(ResultIndex)
Result(ResultIndex).ColorEachPoint = False ' 自动设置各系列颜色
Result(ResultIndex).Marks.Style = smsValue ' 系列的提示方式
Result(ResultIndex).Marks.Visible=False ' 不显示系列各值
Next
接下来,就可以生成要求的统计图形文件并达到在网页中显示的目的:
' 把图形文件名转化成本地绝对路径表达方式
JpegLocalFile = Server.Mappath( "libcount.jpg" )
' 把制定的图形生成、存入本指定文件
CurChart.Export.SaveToJPEGFile JpegLocalFile, False, jpegBestQuality, 92,
CurChart.Width, CurChart.Height
' 在页面中显示该图形
Response.Write("〈img src=libcount.jpg〉")
最后,记得一定要释放创建的对象:
Set CurChart = Nothing
本例的显示结果如图1所示。
图1
在开发过程中,我们还可利用该组件设计出更强大的统计图形。
|
|
 |