赛迪网

新用户注册

赛迪社区

帮助

  新闻中心 | 关注 | 技术天地 | 软件特供 | IT财经 | 市场专家 | 互动学校 | DIY专区 | 新游戏客栈 | 媒体全文



相关文章

  基于ASP/ADO技术的多媒体数据输出控制
  结合VRML实现ASP虚拟现实网页
  ASP+与JSP之间的抉择
  提高ASP性能







 当前页面位置: 主页: 技术天地: Internet开发: 技术文章

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 = MonthIDResultIndex3 +(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

  在开发过程中,我们还可利用该组件设计出更强大的统计图形。



与CCIDNET联系
webmaster@ciw.com.cn