当前位置:

Netease BBS 精华 >>讨论区精华 >>电脑技术 >>● ASP >>ASP典型范例

发信人: nightcat (夜猫子), 信区: ASP
标  题: 用ASP生成Chart
发信站: 网易虚拟社区 (Thu Jul 22 11:07:18 1999), 站内信件

<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
function makechart(title, numarray, labelarray, color, bgcolor, border
size, 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 pr
esent
 'color If null uses different colors for bars if not null all bars co
lor 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 sho
wn 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(num
array) then
  'colorarray: color of each bars if more bars then colors loop throug
h
  'if you don't like my choices change them, add them, delete them.
  colorarray = array("red","blue","yellow","navy","orange","purple","g
reen")
  templabelarray = labelarray
  tempnumarray = numarray
  heightarray = array()
  max = 0
  maxlength = 0
  tablestring = "<TABLE bgcolor='" & bgcolor & "' border='" & bordersi
ze & "'>" & _
    "<tr><td><TABLE border='0' cellspacing='1' cellpadding='0'>" & vbC
rLf
  '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(tempnumarr
ay)+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='ce
nter' >" & _
    "<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(colora
rray)+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 hav
e 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://club.netease.com.[FROM: 202.103.124.123]


当前位置:

Netease BBS 精华 >>讨论区精华 >>电脑技术 >>● ASP >>ASP典型范例
 
(C)1997-1998 版权所有
广州网易计算机系统有限公司