欢迎光临
我们一直在努力

用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)