设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP

表格的灵活使用:柱状图

作者:佚名 出处:网络转载 时间:10-22 点击:

内容载入中...

编程思路:
  ASP3.0虽然提供了图形格式输出的功能但却没有提供相应的绘图函数支持因而在ASP3.0中常使用组件技术来实现绘图功能本实例独具匠心,巧用Table表格来进行Table表格,来进行绘图,实现柱状图的输出显示。而且由于本例是以函数形式写成,的很容易移植到自己的网页中使用。

<HTML>
<TITLE>
柱状图
</TITLE>
<BODY>
<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
function MakeColumn(title, numarray, labelarray, maxheight, maxwidth) 
 
 dim ColumnString 
 dim max 
 dim maxlength
 dim tempnumarray
 dim templabelarray
 dim heightarray
 Dim colorarray
 Dim multiplier
 
 if maxheight > 0 and maxwidth > 0 and ubound(labelarray) = ubound(numarray) then
  colorarray = array("red","blue","yellow","navy","orange","purple","green")
  templabelarray = labelarray
  tempnumarray = numarray
  heightarray = array()
  max = 0
  maxlength = 0
  ColumnString = "<TABLE bgcolor='gold' border='6'><tr><td><TABLE border='0' cellspacing='1' cellpadding='0'>" & vbCrLf
  for each stuff in tempnumarray
   if stuff > max then max = stuff end if 
  next
  multiplier = maxheight/max
  for counter = 0 to ubound(tempnumarray)
   if tempnumarray(counter) = max then 
    redim preserve heightarray(counter)
    heightarray(counter) = maxheight
   else
    redim preserve heightarray(counter) 
    heightarray(counter) = tempnumarray(counter) * multiplier 
   end if 
  next 

  ColumnString = ColumnString & "<TR><TH colspan='" & ubound(tempnumarray)+1 & "'>" & _
     "<FONT SIZE='1'><U>" & title & "</TH></TR>" & vbCrLf & "<TR>" & vbCrLf
   for counter = 0 to ubound(tempnumarray) 
    ColumnString = ColumnString & vbTab & "<TD valign='bottom' align='center' >" & _
    "<FONT SIZE='1'><table border='0' cellpadding='0' width='" & maxwidth & "'><tr><tr><td valign='bottom' bgcolor='" 
    ColumnString = ColumnString & colorarray(counter mod (ubound(colorarray)+1))
    ColumnString = ColumnString & "' height='" & round(heightarray(counter),2) & "'></td></tr></table>"
    ColumnString = ColumnString & "<BR>" & tempnumarray(counter)
    ColumnString = ColumnString & "</TD>" & vbCrLf
   next
 
  ColumnString = ColumnString & "</TR>" & vbCrLf
 
  for each stuff in labelarray
   if len(stuff) >= maxlength then maxlength = len(stuff)
  next
 
  for each stuff in labelarray
   ColumnString = ColumnString & vbTab & "<TD align='center'><FONT SIZE='1'><B> " 
   for count = 0 to round((maxlength - len(stuff))/2)
    ColumnString = ColumnString & " "
   next
   if maxlength mod 2 <> 0 then ColumnString = ColumnString & " "
   ColumnString = ColumnString & stuff 
   for count = 0 to round((maxlength - len(stuff))/2)
    ColumnString = ColumnString & " "
   next
   ColumnString = ColumnString & " </TD>" & vbCrLf
  next
   
  ColumnString = ColumnString & "</TABLE></td></tr></table>" & vbCrLf
  MakeColumn = ColumnString
 else
  Response.Write "柱状图函数参数有错"
 end if 
end function

dim stuff
dim labelstuff

stuff = Array(72,39,60,42)
labelstuff = Array("北京", "上海","广州","重庆")
Response.Write MakeColumn("演示", stuff, labelstuff, 150,30)

</SCRIPT>
</BODY>
</HTML>

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息