仓酷云 发表于 2015-1-16 22:16:03

ASP网页编程之ASP 中使用OWC 服务器端组件静态天生图...

减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。静态|服务器|图表  引:Web程序开辟中,常常必要从数据库表文件中提取数据,并对多量量的数据举行剖析对照,此时最经常使用也是最直不雅了然的体现办法莫过于绘制图表。
  ASP善于服务器真个Web编程,操纵背景数据库更是它的刚强。可是用ASP制造及时数据库图表有点坚苦,由于ASP自己其实不撑持图表功效,只能借助第三方控件举行开辟,如VB的MSChart控件。而微软推出的及时数据库图表制造组件――OWC(MicrosoftOfficeWebComponents),为在Web中绘制图形供应了天真的同时也是最基础的机制。经由过程在ASP页面中挪用OWC,我们能够轻松地绘制出各类范例的及时图表。
  本文同时先容了一种办法,就是将在ASP中天生的图表转换成图片文件保留在服务器上,如许用户终极看到的是GIF图片格局的图表,可制止间接输入静态图表到客户端时有大概带来的一系列成绩。同时,本文还先容了一种复杂而敏捷地移走过时GIF图片的办法。
  上面我们会用一个详细的实例来讲明以上的内容。
  程序的测试情况为:Windows2000Server+IIS5.0+Access+IE5.5中,要运转上面的ASP程序,请将上面的代码Copy,保留到你的一个假造目次中,在这个假造目次中创建一个子目次tmp(你大概修正代码中的路径以切合本人的路径),在IIS中设置read权限便可,注重在Windows2000Server上你必需设置此tmp目次对IUSR_servername用户最少有Change的权限。
  ⒈OWC撑持近50种图表范例,包含曲线图、折线图、柱状图、面积图、雷达图等,并给指定显现图表是不是带数据点。
  ⒉能够天真设置图表的各个元素,包含设置图表题目、左标注、下标注、图例及输入图片的巨细等;并可对一切显现的笔墨指定字体、字号、色彩和字形。
  ⒊统一张图表中显现2条以上的曲线,完成数据对照显现。
  只管OWC的相干文件很零星,可是安装历程很复杂。我们必要一个正版受权的Office2000,然后在Web服务器上运转setup程序。选择定制安装,在工具题目下,只选中Web组件选项。固然,我们也能够在Web服务器上安装Office2000的完全版本,个中天然也就包括了Web组件。接着,Setup程序按次地完成别的事情,包含组件注册。
  OWC的制图操纵是在一个图表空间举行的。一个图表空间能够包括一个或多个图表,每一个图表都大概包括一个或多个数列,每一个数列都能够包括一个或多个数据点。依据这个道理,起首创立一个图表空间工具,然后用它的Add办法向图表空间的图表汇合中增添一个图表。举行组件挪用时,在ASP文件中到场以下代码便可:
  setchart=Server.CreateObject("OWC.Chart")
  chart.clear
  setochart=chart.Charts.Add
  setoconst=chart.Constants
  最初一行代码的目标是为了援用便利起见:图表空间有一个Constants属性,个中包括一切相干图表函数中利用的枚举常数;每次想要援用一个常数时,就能够键进oconst而不是objChartSpace.Constants,如许效力会更高,最少从工夫上讲是如许。关于常数的完全形貌,我们分离上面图表元素一同先容。
  图表题目形貌图表的题目()。本题目能够位于图表的上方、下方、左方或右方。
  

  oChart.HasTitle=true(指定是不是显现图表题目)
  oChart.Title.Caption=“估计与实践发卖额”(指定显现的内容)
  oChart.Title..Position=“Center”(指定位于图表的地位)
  setfnt=ochart.title.font
  fnt.name=“黑体”(指定图表题目的字体)
  fnt.size=“10”(指定图表题目的字号)
  fnt.color=“#000000”(指定图表题目的色彩)
  fnt.bold=true(指定图表题目的字形――加粗)
  fnt.italic=true(指定图表题目的字形――斜体)
  数值(Y)轴题目是用于形貌数值轴器度内容的题目。
  setax=ochart.Axes(oconst.chCategoryAxis)
  ax.hastitle=true(显现数值轴题目)
  ax.Title.Caption=“发卖额(单元:百万)”(设置数值轴题目的内容)
  setfnt=ax.title.font(以下为设置数值轴题目的字体、字号、色彩、字形)
  fnt.name=“黑体”
  fnt.size=“10”
  fnt.color=“#000000”
  fnt.bold=true
  fnt.italic=true
  数值(Y)轴标记也称为刻度线标记。这些标记形貌了数值轴上的器度值。
  ax.MajorTickMarks=oconst.chTickMarkNone(不显现数值轴次要刻度线)
  ax.MajorGridlines.Line.Color="white"(设置指定坐标轴上主网格线的色彩和线宽)
  ax.MajorGridlines.Line.Weight=5
  分类(X)轴题目它是用于形貌分类轴绘制内容的题目。
  setax=ochart.Axes(oconst.chAxisPositionBottom)
  ax.hastitle=true(显现分类轴题目)
  ax.Title.Caption=“季度”(设置分类轴题目的内容)
  setfnt=ax.title.font(以下为设置分类轴题目的字体、字号、色彩、字形)
  fnt.name=“黑体”
  fnt.size=“10”
  fnt.color=“#000000”
  fnt.bold=true
  fnt.italic=true
  分类(X)标记也称为刻度线标记。这些标记显现了分类轴上的分类称号。分类是由图表中每一个数据系列的一个数据点组成的一组相干数据点。
  ax.Position=oconst.chAxisPositionBottom(指定分类标记的显现地位,对有些图表显现范例,该设定不起感化。指定图表显现范例为折线型时可看到设定的效果)
  分类标记显现内容的设置见“数据标记”。
  图例为图表中数据系列或分类指定的图案或色彩标示。
  ochart.HasLegend=True(显现图例)
  oChart.Legend.Position=oconst.
  chLegendPositionLeft(设置图例的地位在右边,地位可修正)
  系列称号是一个称号,用于形貌组成一个数据系列的一组相干数据点。系列称号显现在图例项标识旁的图例中。在后面的图暗示例中,“估计”和“实践”都是对应于图表中数据标志的系列称号。
  setfnt=oChart.Legend.Font(以下为设置系列称号的字体、字号、色彩、字形)
  fnt.name=“黑体”
  fnt.size=“10”
  fnt.color=“#000000”
  fnt.bold=true
  fnt.italic=true
  数据标记它是用于供应有关数据标志附加信息的标记,而个中的数据标志则代表单个数据点或值。关于分歧的图表范例,数据标记能够显现值、数据系列或分类的称号、百分比,大概显现这些项的组合。
  setoseries(i)=oChart.SeriesCollection.add天生一条series曲线
  withoseries(i)
  .DataLabelsCollection.Add(在指定系列中增加数据标记)
  .caption=“XXXX”(设置分类标记显现的详细内容)
  .SetDataoconst.chDimCategories,oconst.chDataLiteral,XXX(设置X轴的数据值)
  .SetDataoconst.chDimValues,oconst.chDataLiteral,XXX(设置Y轴的数据值)
  .type=0(设置图表显现的范例,0暗示一般柱形图)
  endwith
  对比图片,我们能够晓得,X轴为日期(季度),Y轴为发卖额,画图区为详细的发卖额数据。
  OWC撑持在统一张图表中显现两条以上的曲线(或两个分歧色彩的柱子,如上图所示的估计与实践)。因而,要天生我们所看到的图片,只需师长教师成一条series曲线(即在画图区中先绘出估计的发卖额图表),然后再增加一条series曲线(即在画图区中绘出实践的发卖额图表)就好了
  先界说及设置参数
  dimstrChartAbsPath
  dimstrChartRelPath
  strChartAbsPath=Server.MapPath("temp")
  strChartRelPath="temp"
  以下是天生、删除图片的函数
  FunctionExportChartToGIF(objCSpace,strAbsFilePath,strRelFilePath)
  DimstrFileName
  Randomize
  strFileName=Timer&Rnd&".gif"
  objCSpace.ExportPicturestrAbsFilePath&"/"&strFileName,"gif",300(图片高度),500(图片宽度,以上两值都可由程序静态设置))
  ExportChartToGIF=strRelFilePath&"/"&strFileName
  EndFunction
  FunctionCleanUpGIF(GIFpath)
  DimobjFS
  DimobjFolder
  Dimgif
  setobjFS=Server.CreateObject("Scripting.FileSystemObject")
  setobjFolder=objFS.GetFolder(GIFpath)
  foreachgifinobjFolder.Files
  ifinstr(gif.Name,".gif")>0
  andDateDiff("d",gif.DateLastModified,now)>5(假如图片天生的工夫已凌驾5天,则删除它)then
  objFS.DeleteFileGIFpath&""&gif.Name,True
  endif
  i=i+1
  next
  setobjFolder=nothing
  setobjFS=nothing
  EndFunction
  以下是挪用代码
  strChartFile=ExportChartToGIF(chart,strChartAbsPath,strChartRelPath)
  Response.Write"<palign=center><IMGSRC="""&strChartFile&""">"&"</P>"
  ⋯⋯
  CleanUpGIF(strChartAbsPath)
  ⋯⋯
  固然用OWC天生的图表功效完全,界面美妙,但它也存在着很多缺点。
  起首,OWC只撑持RecordSet数据集,不撑持DataSet数据集,因而在检索时不克不及利用sqlCommand、sqlDataAdapter等工具,只能利用RecordSet工具举行检索。
  其次,因为不撑持DataSet数据集,如许我们就没法在天生图表的同时利用DataGrid显现数据表,而只能用轮回顺次掏出Recordset纪录会合的全体数据后,手工天生表格。
  最初,在统一张图表中绘制的曲线只能是统一品种型,或同为光滑曲线图,或同为柱状图,它不克不及在统一张图表中显现分歧范例的曲线。
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;

山那边是海 发表于 2015-1-19 06:27:18

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

谁可相欹 发表于 2015-1-25 10:05:13

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

因胸联盟 发表于 2015-2-2 21:38:46

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

柔情似水 发表于 2015-2-8 06:54:13

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

莫相离 发表于 2015-2-24 23:16:14

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

活着的死人 发表于 2015-3-7 13:52:19

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

金色的骷髅 发表于 2015-3-15 07:38:11

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

若天明 发表于 2015-3-21 23:12:16

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
页: [1]
查看完整版本: ASP网页编程之ASP 中使用OWC 服务器端组件静态天生图...