PC6下载站

分类分类

用ASP生成Chart

关注+2004-10-08作者:蓝点

<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER"> 
  function makechart(title, numarray, labelarray, color, bgcolor, bordersize, maxheight, maxwidth, addvalues) 
  "Function makechart version 3 
   
  "Jason Borovoy 
  "title: Chart Title 
  "numarray: An array of values for the chart 
  "labelarray: An array of labels coresponding to the values must me present 
  "color If null uses different colors for bars if not null all bars color you specify 
  "bgcolor Background color. 
  "bordersize: border size or 0 for no border. 
  "maxheight: maximum height for chart not including labels 
  "maxwidth: width of each column 
  "addvalues: true or false depending if you want the actual values shown on the chart 
  "when you call the function use : response.write makechart(parameters) 
   
  "actually returnstring would be a better name 
  dim tablestring 
  "max value is maximum table value 
  dim max 
  "maxlength maximum length of labels 
  dim maxlength 
  dim tempnumarray 
  dim templabelarray 
  dim heightarray 
  Dim colorarray 
  "value to multiplie chart values by to get relitive size 
  Dim multiplier 
  "if data valid 
  if maxheight > 0 and maxwidth > 0 and ubound(labelarray) = ubound(numarray) then 
  "colorarray: color of each bars if more bars then colors loop through 
  "if you don"t like my choices change them, add them, delete them. 
  colorarray = array("red","blue","yellow","navy","orange","purple","green") 
  templabelarray = labelarray 
  tempnumarray = numarray 
  heightarray = array() 
  max = 0 
  maxlength = 0 
  tablestring = "<TABLE bgcolor="" & bgcolor & "" border="" & bordersize & "">" & _ 
  "<tr><td><TABLE border="0" cellspacing="1" cellpadding="0">" & vbCrLf 
  "get maximum value 
  for each stuff in tempnumarray 
  if stuff > max then max = stuff end if 
  next 
  "calculate multiplier 
  multiplier = maxheight/max 
  "populate array 
  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 
   
   
  "set title 
  tablestring = tablestring & "<TR><TH colspan="" & ubound(tempnumarray)+1 & "">" & _ 
  "<FONT FACE="Verdana, Arial, Helvetica" SIZE="1"><U>" & title & "</TH></TR>" & _ 
  vbCrLf & "<TR>" & vbCrLf 
  "loop through values 
  for counter = 0 to ubound(tempnumarray) 
  tablestring = tablestring & vbTab & "<TD valign="bottom" align="center" >" & _ 
  "<FONT FACE="Verdana, Arial, Helvetica" SIZE="1">" & _ 
  "<table border="0" cellpadding="0" width="" & maxwidth & ""><tr>" & _ 
  "<tr><td valign="bottom" bgcolor="" 
  if not isNUll(color) then 
  "if color present use that color for bars 
  tablestring = tablestring & color 
  else 
  "if not loop through colorarray 
  tablestring = tablestring & colorarray(counter mod (ubound(colorarray)+1)) 
  end if 
  tablestring = tablestring & "" height="" & _ 
  round(heightarray(counter),2) & ""><img src="chart.gif" width="1" height="1">" & _ 
  "</td></tr></table>" 
  if addvalues then 
  "print actual values 
  tablestring = tablestring & "<BR>" & tempnumarray(counter) 
  end if 
  tablestring = tablestring & "</TD>" & vbCrLf 
  next 
   
  tablestring = tablestring & "</TR>" & vbCrLf 
  "calculate max lenght of labels 
  for each stuff in labelarray 
  if len(stuff) >= maxlength then maxlength = len(stuff) 
  next 
  "print labels and set each to maxlength 
  for each stuff in labelarray 
  tablestring = tablestring & vbTab & "<TD align="center"><" & _ 
  "FONT FACE="Verdana, Arial, Helvetica" SIZE="1"><B> " 
  for count = 0 to round((maxlength - len(stuff))/2) 
  tablestring = tablestring & " " 
  next 
  if maxlength mod 2 <> 0 then tablestring = tablestring & " " 
  tablestring = tablestring & stuff 
  for count = 0 to round((maxlength - len(stuff))/2) 
  tablestring = tablestring & " " 
  next 
  tablestring = tablestring & " </TD>" & vbCrLf 
  next 
   
  tablestring = tablestring & "</TABLE></td></tr></table>" & vbCrLf 
  makechart = tablestring 
  else 
  Response.Write "Error Function Makechart: maxwidth and maxlength have to be greater " & _ 
  " then 0 or number of labels not equal to number of values" 
  end if 
  end function 
   
   
  dim stuff 
  dim labelstuff 
  " Demo 1 
  stuff = Array(5,30) 
  labelstuff = Array("北京", "广州") 
  Response.Write makechart("Demo 1", stuff, labelstuff, null, "gold",10, 50,40,true) 
   
  </SCRIPT>  
展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消