用ASP生成Chart
发表于:2007-06-30来源:作者:点击数:
标签:
SCRIPT LANGUAGE= VB Script 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
<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>
原文转自:http://www.ltesting.net