利用office web component打造精品图表(一)

    技术2022-05-11  188

    大家在编写ASP程序的时候,可能要对各种指标以图形的方式显示出来。如果仅仅是柱状图,可以采用画表格的方法。许多投票程序多采用这种方法。如果是饼状图或从数据库中检索数据后再显示,就有些困难了.办法也有,自己可以封装excel来完成上述功能,或者用deiphi做一个activeform传入参数,或者用php来写,java也可以。当然,用一个比较成熟的图形组件来完成更好一些。microsoft  office  web  compoent非常不错。我在开发一个项目的时候,用到了这个组件。 CHART.ASP程序。 <%  Option  Explicit  %> <!--#include  file="adovbs.inc"--> <HTML> <HEAD> <TITLE>柱状图的例子</TITLE> <% Function  ExportChartToGIF(objCSpace,  strAbsFilePath,  strRelFilePath) Dim  strFileName Randomize   strFileName  =  Timer  &  Rnd  &  ".gif" objCSpace.ExportPicture  strAbsFilePath  &  "/"  &  strFileName,  "gif",  650,  400 ExportChartToGIF  =  strRelFilePath  &  "/"  &  strFileName End  Function Sub  CleanUpGIF(GIFpath) Dim  objFS Dim  objFolder Dim  gif set  objFS  =  Server.CreateObject("Scripting.FileSystemObject") set  objFolder  =  objFS.GetFolder(GIFpath) for  each  gif  in  objFolder.Files if  instr(gif.Name,  ".gif")  >  0  and   DateDiff("n",  gif.DateLastModified,  now)  >  10  then objFS.DeleteFile  GIFpath  &  "/"  &  gif.Name,  True end  if next set  objFolder  =  nothing set  objFS  =  nothing End  Sub %> </HEAD> <BODY  BGCOLOR="#FFFFFF"> <div  align="center"> <br> <br> <% dim  sj1,sj2 sj1=Request.QueryString("s1") sj2=Request.QueryString("s2")   dim  objChartSpace dim  objChart dim  objSeries dim  objConn dim  objRS dim  c dim  series dim  strChartAbsPath dim  strChartRelPath dim  strChartFile dim  axis strChartAbsPath  =  Server.MapPath("/xjsi-web/dcss/chart") strChartRelPath  =  "/xjsi-web/dcss/chart" '设置组件 set  objChartSpace  =  Server.CreateObject("OWC.Chart") set  objChart  =  objChartSpace.Charts.Add set  c  =  objChartSpace.Constants objChartSpace.Border.Color="red" '以柱状图显示 objchart.type=1 objChart.HasLegend  =  True'是否显示图例 objChartSpace.HasChartSpaceTitle=true  '显示标题 objChartSpace.ChartSpaceTitle.Caption  ="柱状图的例子使用office  web组件--www.ourfly.com中文技术网站"   set  objConn  =  Server.CreateObject("ADODB.Connection") objConn.Open  application("strconn") set  objRS  =  Server.CreateObject("ADODB.Recordset") set  objRS.ActiveConnection  =  objConn objRS.CursorType  =  adOpenStatic objRS.CursorLocation  =  adUseClient objRS.Open  "select  dwsj,sum(jfrs)  as  jfrs   from  dcss_do_jfgcfxb  where  dwsj>='"&sj1&"'  and  dwsj<'"&sj2&"'   group  by  dwsj  order  by  dwsj  asc" set  objChartSpace.DataSource  =  objRS '显示图例内容 objChart.SetData  c.chDimSeriesNames,  0,  "jfrs" for  each  objSeries  in  objChart.SeriesCollection objSeries.SetData  c.chDimCategories,  0,  "dwsj" objSeries.SetData  c.chDimValues,  0,  "jfrs" next for  each  axis  in  objChart.Axes axis.HasTitle  =  True if  axis.Type  =  c.chCategoryAxis  then axis.Title.Caption  =  "月份" else axis.Title.Caption  =  "人数" end  if next strChartFile  =  ExportChartToGIF(objChartSpace,  strChartAbsPath,  strChartRelPath) Response.Write  "<IMG  SRC="""  &  strChartFile  &  """>"  &  "<P>" CleanUpGIF  strChartAbsPath objRS.Close set  objRS  =  nothing set  objConn  =  nothing set  objSeries  =  nothing set  objChart  =  nothing set  objChartSpace  =  nothing %> </div> </BODY> </HTML> 使用这个组件的注意事项: 1。在office2000的光盘上,有一个msowc.msi的可执行文件.OK 2。建议大家用visual  interdev6.0开发,代码的自动提示功能此时会发挥出极大的作用。 效果图如下:


    最新回复(0)