欢迎光临
我们一直在努力

用ASP生成Chart

建站超值云服务器,限时71元/月

<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 dont 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>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用ASP生成Chart
分享到: 更多 (0)